body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Proxima Nova,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none;height:0;width:0}.App{align-items:center;background-color:#fafafa;display:flex;height:100vh;justify-content:center;transition:background-color .4s ease;width:100%}.App-header{display:flex;height:80%;max-width:1500px;transition:width .5s ease,height .5s ease,padding-top .5s ease;width:80%}.LeftCl{align-items:start;display:flex;flex-direction:column;flex-shrink:0;gap:5px;height:100%;justify-content:center;overflow:hidden;transition:width .5s ease,opacity .4s ease,transform .5s ease;width:50%}.LeftCl--hidden{opacity:0;transform:translateX(-24px);width:0!important}.LeftCl-text{display:flex;flex-direction:column;gap:20px;height:320px;width:100%}.Name{font-size:52px}.Name,.bio{margin-left:150px}.bio{color:#a0a0a0;font-size:20px;margin-top:0;padding:10px;width:70%}.bio-italic{font-style:italic}.Name,.bio{animation:textSwapIn .5s ease}@keyframes textSwapIn{0%{opacity:0}to{opacity:1}}.RightCl{align-items:center;display:flex;flex-direction:column;height:108%;min-width:0;transition:width .5s ease;width:50%}.profilePic-wrapper{animation:subtleMove 10s ease-in-out infinite alternate;border-radius:50%;box-shadow:0 4px 8px #0003;flex-shrink:0;height:350px;margin-left:140px;overflow:hidden;position:relative;width:350px}.pic-layer{height:100%;left:0;object-fit:cover;position:absolute;top:0;transition:opacity .5s ease;width:100%}.pic-layer.hidden{opacity:0}@keyframes subtleMove{0%{transform:translate(0)}50%{transform:translate(10px,10px)}to{transform:translate(0)}}.sections{align-items:center;border-bottom:none;color:#2e2e2e;cursor:pointer;display:flex;flex-direction:row;gap:30px;justify-content:space-between;list-style-type:none;margin:0;padding:0;width:100%}.sections li{border-bottom:2px solid #0000;line-height:1;padding-bottom:3px;text-align:center;transition:all .5s}.sections li.active,.sections li:hover{border-bottom:2px solid #000;color:#000}.sections li.clicked{animation:navClickBounce .5s}@keyframes navClickBounce{0%{animation-timing-function:ease-in;transform:scale(1)}50%{animation-timing-function:ease-out;transform:scale(.8)}to{transform:scale(1)}}.c3,.cMaster{transition:opacity .3s ease}.section-fading{opacity:0}.cMaster{display:flex;flex-flow:row wrap;height:50%;justify-content:center;width:100%}.c1,.c2{height:85%;margin:auto;width:45%}.c1,.c2,.c3{background-color:#0000001a;border-radius:10px}.c3{height:60%;width:95%}.Name,.bio,.sections,.sections li{transition:color .4s ease,border-color .4s ease,background-color .4s ease}.c1,.c2,.c3{transition:background-color .4s ease,opacity .3s ease}.topbar{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff8c;box-shadow:0 2px 8px #0000000f;box-sizing:border-box;display:flex;gap:12px;left:0;padding:10px 20px;position:fixed;top:0;transition:background-color .4s ease;width:100%;z-index:30}body.dark .topbar{background:#28282a8c}.theme-toggle{align-items:center;background:none;border:none;color:#333;cursor:pointer;display:flex;justify-content:center;margin-left:auto;padding:6px;transition:transform .3s ease,color .4s ease}.theme-toggle:hover{transform:scale(1.15)}body.dark .theme-toggle{color:#f1f1f1}.topbar-nav{flex:1 1 auto;gap:20px;justify-content:flex-start;margin:0;min-width:0;overflow-x:auto;padding:0;width:auto}.topbar-nav li{flex-shrink:0;font-size:14px;white-space:nowrap}body.dark .App{background-color:#252527}body.dark .Name{color:#f1f1f1}body.dark .bio{color:#8c8c8c}body.dark .sections{color:#c8c8c8}body.dark .sections li.active,body.dark .sections li:hover{border-bottom-color:#fff;color:#fff}body.dark .c1,body.dark .c2,body.dark .c3{background-color:#ffffff14}body.dark .hamburger{color:#dcdcdc}.App-header--full{height:100%;max-width:100%;width:95%}.RightCl--full{align-items:stretch;height:100%;width:100%}@media (max-width:800px){.LeftCl--hidden{display:none!important}}@media (min-width:1451px){.topbar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important}.topbar,body.dark .topbar{background:#0000!important}.App--full-width .topbar{pointer-events:none}.App--full-width .topbar .theme-toggle{display:none}.App-header--full{box-sizing:border-box;padding-top:14px}}.sections li.nav-theme-toggle{align-items:center;display:flex;margin-left:auto}.sections li.nav-theme-toggle,.sections li.nav-theme-toggle:hover{border-bottom:2px solid #0000!important}.sections li.nav-theme-toggle .theme-toggle{margin-left:0}.hamburger{color:#818181;display:none}@media (max-width:1450px){.App{box-sizing:border-box;flex-direction:column;justify-content:flex-start;min-height:100vh;padding-top:64px;width:100%}.App,.App-header{display:flex;height:auto}.App-header{margin-top:10px;width:90%}.LeftCl{align-items:start;display:flex;flex-direction:column;gap:30px;justify-content:flex-start;width:50%}.LeftCl,.LeftCl-text,.RightCl{height:auto}.RightCl{width:50%}.profilePic-wrapper{animation:none;height:300px;margin:0 0 0 35px;width:300px}.Name{font-size:60px;margin-bottom:0}.Name,.bio{margin-left:35px;margin-top:0}.bio{color:#a0a0a0;font-size:large;padding:0;width:80%}.c1,.c2{height:auto;margin:50px auto 0;min-height:220px;width:90%}.c3{margin:50px auto 90px;min-height:200px}.bioSheet,.c3{height:auto;width:86%}.bioSheet{margin:30px auto 0}}@media (orientation:landscape) and (max-width:1200px){.App{display:flex;flex-direction:column;height:auto;min-height:100vh;width:100%}}@media (max-width:800px){.App{box-sizing:border-box;min-height:100vh;padding-bottom:40px}.App,.App-header{flex-direction:column;height:auto;justify-content:flex-start;width:100%}.App-header{display:flex;gap:5px}.App--full-width{padding-top:56px}.App--full-width .App-header{margin-top:0}.LeftCl{grid-column-gap:18px;grid-row-gap:16px;align-items:center;column-gap:18px;display:grid;grid-template-areas:"pic name" "bio bio";grid-template-columns:auto 1fr;height:auto;margin-top:10px;row-gap:16px;text-align:left;width:100%}.LeftCl-text{display:contents}.RightCl{height:auto;width:100%}.glass-shell{--bar-h:54px;--col-w:280px;backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);background:linear-gradient(135deg,#ffffff3d,#ffffff14);clip-path:polygon(0 0,100% 0,100% var(--bar-h),var(--col-w) var(--bar-h),var(--col-w) var(--bar-h),0 var(--bar-h));filter:drop-shadow(0 6px 22px rgba(31,38,135,.18));height:100%;left:0;position:fixed;top:0;transition:clip-path .5s cubic-bezier(.22,1,.36,1);width:100%;will-change:clip-path;z-index:30}.glass-shell.open{clip-path:polygon(0 0,100% 0,100% var(--bar-h),var(--col-w) var(--bar-h),var(--col-w) 100%,0 100%)}.glass-shell-bar{align-items:center;box-sizing:border-box;display:flex;gap:12px;height:var(--bar-h);left:0;padding:0 18px;position:absolute;top:0;width:100%}.glass-shell-bar .theme-toggle{margin-left:auto}.glass-shell-title{align-items:center;color:#141414eb;display:flex;font-size:16px;font-weight:600;height:var(--bar-h);left:50%;letter-spacing:.04em;max-width:60%;overflow:hidden;pointer-events:none;position:absolute;text-overflow:ellipsis;top:0;transform:translateX(-50%);white-space:nowrap}body.dark .glass-shell-title{color:#f5f5f5f2}.hamburger{all:unset;align-items:center;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:5px;height:28px;justify-content:center;width:28px}.hamburger-bar{background:#464646;border-radius:2px;display:block;height:2px;transition:transform .4s cubic-bezier(.68,-.3,.32,1.3),opacity .25s ease,background .4s ease;width:24px}.hamburger.open .hamburger-bar:first-child{transform:translateY(7px) rotate(45deg)}.hamburger.open .hamburger-bar:nth-child(2){opacity:0;transform:scaleX(.2)}.hamburger.open .hamburger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.glass-shell-nav{box-sizing:border-box;color:#373737;display:flex;flex-direction:column;gap:10px;height:calc(100% - var(--bar-h));justify-content:center;left:0;list-style:none;margin:0;opacity:0;padding:0 20px 40px;pointer-events:none;position:absolute;top:var(--bar-h);transition:opacity .3s ease;width:var(--col-w)}.glass-shell-nav.open{opacity:1;pointer-events:auto}.glass-shell-nav li{border:none;border-radius:12px;box-sizing:border-box;display:block;font-size:19px;opacity:0;overflow:hidden;padding:12px 16px;position:relative;text-align:center;transform:translateX(-18px);transition:color .3s ease,transform .4s cubic-bezier(.22,1,.36,1),opacity .4s ease;width:100%}.glass-shell-nav.open li{opacity:1;transform:translateX(0)}.glass-shell-nav.open li:first-child{transition-delay:.1s}.glass-shell-nav.open li:nth-child(2){transition-delay:.15s}.glass-shell-nav.open li:nth-child(3){transition-delay:.2s}.glass-shell-nav.open li:nth-child(4){transition-delay:.25s}.glass-shell-nav.open li:nth-child(5){transition-delay:.3s}.glass-shell-nav.open li:nth-child(6){transition-delay:.35s}.glass-shell-nav.open li:nth-child(7){transition-delay:.4s}.glass-shell-nav li.clicked{animation:navClickBounce .5s}.glass-shell-nav li:before{background:#0000000f;border-radius:12px;content:"";inset:0;opacity:0;position:absolute;transition:opacity .3s ease;z-index:-1}.glass-shell-nav li:hover:before{opacity:1}.glass-shell-nav li.active,.glass-shell-nav li:hover{color:#000}.glass-shell-nav li.active{font-weight:600}.glass-shell-nav li.active:before{background:#0000001a;opacity:1}.glass-shell-nav li.on-dark,.glass-shell-nav li.on-dark.active,.glass-shell-nav li.on-dark:hover{color:#fff}.glass-shell-nav li.on-dark.active:before{background:#ffffff29}.Name{font-size:28px;grid-area:name;margin:0}.profilePic-wrapper{animation:none;grid-area:pic;height:130px;margin-left:35px;margin-top:0;width:130px}.bio{border-radius:0;box-shadow:none;font-size:16px;font-weight:500;grid-area:bio;margin:14px 0 0 35px;padding:0;text-align:left;width:80%}.cMaster{align-items:center;display:flex;flex-direction:column;gap:20px;height:auto;margin-top:0;width:100%}.c1,.c2,.c3{background-color:rgba(0,0,0,.178);border-radius:20px;display:block;min-height:150px;width:85%}body.dark .glass-shell{background:linear-gradient(135deg,#46464c66,#1e1e2229);filter:drop-shadow(0 6px 22px rgba(0,0,0,.4))}body.dark .hamburger-bar{background:#e1e1e1}body.dark .glass-shell-nav{color:#d2d2d2}body.dark .glass-shell-nav li.active,body.dark .glass-shell-nav li:hover{color:#fff}body.dark .glass-shell-nav li:before{background:#ffffff1f}body.dark .c1,body.dark .c2,body.dark .c3{background-color:#ffffff1a}}.nav-scrim{display:none}@media (max-width:800px){.nav-scrim{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#00000040;display:block;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .4s ease;z-index:9}.nav-scrim.open{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion:reduce){.glass-shell,.glass-shell-nav,.glass-shell-nav li,.hamburger-bar,.nav-scrim{transition-duration:.01ms!important}}@media (min-width:1451px) and (max-height:900px){.App:not(.App--full-width){align-items:flex-start;box-sizing:border-box;height:auto;min-height:100vh;padding:90px 0 60px}.App:not(.App--full-width) .App-header,.App:not(.App--full-width) .LeftCl,.App:not(.App--full-width) .RightCl,.App:not(.App--full-width) .cMaster{height:auto}.App:not(.App--full-width) .c1,.App:not(.App--full-width) .c2{height:auto;min-height:260px}.App:not(.App--full-width) .c3{height:auto;min-height:220px}}.contacts{background-color:#f57f99;border-radius:10px;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;gap:18px;height:100%;justify-content:center;overflow:hidden;padding:24px 28px;width:100%}.contacts-title{font-size:22px;font-weight:700;letter-spacing:.5px;margin:0}.contacts-list{display:flex;flex-direction:column;gap:16px;list-style:none;margin:0;padding:0}.contact-item{align-items:center;display:flex;gap:14px}.contact-icon{display:flex;flex-shrink:0;height:22px;width:22px}.contact-icon svg{height:100%;width:100%}.contact-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}.contact-label{font-size:11px;letter-spacing:1px;opacity:.8;text-transform:uppercase}.contact-value{color:#fff;font-size:15px;text-decoration:none;word-break:break-word}.contact-value:hover{text-decoration:underline}@keyframes bioFadeIn{0%{opacity:0}to{opacity:1}}.bioSheet-wrapper{animation:bioFadeIn 1.5s ease;transition:opacity .3s ease;width:100%}.bioSheet{background-color:#1e1e1e;border-radius:12px;box-shadow:0 4px 24px #0000001a;height:70vh;margin:40px auto 0 0;overflow:hidden;width:100%}.skill-panel{box-sizing:border-box;color:#d4d4d4;font-family:Consolas,Courier New,monospace;font-size:13px;height:100%;line-height:1.65;overflow-y:auto;padding:20px 0}.code-line{align-items:baseline;display:flex}.gutter{color:#858585;flex-shrink:0;min-width:44px;padding-right:20px;text-align:right;-webkit-user-select:none;user-select:none}.code-content{white-space:pre}.sk-keyword{color:#569cd6}.sk-variable{color:#9cdcfe}.sk-string{color:#ce9178}.sk-comment{color:#6a9955}.sk-punct{color:#d4d4d4}.sk-bar{color:grey}.sk-legend{color:#acabab}.cursor{animation:cursorBlink 1s step-end infinite;background-color:#d4d4d4;display:inline-block;height:1em;margin-left:1px;vertical-align:text-bottom;width:2px}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@media (max-width:800px){.bioSheet{height:auto;margin:10px auto;width:96%}.skill-panel{font-size:11px;height:auto;overflow:hidden;padding:16px 0}.gutter{min-width:30px;padding-right:12px}.skill-panel--fade{animation:skillFadeIn .8s ease}@keyframes skillFadeIn{0%{opacity:0}to{opacity:1}}}.project-grid-wrapper{align-self:center;box-sizing:border-box;margin:24px auto 0;max-height:calc(100vh - 160px);max-width:1040px;overflow-y:auto;padding:0 12px;transition:opacity .3s ease;width:100%}.project-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.grid-cell{animation:gridCellIn .45s ease both;aspect-ratio:1;background:#0000000d;border:none;border-radius:12px;cursor:pointer;display:block;overflow:hidden;padding:0;position:relative}@keyframes gridCellIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.grid-cell{animation:none}}.grid-cover{display:block;height:100%;object-fit:cover;width:100%}.grid-overlay{align-items:flex-end;background:linear-gradient(0deg,#000000b3 0,#0000 55%);box-sizing:border-box;display:flex;inset:0;opacity:0;padding:12px;position:absolute;transition:opacity .3s ease}.grid-cell:focus-visible .grid-overlay,.grid-cell:hover .grid-overlay{opacity:1}.grid-title{color:#fff;font-size:14px;font-weight:600;line-height:1.3;text-align:left;text-shadow:0 1px 3px #00000080}.grid-cell:focus-visible{outline:2px solid #4a90d9;outline-offset:2px}.grid-state{color:#a0a0a0;font-size:16px;padding:40px 0;text-align:center}@media (max-width:1450px){.project-grid-wrapper{max-height:calc(100vh - 150px)}}@media (max-width:800px){.project-grid-wrapper{margin-top:0;max-height:calc(100vh - 70px)}.project-grid{gap:6px}.grid-cell{border-radius:8px}.grid-title{font-size:12px}}body.dark .grid-cell{background:#ffffff0d}body.dark .grid-state{color:#8c8c8c}.modal-overlay{align-items:center;animation:modalFadeIn .3s ease;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);background:#12121673;box-sizing:border-box;display:flex;inset:0;justify-content:center;outline:none;overflow:hidden;padding:20px;position:fixed;z-index:100}.modal-overlay.closing{animation:modalFadeOut .4s ease forwards}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}.modal-content{animation:modalEnter .5s cubic-bezier(.34,1.32,.46,1) both;backdrop-filter:blur(26px) saturate(170%);-webkit-backdrop-filter:blur(26px) saturate(170%);background:linear-gradient(135deg,#ffffffc7,#fff9);border:1px solid #ffffff8c;border-radius:16px;box-shadow:0 18px 50px #00000059;box-sizing:border-box;max-height:90vh;max-width:800px;overflow-y:auto;padding:32px;position:relative;width:100%}.modal-overlay.closing .modal-content{animation:modalExit .4s cubic-bezier(.55,0,.78,.2) forwards}@keyframes modalEnter{0%{opacity:0;transform:translateX(110%)}to{opacity:1;transform:translateX(0)}}@keyframes modalExit{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-110%)}}@media (prefers-reduced-motion:reduce){.modal-content{animation:modalFadeIn .2s ease both}.modal-overlay.closing .modal-content{animation:modalFadeOut .2s ease forwards}}.modal-close{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:18px;line-height:1;padding:4px 8px;position:absolute;right:16px;top:16px;transition:color .2s ease,background .2s ease}.modal-close:hover{background:#00000012;color:#000}.modal-title{font-size:26px;margin:0 40px 12px;text-align:center}.modal-description{color:#646464;font-size:15px;line-height:1.65;margin:0 0 16px;text-align:center}.modal-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.modal-tag{background:#00000012;border-radius:20px;color:#555;font-size:12px;padding:3px 10px}.modal-media-list{display:flex;flex-direction:column;gap:0}.modal-media-item{width:100%}.modal-image{border-radius:0;display:block;width:100%}.modal-caption{color:#828282;font-size:13px;margin:8px 0 0;text-align:center}.modal-video-embed{border-radius:8px;height:0;overflow:hidden;padding-bottom:56.25%;position:relative}.modal-video-embed iframe{border:none;height:100%;inset:0;position:absolute;width:100%}.modal-media-link{background:#0000000a;border-radius:8px;padding:12px 16px}.modal-link{color:#0070f3;font-size:15px;text-decoration:none;word-break:break-all}.modal-link:hover{text-decoration:underline}.modal-software{align-items:center;border-top:1px solid #00000014;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:28px;padding-top:18px}.modal-software-icon{border-radius:10px;display:block;height:44px;transition:transform .2s ease;width:44px}.modal-software-icon:hover{transform:translateY(-3px)}.modal-software-rail{align-items:center;display:none;flex-direction:column;gap:12px;left:calc(50% + 424px);position:absolute;top:50%;transform:translateY(-50%)}@media (min-width:1000px){.modal-software-rail{display:flex}.modal-software{display:none}}@media (max-width:800px){.modal-content{border-radius:8px;max-height:95vh;padding:20px}.modal-software-icon{height:38px;width:38px}.modal-title{font-size:20px}}body.dark .modal-content{background:linear-gradient(135deg,#2c2c2e9e,#1c1c1e80);border-color:#ffffff24;color:#f1f1f1}body.dark .modal-close{color:#999}body.dark .modal-close:hover{background:#ffffff1a;color:#fff}body.dark .modal-description{color:#aaa}body.dark .modal-tag{background:#ffffff1a;color:#ccc}body.dark .modal-caption{color:#969696}body.dark .modal-media-link{background:#ffffff0f}body.dark .modal-software{border-top-color:#ffffff1a}body.dark .modal-link{color:#4da3ff}.compare-box{border-radius:0;cursor:ew-resize;outline:none;overflow:hidden;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;width:100%}.compare-box:focus-visible{box-shadow:0 0 0 2px #4a90d9}.compare-img{display:block;pointer-events:none;width:100%}.compare-img--overlay{height:100%;inset:0;object-fit:cover;position:absolute}.compare-divider{background:#fffffff2;bottom:0;box-shadow:0 0 8px #00000080;pointer-events:none;position:absolute;top:0;transform:translateX(-1px);width:2px}.compare-handle{align-items:center;background:#fffffff0;border-radius:50%;box-shadow:0 2px 10px #00000059;color:#1c1c1e;display:flex;font-size:16px;height:36px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:36px}@media (max-width:800px){.compare-handle{font-size:14px;height:30px;width:30px}}
/*# sourceMappingURL=main.6957182b.css.map*/