.pill-button,.project-card__tag,.footer__info .footer__contacts a,.home__contacts a{border-radius:999px;align-items:center;gap:10px;font-family:Fira Code,monospace;display:inline-flex}.about__container .skill-groups .skill-groups__group,.cards__card{border-radius:24px}.custom-link{transition:opacity .3s}.custom-link:hover{opacity:.7}.footer__info .footer__contacts,.home__contacts{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.footer__info .footer__contacts a,.home__contacts a{border:1px solid;padding:8px 18px;font-size:13px}.footer__info .footer__contacts a svg,.home__contacts a svg{margin-right:2px}.education__container header,.projects__container header,.work__container header,.about__container header{margin-bottom:1.8em}.education__container header h2,.projects__container header h2,.work__container header h2,.about__container header h2{margin:0;font-family:Fira Code,monospace;font-size:2.6rem;font-weight:700}@media (width>=768px){.education__container header h2,.projects__container header h2,.work__container header h2,.about__container header h2{font-size:3.4rem}}.cards__card{border:1px solid;padding:1.2rem 1.5rem;position:relative}.cards__card .card__info h3{margin:0 0 .4em;font-family:Fira Code,monospace;font-size:1.5rem}.cards__card .card__info h3,.cards__card .card__info .info__date,.cards__card .card__info .list__title{font-weight:400}.cards__card .card__info .info__link{opacity:.8}.cards__card .card__info .info__link a{transition:opacity .3s}.cards__card .card__info .info__link a:hover{opacity:.6;text-decoration:underline}.cards__card .card__info .info__list ul{padding:0 0 0 20px}.project-card__tags{flex-wrap:wrap;gap:8px;margin-top:.8em;display:flex}.project-card__tag{opacity:.8;border:1px solid;padding:4px 12px;font-size:12px}.home .home__container .container__subtext,.home .home__container .container__text{will-change:transform, opacity;text-align:center;width:100%;position:relative;overflow:hidden}.home{cursor:pointer;width:100%;height:100%;position:relative;overflow:hidden}.home:before{content:"";opacity:.08;pointer-events:none;border:1px solid;border-radius:50%;width:380px;height:380px;position:absolute;top:-180px;left:-180px}.home .home__container{flex-direction:column;justify-content:center;height:350px;display:flex}.home .home__container .container__text{height:70px;font-family:Fira Code,monospace;font-size:70px;font-weight:700;line-height:70px}@media (width>=576px){.home .home__container .container__text{height:80px;font-size:80px;line-height:80px}}.home .home__container .container__subtext{height:50px;font-size:22px;font-weight:300;line-height:50px}@media (width>=576px){.home .home__container .container__subtext{height:60px;font-size:30px;line-height:60px}}.home__cta{text-align:center;margin-bottom:1.5em}.home__contacts{margin-bottom:2.5em}.about__container p{margin:0 0 1.8em;font-weight:300}.about__container .info__location{opacity:.7;margin-bottom:.8em;font-family:Fira Code,monospace;font-size:13px}.about__container .element__image{aspect-ratio:4/5;object-fit:cover;filter:grayscale();border-radius:24px;width:100%;max-width:400px;height:auto;display:none}@media (width>=768px){.about__container .element__image{display:block}}.about__container .about__photo-col{max-width:500px}.about__container .skill-groups{flex-direction:column;gap:.9em;display:flex}.about__container .skill-groups .skill-groups__group{border:1px solid;padding:1em 1.4em}.about__container .skill-groups .skill-groups__group h3{margin:0 0 .4em;font-family:Fira Code,monospace;font-size:1rem}.about__container .skill-groups .skill-groups__group p{opacity:.85;margin:0;font-size:14px;font-weight:300}.about__container .skill-groups .skill-groups__group:first-child{background:var(--pill-fg);color:var(--pill-bg);border-color:#0000}.work__container .work__info{margin-bottom:1.8em}.work__container .work__info .work__info-link{font-weight:500;text-decoration:underline}.work__container .work-timeline{border-top:1px solid}.work__container .work-timeline .work-timeline__row{border-bottom:1px solid;grid-template-columns:1fr;gap:.2em;padding:.9em .5em;font-size:14px;transition:opacity .3s;display:grid}.work__container .work-timeline .work-timeline__row:hover{opacity:.6}@media (width>=576px){.work__container .work-timeline .work-timeline__row{grid-template-columns:1fr 1fr 2fr;align-items:center;gap:1em}}.work__container .work-timeline .work-timeline__date{opacity:.7;font-family:Fira Code,monospace}.work__container .work-timeline .work-timeline__company{font-weight:600}.work__container .work-timeline .work-timeline__role{opacity:.8}.work__container .work-timeline .work-timeline__tech{opacity:.6;font-family:Fira Code,monospace;font-size:12px}.work__container .work__cards,.projects__container .projects__cards{grid-gap:1em 1em;grid-auto-rows:min-content;align-items:stretch}.projects__container .project-card{transition:transform .3s,opacity .3s}.projects__container .project-card:hover{transform:translateY(-6px)}.projects__container .project-card--featured{background:var(--pill-fg);color:var(--pill-bg);border-color:#0000}.projects__container .project-card--featured .info__date,.projects__container .project-card--featured .info__description{opacity:.85}.projects__container .project-card--featured .project-card__tag{border-color:currentColor}.education__container .education__cards{grid-gap:1em 1em}html{box-sizing:border-box;transition:background-color .3s}html body{margin:0;font:100% Open Sans,sans-serif}.container{max-width:70rem;margin:0 auto;padding-top:1.0875rem;padding-bottom:1.0875rem}.container--extended{max-width:80rem;margin:0 auto;padding-top:1.0875rem;padding-bottom:1.0875rem}.display-none{display:none}.main{min-height:630px}@media (width>=768px){.main{min-height:540px}}.main>section{padding:3em 0}@media (width>=768px){.main>section{padding:5em 0}}.main .reveal-on-scroll{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(24px)}.main .reveal-on-scroll.is-revealed{opacity:1;transform:translateY(0)}.icon{vertical-align:middle;cursor:pointer}.link__icon,.link__leading-icon{color:currentColor;vertical-align:middle;align-items:center;display:inline-flex}.link__icon{opacity:.6;margin-left:5px}.link__leading-icon{margin-right:5px}.grid{grid-gap:0 2.25em;grid-template-columns:repeat(6,[col-start]1fr);align-items:center;display:grid}@media (width>=768px){.grid{grid-template-columns:repeat(12,[col-start]1fr)}}.grid .col-6{grid-column:6 span}.grid .col-4{grid-column:4 span}.grid .col-3{grid-column:3 span}.pill-button{border:1px solid;padding:12px 8px 12px 22px;font-size:14px;font-weight:500;transition:opacity .3s}.pill-button:hover{opacity:.75}.pill-button .pill-button__arrow{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.pill-button--filled{border-color:#0000}.pill-button--filled .pill-button__arrow{background:var(--pill-bg);color:var(--pill-fg)}.pill-button--outline .pill-button__arrow{border:1px solid}.section-label{letter-spacing:.05em;opacity:.7;margin:0 0 .6em;font-family:Fira Code,monospace;font-size:13px}.app.dark{color:#f5f5f5;--pill-bg:#121212;--pill-fg:#f5f5f5;background:#121212;min-height:100vh;transition:all .3s;position:relative}.app.dark a{color:#f5f5f5;text-decoration:none}.app.dark #gradient,.app.dark .footer__name{font-family:Fira Code,monospace;font-weight:700}.app.dark .pill-button--filled{color:#121212;background:#f5f5f5}.app.dark #drawer{background-color:#3d3d3d}.app.dark .header{border-bottom-color:#f5f5f51f}.app.dark .cards__card,.app.dark .skill-groups__group{border-color:#f5f5f524}.app.dark .work-timeline,.app.dark .work-timeline__row{border-color:#f5f5f51f}.app.light{color:#121212;--pill-bg:#f5f5f5;--pill-fg:#121212;background:#f5f5f5;min-height:100vh;transition:all .3s;position:relative}.app.light a{color:#121212;text-decoration:none}.app.light #gradient,.app.light .footer__name{font-family:Fira Code,monospace;font-weight:700}.app.light .pill-button--filled{color:#f5f5f5;background:#121212}.app.light #drawer{background-color:#a6a6a6}.app.light .header{border-bottom-color:#1212121f}.app.light .cards__card,.app.light .skill-groups__group{border-color:#12121224}.app.light .work-timeline,.app.light .work-timeline__row{border-color:#1212121f}.header{border-bottom:1px solid;margin-bottom:1.45rem}.header .header__content{justify-content:space-between;align-items:center;padding:1rem 1.0875rem;display:flex}.header .header__content .content__title{align-items:center;display:flex}.header .header__content .content__title h1{margin:0 0 0 10px;font-family:Fira Code,monospace;font-size:1.3rem}@media (width>=576px){.header .header__content .content__title h1{margin-left:0}}.header .header__content .content__links{font-family:Fira Code,monospace;font-size:14px;display:none}.header .header__content .content__links .link{padding:0 30px;font-weight:400}.header .header__content .content__links .link.link-last{padding-right:0}@media (width>=576px){.header .header__content .content__links{display:block}}.header .header__content .content__icon{font-size:28px;display:flex}@media (width>=576px){.header .header__content .content__icon{display:none}}.header .header__drawer{z-index:2;border-right:1px solid #80808033;height:92vh;padding:.5rem 0;font-family:Fira Code,monospace;font-weight:400;display:block;position:absolute;top:61px}@media (width>=576px){.header .header__drawer{display:none}}.header .header__drawer .drawer__links{flex-direction:column;width:260px;height:100%;display:flex}.header .header__drawer .drawer__links .link{padding:.89rem 0 .5rem 1.5rem;font-size:1.1em;line-height:1.25rem;display:block}.header .header__drawer .drawer__links .link:hover{text-decoration:underline}.header .header__drawer .drawer__links .link.link-last{align-items:center;display:flex}.header .header__drawer .drawer__links .link.link-last svg{padding:0 10px}.about__container,.work__container,.projects__container,.education__container{font-size:16px;font-weight:300;line-height:1.5}.footer__info{width:100%;padding:1.5em 0;position:relative;overflow:hidden}.footer__info:before{content:"";opacity:.08;pointer-events:none;border:1px solid;border-radius:50%;width:440px;height:440px;position:absolute;top:-220px;right:-220px}.footer__info .footer__info-container{text-align:center}.footer__info .footer__name{margin:0 0 .5em;font-size:2.6rem}@media (width>=576px){.footer__info .footer__name{font-size:3.6rem}}.footer__info .footer__contacts{margin-bottom:1.2em}.footer__info .footer__credit{opacity:.6;font-size:13px}
