@keyframes fadeInAnimation{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUpRightAnimation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes ripple-expand{to{opacity:0;transform:scale(1)}}.tech-popover{position-area:bottom;position-try-fallbacks:--middle-bottom,--middle-top;color:#fafbfb;opacity:0;background:#202231;border:none;border-radius:10px;width:280px;max-width:80vw;margin:.3rem .5rem;padding:1rem;transition:allow-discrete .5s cubic-bezier(.4,0,.2,1);position:fixed;transform:scale(.92)}@media (min-width:640px){.tech-popover{position-area:right span-bottom;position-try-fallbacks:--right-to-bottom,--left-to-bottom,--left-to-top,--right-to-top;margin-block:0}}.tech-popover:popover-open{opacity:1;transform:scale(1)}@starting-style{.tech-popover:popover-open{opacity:0;transform:scale(.92)}}.tech-popover__container{flex-direction:column;gap:1rem;display:flex;position:relative}.tech-popover__close{transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;right:0}.tech-popover__close:hover{transform:scale(1.1)}.tech-popover__header{align-items:center;gap:.5rem;display:flex}.tech-popover__header__icon{width:26px;height:26px}.tech-popover__header__icon svg{width:100%;height:100%}.tech-popover__header__title{font-family:var(--font-fira-code);font-size:18px}.tech-popover__experience{letter-spacing:.5px;font-size:12px}.tech-popover__description{color:#fafbfbb3;letter-spacing:.3px;font-size:13px;line-height:20px}.tech-popover__link{width:fit-content;font-size:13px;position:relative}.tech-popover__link:after{content:"";background-color:#fafbfbcc;width:0%;height:1px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.tech-popover__link:hover{color:#fafbfb}.tech-popover__link:hover:after{width:100%}@position-try --middle-bottom{position-area:bottom}@position-try --middle-top{position-area:top}@position-try --right-to-bottom{position-area:right span-bottom}@position-try --left-to-bottom{position-area:left span-bottom}@position-try --left-to-top{position-area:left span-top}@position-try --right-to-top{position-area:right span-top}
@keyframes fadeInAnimation{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUpRightAnimation{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes ripple-expand{to{opacity:0;transform:scale(1)}}.timeline{grid-template-columns:1fr;row-gap:.5rem;margin-inline:5%;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(#0000 0,#202231 50px calc(100% - 50px),#0000 100%);width:4px;position:absolute;top:0;bottom:0}.timeline__item{cursor:pointer;border-radius:1rem;outline:2px solid #0000;margin-left:1rem;padding:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.timeline__item:first-of-type{margin-top:1.5rem}.timeline__item:before{content:"";border-radius:2px;width:12px;height:12px;position:absolute;top:1.5rem;left:calc(-4px - 1rem)}.timeline__item:hover{outline:2px solid #202231}.timeline__item:has(.timeline__item__content--visible){background-color:#202231}.timeline__item__title{margin-bottom:.5rem;font-size:20px;font-weight:500}.timeline__item__subtitle{flex-direction:column;gap:.3rem;display:flex}.timeline__item__subtitle__company{width:fit-content;font-size:16px;position:relative}.timeline__item__subtitle__company:after{content:"";width:0%;height:1px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.timeline__item__subtitle__company:hover:after{width:100%}.timeline__item__subtitle__divider{display:none}.timeline__item__subtitle__period{color:#fafbfbb3;white-space:nowrap}.timeline__item__content{opacity:0;color:#fafbfbcc;text-align:left;grid-template-rows:0fr;font-size:15px;line-height:1.6;transition:all .3s cubic-bezier(.4,0,.2,1);display:grid}.timeline__item__content--visible{opacity:1;grid-template-rows:1fr;margin-top:1.1rem}.timeline__item__content__inner{flex-direction:column;gap:1rem;display:flex;overflow:hidden}.timeline__item__content__tag-list{flex-direction:column;gap:.2rem;display:flex}.timeline__item__content__tag-list span{letter-spacing:.4px;text-transform:uppercase;font-size:12px}.timeline__item__content__tag-list ul{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.timeline__item__content__tag-list ul svg{font-size:20px;transition:transform .2s cubic-bezier(.4,0,.2,1);display:flex}.timeline__item__content__tag-list ul svg:hover{transform:translateY(-2px)}.timeline__item__content__contributions{flex-direction:column;gap:.2rem;display:flex}.timeline__item__content__contributions li{padding-left:1rem;position:relative}.timeline__item__content__contributions li:before{content:"";border-radius:50%;width:7px;height:7px;position:absolute;top:.6em;left:0}.timeline__item--work:before,.timeline__item--work .timeline__item__content__inner ul li:before,.timeline__item--work .timeline__item__subtitle__company:after{background-color:#b88cff}.timeline__item--work .timeline__item__subtitle__company{color:#b88cff}.timeline__item--education:before,.timeline__item--education .timeline__item__content__inner ul li:before,.timeline__item--education .timeline__item__subtitle__company:after{background-color:#ffd879}.timeline__item--education .timeline__item__subtitle__company{color:#ffd879}.timeline__item--charity:before,.timeline__item--charity .timeline__item__content__inner ul li:before,.timeline__item--charity .timeline__item__subtitle__company:after{background-color:#4debc6}.timeline__item--charity .timeline__item__subtitle__company{color:#4debc6}.timeline__item--freelance:before,.timeline__item--freelance .timeline__item__content__inner ul li:before,.timeline__item--freelance .timeline__item__subtitle__company:after{background-color:#7f99fa}.timeline__item--freelance .timeline__item__subtitle__company{color:#7f99fa}@media (min-width:768px){.timeline{margin-inline:unset;grid-template-columns:repeat(2,1fr)}.timeline:before{left:50%;transform:translate(-50%)}.timeline__item:nth-child(odd){text-align:right;margin-inline:0 1rem}.timeline__item:nth-child(odd):before{left:auto;right:calc(-6px - 1rem)}.timeline__item:nth-child(odd) .timeline__item__subtitle{align-items:flex-end}.timeline__item:nth-child(2n){grid-column:2}.timeline__item:nth-child(2n):before{left:calc(-6px - 1rem)}}@media (min-width:1280px){.timeline__item:nth-child(odd) .timeline__item__subtitle{justify-content:flex-end}.timeline__item__subtitle{flex-direction:row;gap:.6rem}.timeline__item__subtitle__divider{display:initial}}
