@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;600;700&display=swap";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{--background-color: #121212;--text-color: #e0e0e0;--link-color: #ffffff;--link-hover-color: #ffcf68;--border-color: rgb(235, 226, 226);--card-background-color: #1e1e1e;--header-height: 70px}.light{--background-color: #f8f8f8;--text-color: #333333;--link-color: #0070f3;--link-hover-color: #0051a2;--border-color: #dddddd;--card-background-color: #ffffff}html,body{height:100%;width:100%;margin:0;padding:0;font-family:Source Code Pro,monospace;overflow:hidden}body{background-color:var(--background-color);color:var(--text-color);font-size:16px;line-height:1.6}#root{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;position:relative}h1,h2,h3,h4,h5,h6{font-family:Source Code Pro,monospace;margin-bottom:1rem}p{font-family:Roboto,sans-serif;margin-bottom:1rem}a{color:var(--text-color);text-decoration:none;transition:color .3s ease}a:hover,a:focus,a:active{color:var(--link-hover-color)}img{max-width:100%;height:auto}pre{border-width:1px;border-radius:.5rem;overflow:auto;width:100%;max-width:800px;margin:0 auto}.cursor-pointer{cursor:pointer}.app-container{display:flex;flex-direction:column;height:100%;width:100%;font-family:Source Code Pro,monospace;overflow:hidden}.page-content{flex:1;display:flex;flex-direction:column;width:100%;padding-top:70px;padding-bottom:60px;overflow-y:auto;overflow-x:hidden;height:calc(100% - 130px)}.container{min-height:100%;margin:0;padding:0;display:flex;flex-direction:column;width:100%;font-family:Source Code Pro,monospace}main{position:relative;flex:1;width:100%;z-index:1}.main-content{position:relative;padding:2rem 1rem;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;overflow:visible}.content-wrapper{max-width:800px;margin:0 auto;padding:0 20px}.header{position:fixed;top:0;left:0;width:100%;height:70px;padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,#1e1e1ef2,#1e1e1e4d,#1e1e1ef2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 4px #0000001a;z-index:1000}.header-container{display:flex;align-items:center}.header-image{width:50px;height:50px;border-radius:50%;overflow:hidden}.title-container{display:flex;flex-direction:column;margin-left:1rem;min-height:60px}.current-section-indicator{position:absolute;left:23vw;top:50%;transform:translateY(-50%);max-width:calc(800px - 4rem);padding-left:2rem;pointer-events:none;z-index:1}.current-section-title{color:var(--text-color);font-size:1.1rem;font-weight:500;opacity:.8;text-shadow:0 1px 3px rgba(0,0,0,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px;display:inline-block}.title{margin:0}footer{position:fixed;bottom:0;left:0;width:100%;height:60px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--background-color);z-index:100}footer h3{margin:0;margin-bottom:-.5rem;padding:0;display:block;font-size:1rem}footer p{display:block;font-size:.8rem;margin-bottom:-.5rem}.grid{display:flex;flex-direction:row;justify-content:space-between;gap:1.2rem;margin:2rem 0;width:100%;box-sizing:border-box}.description{width:100%;font-size:1.2rem;box-sizing:border-box}.home-container{width:100%;max-width:800px;padding:0 1rem;box-sizing:border-box;overflow:visible;margin-bottom:1rem}.slogan-pre{padding:1rem;border-radius:.5rem;width:100%;box-sizing:border-box;margin:0;opacity:.8;transition:opacity .3s ease}.slogan-pre:hover{opacity:1}.resume-download{margin-top:2rem;text-align:center;width:100%}.resume-download a{padding:.75rem 1.5rem;border-radius:4px;background-color:var(--card-background-color);transition:background-color .3s ease;font-size:1.1rem}.resume-download a:hover{background-color:#2a2a2a}.bio-section{display:flex;flex-direction:column;gap:2rem;max-width:1200px;margin:0 auto;padding:2rem;background:var(--card-background-color);border-radius:16px;box-shadow:0 8px 32px #0000004d;margin-top:2rem;margin-bottom:4rem}.about-header{text-align:center;margin-bottom:3rem}.about-header .title{font-size:3rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,var(--link-color),var(--link-hover-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center}.resume-download{text-align:center;margin:2rem 0}.resume-download a{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--link-hover-color),#ff9500);color:var(--background-color);padding:1rem 2rem;border-radius:50px;font-weight:600;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 15px #ffcf684d;font-size:1.1rem}.resume-download a:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ffcf6866;color:var(--background-color)}.about-content{display:grid;grid-template-columns:1fr 350px;gap:3rem;align-items:start}.about-text{display:flex;flex-direction:column;gap:1.5rem}.about-text h3{font-size:1.75rem;font-weight:600;color:var(--link-hover-color);margin-bottom:.5rem;border-left:4px solid var(--link-hover-color);padding-left:1rem}.about-text p{font-family:Roboto,sans-serif;font-size:1.1rem;line-height:1.7;color:var(--text-color);text-align:justify}.about-text em{color:var(--link-hover-color);font-style:normal;font-weight:600}.about-canvas-container{display:flex;flex-direction:column;align-items:center;position:sticky;top:2rem}#about-canvas{border-radius:16px;box-shadow:0 8px 32px #0006;transition:transform .3s ease;max-width:100%;height:auto}#about-canvas:hover{transform:scale(1.02)}.canvas-caption{margin-top:1rem;font-size:.9rem;color:var(--text-color);opacity:.7;text-align:center;font-style:italic}.open-source-card{cursor:pointer;transition:all .3s ease}.open-source-card:hover{transform:translateY(-5px);box-shadow:0 12px 20px #00000040}.open-source-card h2{color:var(--link-hover-color);margin-bottom:1rem}.open-source-card p{margin-bottom:1rem}.open-source-card p.read-more-link{color:var(--link-color);font-weight:600;margin-top:auto}.open-source-card .blog-image{transition:transform .3s ease}.open-source-card .blog-image:hover{transform:scale(1.05)}.social-icons{display:flex;justify-content:flex-end;align-items:center;margin-top:0;flex-wrap:nowrap;padding-right:1rem}.icon{margin:0 .4rem;padding-right:2rem;font-size:1.25rem;transition:color .5s ease,border-color .15s ease;display:inline-block;width:1.25rem;color:#f8f8f8}.icon svg{width:100%;height:100%;fill:currentColor}.card{box-sizing:border-box;padding-left:1rem;border-radius:.5rem;min-height:20vh;max-height:30vh;min-width:30vw;display:flex;justify-content:center;align-items:center;background-color:var(--card-background-color);transition:background-color .3s ease}.card:hover{background-color:#2a2a2a}.card #cta{opacity:0}.card-small{box-sizing:border-box;padding:1rem;border-radius:.5rem;min-height:100px;width:30%;display:flex;justify-content:center;align-items:center;opacity:.8;background-color:var(--card-background-color);transition:background-color .3s ease,opacity .3s ease;cursor:pointer}.card-small:hover{opacity:1;background-color:#2a2a2a}.card-small h3{margin:0;transition:all .3s ease}.card-small:hover h3{margin-right:16px}.card-small #cta{opacity:0;margin:0;transition:opacity .3s ease,transform .3s ease;transform:translate(10px)}.card-small:hover #cta{opacity:1;transform:translate(0)}.resume-card a{display:flex;justify-content:space-between;align-items:center;width:100%;height:100%;color:var(--text-color);text-decoration:none}.resume-card h3{margin:0}.resume-card #cta{opacity:1;margin-left:1rem;font-size:1.2rem}.card-large{opacity:.8;margin-bottom:2rem;padding-bottom:2rem;flex:0 0 calc(50% - 1rem);max-width:calc(50% - 1rem);min-width:calc(50% - 1rem);min-height:35vh;background:var(--card-background-color);border-radius:.5rem;position:relative;transition:opacity .3s ease,background-color .3s ease}.card-large:hover{opacity:1;background-color:#2a2a2a}.card-large #cta{opacity:0;position:absolute;top:1vh;right:2vw;transition:opacity .3s ease}.card-large:hover #cta{opacity:1}.card-large p{font-size:1.2rem;margin-left:2.5rem}.card-large h2{margin-left:2.5rem}.card-large img{width:auto;max-height:25vh;height:auto;display:block;margin-left:auto;margin-right:auto;margin-top:20px}.image-slideshow-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000e6;display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.image-slideshow-content{max-width:90%;max-height:90%;position:relative;display:flex;justify-content:center;align-items:center}.close-button{position:absolute;top:20px;right:20px;font-size:28px;color:#fff;background:#00000080;border:none;border-radius:50%;width:40px;height:40px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .3s,transform .2s;z-index:1010}.close-button:hover{background-color:#323232e6;transform:scale(1.1)}.navigation-buttons{position:absolute;bottom:20px;left:0;right:0;display:flex;justify-content:center;gap:20px;z-index:1010}.slideshow-btn{background-color:#1e1e1eb3;color:#fff;border:none;padding:10px 20px;border-radius:30px;cursor:pointer;font-size:14px;font-weight:700;transition:background-color .3s,transform .2s}.slideshow-btn:hover{background-color:#323232e6;transform:scale(1.05)}.slideshow-btn:active{transform:scale(.98)}.image-counter{position:absolute;bottom:20px;right:20px;color:#fff;font-size:14px;background-color:#00000080;padding:5px 10px;border-radius:15px;z-index:1010}#tsparticles{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;font-size:.9rem;color:#ccc}.breadcrumb-separator{margin:0 .5rem;color:#999}.breadcrumb-link{color:#ccc;text-decoration:none;transition:color .2s ease}.breadcrumb-link:hover{color:#fff;text-decoration:underline}.breadcrumb-link.active{color:#fff;font-weight:600}.desktop-breadcrumbs{margin-top:.2rem;font-size:.85rem;min-height:1.2rem}.desktop-breadcrumbs.placeholder{visibility:hidden}.mobile-breadcrumbs{width:100%;padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.hamburger-menu{display:flex;justify-content:center;align-items:center;font-size:1.5rem;cursor:pointer;margin-right:1rem;color:var(--text-color)}.mobile-menu-overlay{position:fixed;top:0;right:-100%;width:80%;height:100vh;background-color:#1e1e1e;z-index:2001;transition:right .3s ease;box-shadow:-2px 0 5px #00000080}.mobile-menu-overlay.open{right:0}.mobile-menu{display:flex;flex-direction:column;height:100%;padding:1.5rem;position:relative}.mobile-menu-header{display:flex;justify-content:flex-end;margin-bottom:2rem}.close-menu{font-size:1.5rem;cursor:pointer}.mobile-menu-nav{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.mobile-nav-item{padding:1rem;border-radius:.5rem;background-color:#1e1e1e;cursor:pointer;transition:background-color .3s ease}.mobile-nav-item:hover{background-color:#2a2a2a}.mobile-nav-item h3{margin:0;font-size:1.2rem}.mobile-nav-item.blog-section{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem}.mobile-nav-item.blog-section.active{background-color:#2a2a2a;border-left:3px solid var(--link-hover-color)}.mobile-nav-item.blog-section h3{flex:1}.mobile-nav-item.blog-section h3.section-h1{font-size:1.1rem;font-weight:600;margin-left:0}.mobile-nav-item.blog-section h3.section-h2{font-size:1rem;font-weight:500;margin-left:1rem}.mobile-nav-item.blog-section h3.section-h3{font-size:.9rem;font-weight:400;margin-left:2rem;opacity:.9}.mobile-nav-item.blog-section .active-indicator{color:var(--link-hover-color);font-size:1.2rem;margin-left:.5rem}.mobile-social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:auto;padding-top:2rem;position:sticky;bottom:0}.mobile-social-icon{display:flex;justify-content:center;align-items:center;font-size:2rem;padding:.75rem;background-color:#1e1e1e;border-radius:.5rem;color:var(--text-color);transition:background-color .3s ease}.mobile-social-icon:hover{background-color:#2a2a2a}.blog-container{display:flex;flex-direction:column;overflow:visible}.blog-content{padding:2rem;margin-bottom:4rem;flex:1;width:100%;box-sizing:border-box;overflow:visible}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2.5rem;margin-bottom:3rem;width:100%;padding-bottom:60px;box-sizing:border-box}.blog-card{background:var(--card-background-color);border-radius:10px;box-shadow:0 4px 6px #0000001a;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;cursor:pointer;display:flex;flex-direction:column;height:100%;width:100%;box-sizing:border-box;max-width:100%}.blog-card:hover{transform:translateY(-5px);box-shadow:0 10px 15px #0003;background-color:#2a2a2a}.blog-card h2{margin-top:0;font-size:1.4rem;line-height:1.3;flex:0 0 auto}.blog-image-container{position:relative;width:100%;padding-top:56.25%;margin:1rem 0;overflow:hidden;border-radius:6px;flex:1 1 auto}.blog-image-container .blog-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.blog-image-container .blog-image:hover{transform:scale(1.05)}.blog-image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,#1e1e1e 25%,#2a2a2a 25%,#2a2a2a 50%,#1e1e1e 50%,#1e1e1e 75%,#2a2a2a 75%,#2a2a2a);background-size:20px 20px}.read-more-link{color:var(--link-color);margin-top:1rem;font-weight:600;transition:color .3s ease;flex:0 0 auto}.read-more-link:hover{color:var(--link-hover-color)}.blog{margin-left:23vw;margin-right:23vw;margin-top:10vh;margin-bottom:10vh;overflow:visible}.sticky-blog-title{position:fixed;top:0;left:0;right:0;background-color:var(--background-color);z-index:100;transform:translateY(-100%);transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;padding:0;pointer-events:none;box-shadow:0 4px 6px #0000}.sticky-blog-title.sticky{transform:translateY(var(--header-height));box-shadow:0 4px 6px #0000001a;pointer-events:auto}.sticky-blog-title .sticky-title-content{display:flex;align-items:center;max-width:800px;margin:0 auto;padding:.5rem 2rem}.sticky-blog-title .sticky-title-content h1{margin:0;font-size:1.5rem;line-height:1.2;transition:font-size .3s ease}.sticky-blog-title .sticky-title-content .sticky-image-container{width:40px;height:40px;margin-right:1rem;border-radius:5px;overflow:hidden;flex-shrink:0;opacity:0;transform:translate(-20px);transition:opacity .3s ease,transform .3s ease}.sticky-blog-title .sticky-title-content .sticky-image-container .sticky-header-image{width:100%;height:100%;object-fit:cover}.sticky-blog-title.sticky .sticky-image-container{opacity:1;transform:translate(0)}.title-threshold{height:0;visibility:hidden;margin:0;padding:0}.blog-post-content{max-width:800px;margin:0 auto;padding:2rem;padding-bottom:70vh;line-height:1.6;overflow:visible;background:#1a1a1ad9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;box-shadow:0 8px 32px #0000004d}.blog-post-content .blog-header-image+.title-threshold+h1{margin-top:1.5rem}.blog-content-wrapper{width:100%}.blog-navigation{position:fixed;left:40px;top:150px;width:220px;max-height:calc(100vh - 200px);overflow-y:auto;background-color:#1e1e1ef2;border-radius:8px;padding:1rem;transform:translate(-300px);transition:transform .4s ease,opacity .5s ease,box-shadow .3s ease;opacity:0;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 4px 15px #0003}.blog-navigation::-webkit-scrollbar{width:4px}.blog-navigation::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.blog-navigation::-webkit-scrollbar-thumb{background:var(--link-hover-color);border-radius:4px}.blog-navigation.visible{transform:translate(0)!important;opacity:1!important;visibility:visible!important;box-shadow:0 8px 25px #0000004d;display:block!important}.blog-navigation.mobile{right:15px;left:auto;top:auto;bottom:20px;width:70%;max-width:250px;max-height:50vh;transform:translateY(200px);opacity:0;z-index:9999}.blog-navigation.mobile.visible:not(.expanded){transform:translateY(200px);opacity:0;visibility:hidden}.blog-navigation.mobile.expanded{transform:translateY(0);opacity:1;visibility:visible}.blog-navigation .blog-navigation-content{width:100%}.blog-navigation .blog-navigation-title{margin-top:0;font-size:1.2rem;margin-bottom:1rem;color:var(--link-hover-color);font-weight:600;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5rem;text-align:center;display:flex;justify-content:center;align-items:center}.blog-navigation .blog-navigation-title .blog-navigation-close{margin-left:auto;background:transparent;border:none;color:#fff9;font-size:1.5rem;padding:0;cursor:pointer;line-height:1;transition:color .2s ease}.blog-navigation .blog-navigation-title .blog-navigation-close:hover{color:var(--link-hover-color)}.blog-navigation .blog-navigation-items ul{list-style:none;padding:0;margin:0}.blog-navigation .blog-navigation-items .blog-navigation-item{padding:.5rem;margin-bottom:.25rem;cursor:pointer;display:flex;align-items:flex-start;border-radius:4px;transition:all .2s ease;position:relative}.blog-navigation .blog-navigation-items .blog-navigation-item:hover{background-color:#ffffff26;transform:translate(3px);text-decoration:underline}.blog-navigation .blog-navigation-items .blog-navigation-item .section-title{cursor:pointer}.blog-navigation .blog-navigation-items .blog-navigation-item.active{background-color:#ffcf6840;transform:translate(4px);border-left:2px solid var(--link-hover-color)}.blog-navigation .blog-navigation-items .blog-navigation-item.active .section-title{color:var(--link-hover-color);font-weight:600}.blog-navigation .blog-navigation-items .blog-navigation-item.section{font-weight:500;letter-spacing:.02em;margin-top:.5rem;margin-bottom:.5rem;padding-top:.3rem;padding-bottom:.3rem}.blog-navigation .blog-navigation-items .blog-navigation-item.section:before{content:"•";margin-right:5px;color:var(--link-hover-color)}.blog-navigation .blog-navigation-items .blog-navigation-item.subsection{padding-left:1.2rem;font-size:.9rem;color:#fffc;margin-left:.5rem;border-left:1px solid rgba(255,255,255,.1)}.blog-navigation .blog-navigation-items .blog-navigation-item.subsection.active{border-left:2px solid var(--link-hover-color);color:#fff}.blog-navigation .blog-navigation-items .blog-navigation-item .active-indicator{position:absolute;left:-4px;top:50%;transform:translateY(-50%);color:var(--link-hover-color);font-size:.75rem}.blog-navigation .blog-navigation-items .blog-navigation-item .section-title{line-height:1.3;transition:color .2s ease}.blog-navigation-fab{position:fixed;bottom:20px;right:20px;z-index:999;width:56px;height:56px;background-color:var(--link-hover-color);color:#000;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px #0006;transition:all .3s ease;font-size:1.2rem}.blog-navigation-fab.visible{opacity:1;transform:scale(1)}.blog-navigation-fab.hidden{opacity:0;transform:scale(.8);pointer-events:none}.blog-navigation-fab:hover{background-color:#ffdf7a;transform:scale(1.1);box-shadow:0 8px 25px #00000080}.blog-navigation-fab:active{transform:scale(.95)}.blog-navigation-fab svg{color:inherit}.blog-content-wrapper p{margin-bottom:1.5rem;width:100%}.blog-post-content h1,.blog-post-content h2,.blog-post-content h3,.blog-post-content h4,.blog-post-content h5,.blog-post-content h6{margin-top:2rem;margin-bottom:1rem;line-height:1.3}.blog-post-content h1.blog-section-heading,.blog-post-content h2.blog-section-heading,.blog-post-content h3.blog-section-heading,.blog-post-content h4.blog-section-heading,.blog-post-content h5.blog-section-heading,.blog-post-content h6.blog-section-heading{cursor:pointer;position:relative}.blog-post-content h1.blog-section-heading:hover,.blog-post-content h2.blog-section-heading:hover,.blog-post-content h3.blog-section-heading:hover,.blog-post-content h4.blog-section-heading:hover,.blog-post-content h5.blog-section-heading:hover,.blog-post-content h6.blog-section-heading:hover{color:var(--link-hover-color)}.blog-post-content h1.blog-section-heading:hover:after,.blog-post-content h2.blog-section-heading:hover:after,.blog-post-content h3.blog-section-heading:hover:after,.blog-post-content h4.blog-section-heading:hover:after,.blog-post-content h5.blog-section-heading:hover:after,.blog-post-content h6.blog-section-heading:hover:after{content:" §";font-size:.7em;vertical-align:super;opacity:.7;color:var(--link-color)}.blog-post-content h1{font-size:2.5rem}.blog-post-content h2{font-size:2rem}.blog-post-content h3{font-size:1.75rem}.blog-post-content p{margin-bottom:1.5rem}.blog-post-content a{color:var(--link-color);text-decoration:none;border-bottom:1px dotted var(--link-color);transition:color .2s ease,border-bottom .2s ease}.blog-post-content a:hover{color:var(--link-hover-color);border-bottom:1px solid var(--link-hover-color)}.blog-post-content ul,.blog-post-content ol{margin-bottom:1.5rem;padding-left:2rem}.blog-post-content li{margin-bottom:.5rem}.blog-post-content blockquote{border-left:4px solid var(--link-color);padding-left:1rem;margin-left:0;margin-right:0;font-style:italic;background-color:#ffcf680d}.blog-post-content pre{margin-bottom:1.5rem;padding:1rem;overflow-x:auto;border-radius:4px;background-color:#2a2a2a}.blog-post-content code{font-family:Source Code Pro,monospace;background-color:#2a2a2a;padding:.2em .4em;border-radius:3px}.blog-post-content pre code{padding:0;background-color:transparent;border-radius:0;display:block;overflow-x:auto;font-size:.9rem}.blog-post-content .token.comment,.blog-post-content .token.prolog,.blog-post-content .token.doctype,.blog-post-content .token.cdata{color:#8a8a8a}.blog-post-content .token.punctuation{color:#ccc}.blog-post-content .token.property,.blog-post-content .token.tag,.blog-post-content .token.constant,.blog-post-content .token.symbol,.blog-post-content .token.deleted{color:#f92672}.blog-post-content .token.boolean,.blog-post-content .token.number{color:#ae81ff}.blog-post-content .token.selector,.blog-post-content .token.attr-name,.blog-post-content .token.string,.blog-post-content .token.char,.blog-post-content .token.builtin,.blog-post-content .token.inserted{color:#a6e22e}.blog-post-content .token.operator,.blog-post-content .token.entity,.blog-post-content .token.url,.blog-post-content .language-css .token.string,.blog-post-content .style .token.string{color:#f8f8f2}.blog-post-content .token.atrule,.blog-post-content .token.attr-value,.blog-post-content .token.keyword{color:#66d9ef}.blog-post-content .token.function,.blog-post-content .token.class-name{color:#e6db74}.blog-post-content .token.regex,.blog-post-content .token.important,.blog-post-content .token.variable{color:#fd971f}.blog-post-content img.blog-image{max-width:100%;height:auto;margin:2rem auto;display:block;border-radius:4px;box-shadow:0 4px 8px #0000001a;transition:transform .3s ease;position:relative}.blog-post-content img.blog-image:hover{transform:scale(1.02)}.blog-header-image{width:100%;max-height:400px;object-fit:cover;border-radius:8px;margin-bottom:2rem;cursor:pointer}.video-container{position:relative;overflow:hidden;width:100%;padding-top:56.25%}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:1.2rem;color:var(--text-color)}@media (max-width: 1200px){.grid{flex-direction:column;align-items:center;overflow-x:hidden;min-width:90vw}.card-large{opacity:.8;margin-bottom:2rem;padding-bottom:2rem;flex:0 0 calc(50% - 1rem);max-width:100%;min-width:100%;min-height:35vh;background:var(--card-background-color);border-radius:.5rem;position:relative}.card-large #cta{opacity:0;position:absolute;top:1vh;right:2vw}.card-large p{font-size:1.2rem;margin-left:2.5rem}.card-large h2{margin-left:2.5rem}.card-large img{width:auto;max-height:25vh;height:auto;display:block;margin-left:auto;margin-right:auto;margin-top:20px}}.mobile-only{display:none}.desktop-only{display:flex}@media (max-width: 800px){.mobile-only{display:flex}.desktop-only{display:none}main{margin-left:0;margin-right:0;overflow-x:hidden;width:100%;max-width:100%;box-sizing:border-box;padding:0 1rem}.main-content{width:100%;box-sizing:border-box;padding:1rem 0;overflow-x:hidden}.home-container{width:100%;padding:0;max-width:100%;box-sizing:border-box;overflow-x:hidden}.medium-text{font-size:x-large}#quora-link,#stackoverflow-link{display:none}.grid{flex-direction:column;align-items:center;width:100%;overflow-x:hidden;max-width:100%;padding:0;margin:2.5rem 0 1rem;box-sizing:border-box}.blog-container{height:auto;overflow:visible}.blog-content{padding:1.5rem 0;margin-bottom:2rem;width:100%;box-sizing:border-box;overflow:visible}.blog-grid{grid-template-columns:1fr;gap:2.5rem;width:100%;margin-bottom:2rem;padding-bottom:70px;padding-left:1rem;padding-right:1rem;box-sizing:border-box}.blog-card{padding:1.2rem;width:100%;max-width:100%;box-sizing:border-box;margin:0 auto}.blog-image-container{padding-top:66.67%}.blog-post-content{padding:1rem;width:100%;overflow-y:auto}.blog-post-content h1{font-size:2rem}.blog-post-content h2{font-size:1.75rem}.blog-post-content h3{font-size:1.5rem}.blog-post-content img{margin:1.5rem auto}.sticky-blog-title .sticky-title-content{padding:.5rem 1rem}.sticky-blog-title .sticky-title-content h1{font-size:1.2rem}.sticky-blog-title .sticky-title-content .sticky-image-container{width:30px;height:30px;margin-right:.5rem}.blog-navigation.mobile .blog-navigation-title{font-size:1rem;padding-bottom:.3rem;margin-bottom:.5rem}.blog-navigation.mobile .blog-navigation-item{padding:.4rem .3rem}.blog-navigation.mobile .blog-navigation-item.subsection{font-size:.8rem;padding-left:1rem}.blog-navigation-toggle{bottom:20px;right:15px;padding:.5rem .8rem;font-size:.8rem}.blog{margin-left:5vw;margin-right:5vw}.blog img{width:95vw}.card{width:100%;margin-bottom:1rem;padding:.5rem .5rem .5rem 1.5rem;height:10vh}.card-small{width:100%;margin-bottom:1rem;padding:.5rem 1.5rem;height:auto;min-height:50px;display:flex;justify-content:space-between}.description{width:100%;font-size:.7rem;box-sizing:border-box;margin-top:2vh;padding:0}.slogan-pre{width:100%;padding-top:.9rem!important;padding-bottom:.9rem!important;padding-left:.4rem!important;font-size:.94rem!important;font-style:oblique!important;font-weight:bolder!important;overflow-x:hidden!important;overflow-y:hidden!important;white-space:nowrap}.slogan-pre.mobile-only{display:block!important}.slogan-pre.desktop-only{display:none!important}.header{justify-content:space-between;padding:.5rem}.header .title{font-size:1rem}.header-container{margin-left:.5rem}.icon{font-size:1.2rem;height:1rem}.bio-section{padding:1rem;margin-top:1rem;margin-bottom:2rem}.about-content{grid-template-columns:1fr;gap:2rem}.about-canvas-container{position:static;order:-1}#about-canvas{margin-left:auto;margin-right:auto;width:auto;display:block;height:40vh;border-radius:12px}.about-header .title{font-size:2rem}.about-text h3{font-size:1.5rem}.about-text p{font-size:1rem;text-align:left}.resume-download a{padding:.8rem 1.5rem;font-size:1rem}.image-container{width:100%;max-height:30vh;overflow:hidden}.post-image{width:90%;height:100%;object-fit:cover}}.home-main,.page-content.homepage{overflow:hidden!important}@media (min-width: 800px){.description{text-align:center}.slogan-pre.mobile-only{display:none!important}.slogan-pre.desktop-only{display:block!important;font-size:1.6em!important}h2{font-size:1.6rem}p{font-size:1.2rem}.grid{min-width:40vw;display:flex;flex-wrap:wrap;justify-content:space-between}.card{margin-left:.5rem;margin-bottom:1rem;flex:0 0 calc(33.33% - 1rem);max-width:calc(33.33% - 1rem)}.card-large{opacity:.8;margin-bottom:2rem;padding-bottom:2rem;flex:0 0 calc(50% - 1rem);max-width:calc(50% - 1rem);min-width:calc(50% - 1rem);min-height:35vh;background:var(--card-background-color);border-radius:.5rem;position:relative}.description{margin-top:15vh}.header-container{margin-left:2rem}.icon{font-size:1.2rem;height:2rem}canvas{float:right;margin:0 0 1em 1em;clear:both;width:30vw;height:auto}main{max-width:100vw;margin-left:auto;margin-right:auto}}@media (min-width: 2200px){.description{font-size:1.6rem;font-family:Roboto,monospace}p{font-size:1.3rem}.icon{margin:0 .5rem;width:3rem}}
