.page_container__aoG4z{gap:1.5rem;padding:2rem;color:#333}.page_header__kVzhN{width:100%;text-align:left}.page_headerTitle__3tMIM{font-weight:400;margin:0;color:#222}.page_headerBody__BvAHb{font-size:1rem;color:#666;margin-left:.5rem}.page_section__61PEw{margin:0 5rem 0 0;align-items:center;overflow:hidden}.page_sectionBody__RUsqB{color:#444}.page_profile__26kbZ{display:flex;flex-direction:column;align-items:center;float:right;margin:0 0 1rem 1rem}.page_profileImage__O9Evh{margin-bottom:1rem;max-width:150px;width:15vw;object-fit:cover}.page_profileContents__cSiYv{max-width:15em;display:flex;flex-wrap:wrap;justify-content:center}.page_profileContents__cSiYv *{color:#555;text-align:center;margin:.3rem .5rem}.page_profileContents__cSiYv :hover{color:#333;text-decoration:underline}.page_feature__CrGCB{margin:1rem 0;padding:2rem;border-radius:10px;background:rgba(255,255,255,.8);box-shadow:0 4px 8px rgba(0,0,0,.1);text-align:left}@media (max-width:768px){.page_headerTitle__3tMIM{text-align:center;font-size:1.5rem}.page_headerBody__BvAHb{text-align:center;font-size:1rem;margin:0}.page_section__61PEw{display:flex;max-width:800px;margin:1rem auto;flex-direction:column;align-items:center}.page_profile__26kbZ{margin:0}.page_profileImage__O9Evh{width:30vw;object-fit:cover}.page_feature__CrGCB{padding:1rem;width:90%}}.ProjectButtons_buttonContainer__eiaE1{margin:.7rem 0;text-align:left;width:100%;display:flex;gap:.65rem;flex-wrap:wrap}.ProjectButtons_buttonBase__xV6fV{--btn-top:#2f2f2f;--btn-bottom:#1f1f1f;--edge-1:#4a4a4a;--edge-2:#2b2b2b;position:relative;isolation:isolate;overflow:hidden;font-family:IBM Plex Sans,sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;padding:.46rem .95rem;border-radius:.6rem;border:1px solid transparent;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform:translateY(0);color:#f7f7f7;background:linear-gradient(160deg,var(--btn-top) 0,var(--btn-bottom) 100%) padding-box,linear-gradient(120deg,var(--edge-1) 0,var(--edge-2) 100%) border-box;box-shadow:0 8px 20px rgba(0,0,0,.17),inset 0 1px 0 rgba(255,255,255,.22);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.ProjectButtons_buttonBase__xV6fV:hover{transform:translateY(-2px) scale(1.015);filter:saturate(1.08);box-shadow:0 12px 26px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.26)}.ProjectButtons_buttonBase__xV6fV:active{transform:translateY(0);box-shadow:0 5px 12px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.2)}.ProjectButtons_buttonBase__xV6fV:focus-visible{outline:3px solid rgba(34,34,34,.3);outline-offset:2px}.ProjectButtons_buttonBase__xV6fV:before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.24) 50%,rgba(255,255,255,0) 70%);transform:translateX(-140%);transition:transform .55s ease;pointer-events:none;z-index:-1}.ProjectButtons_buttonBase__xV6fV:hover:before{transform:translateX(140%)}.ProjectButtons_codeButton__WU_0V{--btn-top:#363636;--btn-bottom:#202020;--edge-1:#606060;--edge-2:#313131}.ProjectButtons_codeButton__WU_0V:hover{color:#ffffff}.ProjectButtons_demoButton__FhTXx{--btn-top:#ef4a43;--btn-bottom:#be2f29;--edge-1:#ff8478;--edge-2:#c63f39}.ProjectButtons_demoButton__FhTXx:hover{color:#ffffff}.ProjectButtons_visitButton__aifWh{--btn-top:#4e96da;--btn-bottom:#2c6ba5;--edge-1:#8bc1f5;--edge-2:#3c7cb5}.ProjectButtons_visitButton__aifWh:hover{color:#ffffff}.ProjectButtons_paperButton__01kYz{--btn-top:#ffe86a;--btn-bottom:#e3c53c;--edge-1:#fff3a7;--edge-2:#d8b62f;color:#2f2600}.ProjectButtons_paperButton__01kYz:hover{color:#261f00}@media (max-width:640px){.ProjectButtons_buttonBase__xV6fV{min-width:5.2rem;justify-content:center}}.TextTypingAnimation_typingSlot__gbHfU{display:inline-block;min-height:1.2rem;height:1.2rem;line-height:1.2rem;vertical-align:bottom}.TextTypingAnimation_textTypingAnimation__kxFde{display:inline-block;overflow:hidden;white-space:nowrap;border-right:.15em solid rgb(0,0,0);animation:TextTypingAnimation_blink-caret__LVEDW .9s step-end infinite;font-size:1rem;line-height:1.2rem}@keyframes TextTypingAnimation_blink-caret__LVEDW{50%{border-color:transparent}}