.geist-regular{font-family:Geist,sans-serif;font-optical-sizing:auto;font-weight:400;font-style:normal}.nerko-one-regular{font-family:Nerko One,cursive;font-weight:400;font-style:normal}.kodchasan-regular{font-family:Kodchasan,sans-serif;font-weight:400;font-style:normal}.kodchasan-bold{font-family:Kodchasan,sans-serif;font-weight:700;font-style:normal}body{--rounded-xl:12px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--bg-white:#f9fdfc;--fg-white:#1a2127;--fg-white2:#0b3e38;--solid-white:#37a79a;--btn-white:#ddf7f3;--btn-white2:#b3eae1;--border-white:#7ecdc1;--acc-text-white:#007c70;--bg-black:#0c1110;--fg-black:#ebeff1;--fg-black2:#cef1eb;--solid-black:#97d8ce;--btn-black:#172a27;--btn-black2:#224540;--border-black:#3b655f;--acc-text-black:#8acbc1}*{font-family:Geist;font-size:var(--text-base);margin:0 auto}.app__wrapper{position:fixed;padding:0;margin:0;top:0;left:0;width:100%;height:100%;overflow:hidden;background-color:var(--bg-white)}.dark.app__wrapper{background-color:var(--bg-black)}.app__container{position:relative;max-width:800px;-ms-overflow-style:none;scrollbar-width:none;overflow-y:scroll;overflow-x:hidden;padding:0;margin:0 auto;top:0;left:0;width:100%;height:100%;justify-content:center;background-color:var(--bg-white);color:var(--fg-white)}.app__container:-webkit-scrollbar {display:none}.app__container > *:last-child {margin-bottom:40px}.app__container.dark{background-color:var(--bg-black);color:var(--fg-black)}.navbar{display:flex;flex-direction:row;justify-content:space-between;margin:10px;width:100%;height:100px;justify-items:center;align-items:center}.navbar .navbar__user{margin:0 0 0 20px;justify-items:center;align-items:center}.navbar__user p{font-family:Nerko One;font-size:var(--text-xl)}.navbar .navbar__links{margin:0 30px 0 0;cursor:pointer}.navbar__links__children{display:flex}.navbar__links__children > *{margin-right:1rem;font-family:Kodchasan;font-size:var(--text-base)}.navbar__links__children a{text-decoration:none;color:var(--fg-white)}.dark .navbar__links__children a{color:var(--fg-black)}.navbar__links__children > *:last-child {margin-right:0}.navbar .button__theme{background:none;border:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center}.navbar .button__theme svg{display:block;cursor:pointer;width:100%;height:100%}.language__picker{position:relative;display:inline-block;margin-top:1px}.language__dropdown{cursor:pointer;display:flex;align-items:center}.language__menu{position:absolute;list-style:none;margin-top:12px;top:110%;right:0;min-width:170px;background-color:var(--bg-white);border:2px solid var(--bg-white);border-radius:var(--rounded-xl);padding:.25rem 0;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:20;animation:dropdownBounce .6s ease-out forwards;transform-origin:top center;opacity:0;transform:translateY(-20px)}.dark .language__menu{background-color:var(--bg-black)}.dropdown__item{padding:.6rem 1rem;cursor:pointer;animation:itemSlideIn .4s ease-out forwards;opacity:0;transform:translateY(-10px)}.dropdown__item:hover {filter:brightness(115%)}.dark .dropdown__item:hover {filter:brightness(85%)}.home__container{display:flex;flex-direction:column;justify-content:flex-start;width:100%;margin-top:10px}.profile__container{display:flex;flex-direction:row;justify-content:space-between;width:100%;height:100%}.user__container{display:flex;flex-direction:row;margin:0 0 0 20px;height:80px}.user__info{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center;margin-top:-6px;margin-left:8px}.location__info{display:flex;flex-direction:row;justify-items:center;align-items:center;margin-top:2px}.location__info p{font-size:12px;color:var(--fg-white2)}.dark .location__info p{color:var(--fg-black2)}@media (min-width: 768px){.location__info{margin-left:12px}.location__info p{font-size:var(--text-sm)}}.location__info svg{width:20px;height:20px}.avatar{position:relative;display:inline-block;width:70px;height:70px}.avatar .progress-ring{display:none}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:opacity .3s ease;box-shadow:0 4px 8px rgba(0,0,0,.2)}.dark .avatar img{box-shadow:0 -1px 40px rgba(0,0,0,.12)}.avatar img.default{object-position:150% 16%}.avatar img.hover{display:none;position:absolute;top:0;left:0}.avatar:hover img.default {display:block;animation:fadeout 0s .5s forwards}.avatar:hover img.hover {display:block;opacity:0;animation:fadein .3s .5s forwards}@keyframes fadeout{to{opacity:0}}@keyframes fadein{to{opacity:1}}@media (min-width: 768px){.avatar{width:80px;height:80px}.avatar .progress-ring{display:block;position:absolute;top:-2px;left:-2px;transform:rotate(-90deg);pointer-events:none;z-index:10}.avatar .progress-ring-circle{stroke-dasharray:251.2;stroke-dashoffset:251.2;transition:stroke-dashoffset .5s linear;color:var(--solid-white)}.dark .avatar .progress-ring-circle{color:var(--solid-black)}.avatar:hover .progress-ring-circle {stroke-dashoffset:0}}.social__container{display:grid;margin:0 20px 0 0;grid-template-columns:repeat(3,minmax(0,.485fr));gap:2px}.social__container a{text-decoration:none;color:var(--fg-white)}.dark .social__container a{color:var(--fg-black)}@media (min-width: 768px){.social__container{display:flex;justify-content:center;align-items:center}}.social__container a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden;width:32px;height:32px;margin-left:12px;background-color:var(--fg-black);border:2px solid var(--btn-white);border-radius:100px;cursor:pointer}.dark .social__container a{background-color:var(--fg-white);border:2px solid var(--btn-black)}.social__container svg{display:block}.social__container .resume__button{width:72px;height:32px;text-decoration:none;color:var(--fg-white);font-size:var(--text-sm)}.dark .resume__button{color:var(--fg-black)}.about__container{display:flex;flex-direction:column;text-align:start;margin:24px 0 0 0}.about__container h2{margin-left:25px;text-align:start}.about__container p{margin-top:6px;margin-left:25px;margin-right:10px}.lang__container{display:grid;width:100%;justify-content:center;grid-template-columns:repeat(2,minmax(0,140px));gap:24px;margin-top:28px}@media (min-width: 768px){.lang__container{display:grid;grid-template-columns:repeat(4,minmax(0,140px));gap:24px;margin-top:28px}}.lang__item{display:flex;flex-direction:column;width:140px;height:72px;border-style:solid;border-width:1px;border-color:var(--border-white);border-radius:6px;justify-content:center;justify-items:center;align-items:center;gap:8px}.dark .lang__item{border-color:var(--border-black)}.lang__item img{width:28px;height:28px;justify-content:center;justify-items:center;align-items:center}.lang__item p{font-size:var(--text-sm);text-align:center}.project__container{display:flex;flex-direction:column;margin-top:32px;width:100%}.project__header{display:flex;flex-direction:row;justify-content:space-between;width:90%}.project__header p{font-size:var(--text-sm);margin:0}.project__all{display:inline-flex;flex-direction:row;cursor:pointer;color:var(--fg-white2);gap:4px;text-decoration:none;position:relative;margin:0}.project__all:after {content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background-color:currentColor;transition:width .3s ease}.project__all:hover:after {width:100%}.dark .project__all{color:var(--fg-black2)}.project__items{display:flex;flex-direction:column;margin-top:32px;width:100%;gap:12px}.project__item__container{display:flex;border-style:solid;border-width:1px;border-color:var(--border-white);border-radius:8px;padding:12px;width:80%;height:280px;transition:all .4s ease;cursor:pointer;overflow:hidden;text-decoration-line:none;position:relative}.project__item__container:hover {transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.3),
    0 0 0 1px rgba(255,255,255,.1)}.project__item__background{width:100%;padding:16px;border-radius:8px;cursor:pointer;transition:all .5s ease;position:relative;overflow:hidden}.project__item__container:hover .project__item__background {transform:scale(1.02);filter:brightness(1.1) contrast(1.05)}.ripple{position:absolute;border-radius:50%;background:radial-gradient(
    circle,
    rgba(255,255,255,.4) 0%,
    transparent 70%
  );transform:scale(0);opacity:0;pointer-events:none;z-index:1}.project__item__container:hover .ripple-1 {top:30%;left:20%;width:100px;height:100px;animation:rippleEffect 2s ease-out .1s}.project__item__container:hover .ripple-2 {top:60%;left:70%;width:80px;height:80px;animation:rippleEffect 2s ease-out .4s}.project__item__container:hover .ripple-3 {top:20%;left:60%;width:120px;height:120px;animation:rippleEffect 2.5s ease-out .7s}@keyframes rippleEffect{0%{transform:scale(0);opacity:.8}50%{opacity:.5}100%{transform:scale(4);opacity:0}}@media (min-width: 768px){.project__item__container{width:700px}}.project__item__header{display:flex;flex-direction:row;justify-content:space-between;width:100%}.project__item__header h2{font-size:var(--text-lg);color:var(--fg-black);width:100%;justify-content:flex-start;justify-items:start;text-align:start}.project__item__langs{display:flex;flex-direction:row}.project__lang__item{display:flex;width:24px;height:24px;justify-content:center;align-items:center;border-radius:6px;margin-left:-1px;box-shadow:0 1px 3px rgba(0,0,0,.4),
    0 1px 2px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.05)}.project__lang__item:nth-child(even){transform:rotate(4deg)}.project__lang__item img{display:flex;width:20px;height:20px}.project__item__description{margin-top:20px;font-size:var(--text-xs);color:var(--fg-black)}@media (min-width: 768px){.project__item__header h2{font-size:var(--text-2xl)}.project__lang__item{width:28px;height:28px}.project__lang__item img{display:flex;width:24px;height:24px}}.project__item__image{display:flex;width:80%;height:100%;margin-top:8px}.project__item__image img{width:100%;border-radius:8px}@keyframes dropdownBounce{0%{opacity:0;transform:translateY(-20px) scale(0.95)}50%{opacity:1;transform:translateY(10px) scale(1)}75%{transform:translateY(-5px) scale(1)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes itemSlideIn{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}