@font-face{font-family:"Font Awesome 5 Brands";src:url("../font/fa-brands-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:block}
@font-face{font-family:"Font Awesome 5 Free";src:url("../font/fa-solid-900.woff2") format("woff2");font-style:normal;font-weight:900;font-display:block}
.fa-brands,.fa-solid{font-style:normal;font-variant:normal;text-rendering:auto}
.fa-brands{font-family:"Font Awesome 5 Brands";font-weight:400}
.fa-solid{font-family:"Font Awesome 5 Free";font-weight:900}
.fa-linkedin::before{content:"\f0e1"}
.fa-instagram::before{content:"\f16d"}
.fa-file-lines::before{content:"\f15c"}
.fa-envelope::before{content:"\f0e0"}
@font-face{font-family:"Yuhui Sans";src:url("../font/Heebo-Light.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Yuhui Sans";src:url("../font/Heebo-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Yuhui Sans";src:url("../font/Heebo-Medium.woff2") format("woff2");font-weight:500 700;font-display:swap}
@font-face{font-family:"Yuhui Display";src:url("../font/GTSectraDisplay-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
:root{--site-bg:#797979;--site-ink:#fff;--site-muted:rgba(255,255,255,.72);--site-gutter:4%;--site-edge-y:clamp(22px,3vh,36px)}
*{box-sizing:border-box}html{min-width:320px;background:var(--site-bg);scroll-behavior:smooth}body{min-width:320px;min-height:100%;margin:0;color:var(--site-ink);background:transparent;font-family:"Yuhui Sans",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}img{display:block;max-width:100%}.site-background{position:fixed;inset:0;z-index:0;width:100%!important;height:100%!important;pointer-events:none}.site-header,main,.site-transition{position:relative;z-index:1}
.site-header{position:fixed;inset:0 0 auto;z-index:40;height:0;background:transparent}.site-header__bar{position:absolute;top:0;right:var(--site-gutter);left:var(--site-gutter);display:flex;align-items:center;justify-content:space-between;width:92%;height:33.6px;margin:var(--site-edge-y) 0;color:#fff;font-size:13px;font-weight:400;letter-spacing:.02em;text-transform:uppercase}.site-brand{display:flex;align-items:center;flex:0 0 104.4px;width:104.4px;height:33.6px;transform:none}.site-brand__image{width:104.4px;height:33.6px;object-fit:contain;filter:brightness(0) invert(1);transition:opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}.site-brand:hover .site-brand__image{opacity:.82;transform:translateY(-2px)}.site-navigation{display:flex;align-items:center;gap:28px}.site-navigation a{position:relative;font-family:"Yuhui Display",Georgia,serif;font-size:13px;font-weight:400;opacity:.86}.site-navigation a::after{position:absolute;right:0;bottom:-6px;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:right;transition:transform .25s ease}.site-navigation a:hover::after,.site-navigation a:focus-visible::after{transform:scaleX(1);transform-origin:left}.site-menu-button{display:none;align-items:center;justify-content:center;position:relative;z-index:31;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(55,58,58,.3);box-shadow:inset 0 1px rgba(255,255,255,.18),0 8px 24px rgba(0,0,0,.1);backdrop-filter:blur(12px) saturate(140%);cursor:pointer}.site-menu-button span{position:absolute;left:50%;width:15px;height:1px;background:currentColor;transform:translateX(-50%);transition:transform .28s ease,top .28s ease}.site-menu-button span:first-child{top:17px}.site-menu-button span:last-child{top:23px}.site-menu-button[aria-expanded="true"] span:first-child{top:20px;transform:translateX(-50%) rotate(45deg)}.site-menu-button[aria-expanded="true"] span:last-child{top:20px;transform:translateX(-50%) rotate(-45deg)}
.site-transition{position:fixed;inset:0;z-index:2000;background:rgba(28,31,31,.42);opacity:0;pointer-events:none;backdrop-filter:blur(0);transition:opacity .42s cubic-bezier(.22,1,.36,1),backdrop-filter .42s ease}body.site-is-leaving .site-transition{opacity:1;backdrop-filter:blur(14px)}
.site-header,main,.about-footer,.project-footer{animation:site-page-enter .8s cubic-bezier(.34,1.56,.64,1) both;transition:opacity .36s ease,transform .42s cubic-bezier(.22,1,.36,1)}
body.site-is-leaving .site-header,body.site-is-leaving main,body.site-is-leaving .about-footer,body.site-is-leaving .project-footer{opacity:0;transform:scale(.992)}
@keyframes site-page-enter{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@media(max-width:600px){.site-header{height:72px}.site-header__bar{top:calc(3vh - 10px);right:20px;left:20px;width:calc(100% - 40px);height:44px;margin:0;align-items:center}.site-brand{position:relative;z-index:2;flex:0 0 90px;width:90px;height:28.8px}.site-brand__image{width:90px;height:28.8px}.site-menu-button{display:flex}.site-navigation{position:absolute;top:calc(100% + 14px);right:0;z-index:30;display:grid;visibility:hidden;grid-template-columns:1fr;align-items:stretch;gap:0;width:min(220px,calc(100vw - 32px));margin:0;padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:rgba(42,45,45,.78);box-shadow:inset 0 1px rgba(255,255,255,.18),0 18px 50px rgba(0,0,0,.22);opacity:0;transform:translateY(-8px) scale(.97);transform-origin:top right;pointer-events:none;backdrop-filter:blur(22px) saturate(145%);transition:opacity .22s ease,transform .34s cubic-bezier(.22,1,.36,1),visibility 0s linear .34s}.site-navigation.is-open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}.site-navigation a{display:flex;align-items:center;width:100%;padding:13px 4px;border-top:1px solid rgba(255,255,255,.13);font-size:14px;font-weight:400;line-height:1.2;letter-spacing:.01em;text-align:left;text-transform:none;transition:padding-left .26s cubic-bezier(.22,1,.36,1)}.site-navigation a:first-child{border-top:0}.site-navigation a:hover,.site-navigation a:focus-visible{padding-left:9px}.site-navigation a::after{display:none}}
@media(prefers-reduced-motion:reduce){.site-header,.site-header *,main,footer,.site-transition{transition-duration:1ms!important}}
