:root{--phoneWidth: (max-width: 684px);--tabletWidth: (max-width: 900px)}.project-cover a:hover,.homepage-buttons a:hover,.custom-button a:hover{transform:scale(1.1);border-color:#dd254d;color:#dd254d}.project-cover a,.homepage-buttons a,.custom-button a{text-decoration:none;color:inherit;display:inline-block;padding:8px 24px;border:2px solid currentColor;background:transparent;min-width:130px;text-align:center;box-sizing:border-box;transition:transform 0.2s ease, border-color 0.2s ease, color 0.2s ease}.bg{color:#e6edf3;background-color:#1b1c1d}.chroma{color:#e6edf3;background-color:#1b1c1d}.chroma .err{color:#f85149}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#6e7681}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#737679}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6e7681}.chroma .line{display:flex}.chroma .k{color:#ff7b72}.chroma .kc{color:#79c0ff}.chroma .kd{color:#ff7b72}.chroma .kn{color:#ff7b72}.chroma .kp{color:#79c0ff}.chroma .kr{color:#ff7b72}.chroma .kt{color:#ff7b72}.chroma .nc{color:#f0883e;font-weight:bold}.chroma .no{color:#79c0ff;font-weight:bold}.chroma .nd{color:#d2a8ff;font-weight:bold}.chroma .ni{color:#ffa657}.chroma .ne{color:#f0883e;font-weight:bold}.chroma .nf{color:#d2a8ff;font-weight:bold}.chroma .nl{color:#79c0ff;font-weight:bold}.chroma .nn{color:#ff7b72}.chroma .py{color:#79c0ff}.chroma .nt{color:#7ee787}.chroma .nv{color:#79c0ff}.chroma .l{color:#a5d6ff}.chroma .ld{color:#79c0ff}.chroma .s{color:#a5d6ff}.chroma .sa{color:#79c0ff}.chroma .sb{color:#a5d6ff}.chroma .sc{color:#a5d6ff}.chroma .dl{color:#79c0ff}.chroma .sd{color:#a5d6ff}.chroma .s2{color:#a5d6ff}.chroma .se{color:#79c0ff}.chroma .sh{color:#79c0ff}.chroma .si{color:#a5d6ff}.chroma .sx{color:#a5d6ff}.chroma .sr{color:#79c0ff}.chroma .s1{color:#a5d6ff}.chroma .ss{color:#a5d6ff}.chroma .m{color:#a5d6ff}.chroma .mb{color:#a5d6ff}.chroma .mf{color:#a5d6ff}.chroma .mh{color:#a5d6ff}.chroma .mi{color:#a5d6ff}.chroma .il{color:#a5d6ff}.chroma .mo{color:#a5d6ff}.chroma .o{color:#ff7b72;font-weight:bold}.chroma .ow{color:#ff7b72;font-weight:bold}.chroma .c{color:#8b949e;font-style:italic}.chroma .ch{color:#8b949e;font-style:italic}.chroma .cm{color:#8b949e;font-style:italic}.chroma .c1{color:#8b949e;font-style:italic}.chroma .cs{color:#8b949e;font-weight:bold;font-style:italic}.chroma .cp{color:#8b949e;font-weight:bold;font-style:italic}.chroma .cpf{color:#8b949e;font-weight:bold;font-style:italic}.chroma .gd{color:#ffa198;background-color:#490202}.chroma .ge{font-style:italic}.chroma .gr{color:#ffa198}.chroma .gh{color:#79c0ff;font-weight:bold}.chroma .gi{color:#56d364;background-color:#0f5323}.chroma .go{color:#8b949e}.chroma .gp{color:#8b949e}.chroma .gs{font-weight:bold}.chroma .gu{color:#79c0ff}.chroma .gt{color:#ff7b72}.chroma .gl{text-decoration:underline}.chroma .w{color:#6e7681}.highlight{max-width:100%;overflow-x:auto}.custom-button a{margin:0 auto}.social-icons,.resume-social{display:flex;justify-content:center;gap:16px}.clickable-icon a{transition:color 0.25s ease-in-out}.clickable-icon:hover a{color:#dd254d}.footer-custom-bg{width:100%;align-content:center;background-color:#1b1c1d;justify-content:center}@media (prefers-color-scheme: light){.footer-custom-bg{background-color:#f2f3f5}}.body-transparent-bg .footer-custom-bg{background-color:rgba(0,0,0,0.8)}@media (prefers-color-scheme: light){.body-transparent-bg .footer-custom-bg{background-color:rgba(255,255,255,0.85)}}.footer-custom{max-width:1200px;width:90%;margin:0 auto;padding:16px;text-align:center}.footer-custom p{margin:4px 0;font-size:0.8em}.footer-contact-label{text-align:center;font-size:1em;margin-bottom:4px}@media (max-width: 684px){.footer-custom{padding:8px}}.header-override{width:100%;max-width:1200px}button.menu-trigger{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.video-container{position:fixed;inset:0;overflow:hidden;z-index:-1;opacity:0;transition:opacity 1.5s ease-in-out}video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.homepage-subtitle{max-width:800px;margin-left:auto;margin-right:auto;padding:0 24px;box-sizing:border-box}.homepage-bg{background-color:rgba(0,0,0,0.8);width:100%;align-self:stretch;padding-top:8px;padding-bottom:24px;text-align:center}@media (prefers-color-scheme: light){.homepage-bg{background-color:rgba(255,255,255,0.85)}}.homepage-buttons{margin-top:32px;display:flex;justify-content:center;gap:24px}@media (max-width: 684px){.homepage-buttons{flex-direction:column;align-items:center}}.body-transparent-bg{background:transparent !important}.embed-container{width:100%;max-width:800px;aspect-ratio:16 / 9}.embed-container iframe{width:100%;height:100%;border:0}.inner-column{width:100%;max-width:1200px;margin:0 auto;padding:0 24px;box-sizing:border-box}.inner-column h2{text-align:center}.grid-container{display:grid;grid-template-columns:repeat(auto-fit, minmax(0, 400px));gap:32px;justify-content:center;padding:24px;max-width:1200px;margin:0 auto;padding-bottom:48px;box-sizing:border-box}@media (max-width: 1024px){.grid-container{grid-template-columns:repeat(2, minmax(0, 400px))}}@media (max-width: 684px){.grid-container{grid-template-columns:repeat(1, minmax(0, 400px))}}.project-card{text-decoration:none;text-align:center;display:flex;flex-direction:column;align-items:center;padding:16px;border-radius:8px;background-color:#1b1c1d;transition:transform 0.5s ease-in-out}@media (prefers-color-scheme: light){.project-card{background-color:#fff;border:1px solid #dcdcdc;box-shadow:0 2px 8px rgba(0,0,0,0.06)}}.project-card{color:inherit}.project-card:hover h3{text-decoration:underline}.project-card h3{margin:8px 0 4px;font-size:1.4em;transition:text-decoration 0.3s ease-in-out}.project-card p{margin:0 0 4px}.project-card:hover{transform:scale(1.05);box-shadow:0px 4px 10px rgba(0,0,0,0.2)}@media (max-width: 684px){.project-card:hover{transform:scale(1)}}.project-card img{max-width:100%;height:auto;border-radius:8px}.project-tags{margin-top:4px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.tag{background-color:rgba(255,255,255,0.08);color:#a9a9b3;padding:4px 8px;border-radius:5px;font-size:0.8125rem}@media (prefers-color-scheme: light){.tag{background-color:rgba(0,0,0,0.06);color:#222}}.full-width-bg-single{width:100%;align-self:stretch;background-color:#2b2d31;padding:24px 0;display:flex;justify-content:center}@media (prefers-color-scheme: light){.full-width-bg-single{background-color:#f2f3f5}}.project-cover{display:flex;flex-direction:column;align-items:center;max-width:90%;margin:0 auto 32px;text-align:center}.project-cover-iframe-container,.project-cover-image-container{width:100%;max-width:800px}.project-cover-iframe-container{position:relative;overflow:hidden}.project-cover-iframe-container iframe{width:100%;height:auto;aspect-ratio:16 / 9}.content-container{width:100%;max-width:800px;padding:0 24px}.project-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.project-meta{text-align:left;display:grid;grid-template-columns:max-content 1fr;column-gap:16px;row-gap:4px;margin:0 0 16px}.project-meta dd{margin:0}.meta-key{color:#fff;font-weight:bold}@media (prefers-color-scheme: light){.meta-key{color:#000}}.meta-value{color:#a9a9b3;font-style:italic}@media (prefers-color-scheme: light){.meta-value{color:#6b6b76}}.project-content{width:100%;max-width:800px;text-align:left}@media (max-width: 900px){.content-container{padding:0 24px}.project-content{min-width:unset}.project-links{flex-direction:column;align-items:center}}.post-override{max-width:800px}.full-width-bg{width:100%;align-self:stretch;margin:0;display:flex;flex-direction:column}.row{background-color:#232425}@media (prefers-color-scheme: light){.row{background-color:#fff}}.full-width-bg>.row:nth-child(even of .row){background-color:#2b2d31}@media (prefers-color-scheme: light){.full-width-bg>.row:nth-child(even of .row){background-color:#f2f3f5}}.resume-page .darker-bg{background-color:#1b1c1d}@media (prefers-color-scheme: light){.resume-page .darker-bg{background-color:#f2f3f5}}.resume-page .inner-column{width:100%;max-width:800px;margin:0 auto;padding:0 24px;box-sizing:border-box}.resume-page .resume-cover{text-align:center;padding-top:8px;padding-bottom:48px}.resume-page .resume-top{display:flex;justify-content:space-between;align-items:center;gap:24px}.resume-page .resume-download{margin:32px 0 16px}.resume-page .resume-top-left{flex-grow:1}.resume-page .resume-top-left img{max-width:100%;height:auto}.resume-page .resume-top-right{text-align:left;max-width:70%}.resume-page .resume-intro{margin-bottom:8px}.resume-page .resume-social{text-align:center}@media (max-width: 900px){.resume-page .resume-top{flex-direction:column;align-items:center}.resume-page .resume-top-right{max-width:100%;text-align:center}.resume-page .resume-top-left img{width:100%;height:auto}}.resume-page .resume-block{text-align:left;margin-top:8px;margin-bottom:24px}.resume-page .resume-block h2{text-transform:uppercase}.resume-page .entry-header{display:flex;justify-content:space-between}.resume-page .entry-title{font-size:1.2em}.resume-page .compact-block{margin-top:8px;margin-bottom:16px}.resume-page .compact-block p{margin:0}.resume-page .compact-block i{color:#a9a9b3}@media (prefers-color-scheme: light){.resume-page .compact-block i{color:#6b6b76}}.resume-page .compact-block li{margin:8px 0 8px 16px}.resume-page .compact-block{border-top:1px solid transparent;border-bottom:1px solid transparent;transition:border-color ease-in-out 0.3s}.resume-page .compact-block:hover{border-color:#4e4e57}@media (prefers-color-scheme: light){.resume-page .compact-block:hover{border-color:#dcdcdc}}
