.about{text-align:center;z-index:2;flex-direction:column;align-items:center;gap:16px;max-width:420px;margin:-10vh auto 0;display:flex;position:relative}.about__title{color:var(--green);font-size:32px}.about__text{line-height:1.3}.about__link{background-color:var(--purple);color:var(--white);text-transform:uppercase;letter-spacing:1px;padding:18px 32px 12px;font-size:20px;transition:all .3s ease-in-out}.about__link:hover{background-color:var(--blue);text-decoration:none}
.contact{background-color:var(--purple);padding:80px 0}.contact__inner{background-color:var(--black);border:1px solid var(--white);flex-direction:column;gap:24px;max-width:600px;margin:auto;padding:32px;display:flex}.contact__title{color:var(--green);text-align:center;font-size:32px}.contact__subtitle{text-align:center;color:var(--white);margin-bottom:16px;line-height:1.4}.contact__form{flex-direction:column;gap:24px;display:flex}.contact__field{flex-direction:column;gap:8px;display:flex}.contact__label{color:var(--white);text-transform:uppercase;letter-spacing:1px;font-size:16px;font-weight:500}.contact__input,.contact__textarea{border:1px solid var(--white);color:var(--white);background-color:#0000;padding:14px 16px;font-family:inherit;font-size:16px;transition:all .3s}.contact__input:focus,.contact__textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 2px #78cd8e33}.contact__input::placeholder,.contact__textarea::placeholder{color:#fff1e680}.contact__textarea{resize:vertical;min-height:120px}.contact__submit{background-color:var(--purple);color:var(--white);text-transform:uppercase;letter-spacing:1px;cursor:pointer;border:none;align-self:center;padding:18px 32px 12px;font-size:20px;transition:all .3s ease-in-out}.contact__submit:hover:not(:disabled){background-color:var(--blue)}.contact__submit:disabled{opacity:.6;cursor:not-allowed}.contact__status{text-align:center;border-radius:4px;padding:16px;font-weight:500}.contact__status--success{border:1px solid var(--green);color:var(--green);background-color:#78cd8e33}.contact__status--error{color:#ff6464;background-color:#ff646433;border:1px solid #ff6464}@media (max-width:640px){.contact{margin:100px auto}.contact__title{font-size:28px}.contact__submit{padding:16px 24px 10px;font-size:18px}}
@keyframes scrollLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollRight{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mainBanner{width:100%;height:80vh;min-height:830px;max-height:1600px;position:relative;overflow:hidden}@media (max-width:768px){.mainBanner{min-height:375px;max-height:1000px}}.mainBanner:after{content:"";z-index:1;background:linear-gradient(#08080600 90%,#080806 100%);width:100%;height:100%;position:absolute;top:0;left:0}.mainBanner__background{object-fit:cover;object-position:top;z-index:-1;width:100%;height:100%;position:absolute;top:0;left:0}@media (max-width:768px){.mainBanner__background{display:none}}.mainBanner__background--mobile{object-position:top;object-fit:cover;z-index:-1;width:100%;height:100%;display:none;position:absolute;top:0;left:0}@media (max-width:768px){.mainBanner__background--mobile{display:block}}.mainBanner__scrollingCopy{text-transform:uppercase;pointer-events:none;width:100%;margin:0;font-size:clamp(60px,10vw,200px);line-height:1.1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.mainBanner__scrollingCopy span{white-space:nowrap;will-change:transform;width:max-content;min-width:200%;display:block}.mainBanner__scrollingCopy__line1,.mainBanner__scrollingCopy__line3{opacity:0;animation:.7s ease-in .7s forwards fadeIn,240s linear .7s infinite scrollLeft}.mainBanner__scrollingCopy__line2{opacity:0;animation:.7s ease-in .7s forwards fadeIn,240s linear .7s infinite scrollRight}
.portfolio{flex-direction:column;gap:32px;max-width:2000px;margin:150px auto;padding:0 32px;display:flex}.portfolio__title{color:var(--green);text-align:center;font-size:32px}.portfolio__projects{color:var(--white);grid-template-columns:repeat(3,1fr);gap:32px;display:grid}@media (max-width:1024px){.portfolio__projects{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.portfolio__projects{grid-template-columns:1fr}}.portfolio__project{border:1px solid var(--white);color:var(--white);flex-direction:column;display:flex}.portfolio__project:hover{text-decoration:none}.portfolio__project:hover .portfolio__image:before{background:0 0}.portfolio__project:hover .portfolio__image img{filter:grayscale(0%)}.portfolio__info{color:var(--white);flex-direction:column;display:flex}.portfolio__name{text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--white);font-size:22px}.portfolio__name span{border-right:1px solid var(--white);padding:14px 16px 8px;display:inline-block}.portfolio__image{border-bottom:1px solid var(--white);width:100%;height:0;padding-bottom:56.25%;position:relative;overflow:hidden}.portfolio__image:before{content:"";opacity:.8;background:var(--purple);z-index:1;mix-blend-mode:multiply;width:100%;height:100%;transition:background .3s;position:absolute;top:0;left:0}.portfolio__image img{filter:grayscale();object-fit:cover;object-position:top;width:100%;height:100%;transition:filter .3s;position:absolute;top:0;left:0}.portfolio__description{min-height:60px;padding:16px;line-height:1.3;overflow:hidden}.portfolio__description>p{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.portfolio__tags{border-top:1px solid var(--white);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portfolio__tags strong{border-right:1px solid var(--white);padding:16px;font-weight:900}.portfolio__tag{border-radius:4px;padding:4px 8px;font-size:12px;display:inline-block}
.resume{flex-direction:column;gap:64px;max-width:900px;margin:150px auto;padding:0 32px;display:flex}.resume__main-title{color:var(--green);text-align:center;font-size:32px}.resume__section{flex-direction:column;gap:24px;display:flex}.resume__section-title{color:var(--purple);text-align:center;text-transform:uppercase;letter-spacing:1px;font-size:28px}.resume__list{flex-direction:column;gap:16px;display:flex}.resume__accordion-item{border:1px solid var(--white);background-color:#0000;overflow:hidden}.resume__accordion-header{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:20px 24px;transition:background-color .3s;display:flex}.resume__accordion-header:hover{background-color:#7865921a}.resume__accordion-header--static{cursor:default}.resume__accordion-header--static:hover{background-color:#0000}.resume__accordion-info{flex-flow:wrap;flex:1;align-items:baseline;gap:16px;display:flex}.resume__accordion-title{color:var(--white);text-transform:uppercase;letter-spacing:1px;margin:0;font-size:18px}.resume__accordion-subtitle{color:var(--blue);font-size:16px;font-weight:500}.resume__accordion-subtitle:before{content:"•";color:var(--white);margin-right:16px}.resume__accordion-link{color:var(--blue);transition:color .3s}.resume__accordion-link:hover{color:var(--green);text-decoration:underline}.resume__accordion-timeline{color:var(--purple);font-size:14px;font-style:italic}.resume__accordion-timeline:before{content:"•";color:var(--white);margin-right:16px}.resume__accordion-toggle{flex-shrink:0;width:30px;height:30px;margin-left:16px;position:relative}.resume__accordion-toggle span{background-color:var(--white);transition:all .3s;position:absolute}.resume__accordion-toggle span:first-child{height:2px;top:50%;left:0;right:0;transform:translateY(-50%)}.resume__accordion-toggle span:last-child{width:2px;top:0;bottom:0;left:50%;transform:translate(-50%)}.resume__accordion-toggle.is-open span:first-child{transform:translateY(-50%)rotate(180deg)}.resume__accordion-toggle.is-open span:last-child{opacity:0;transform:translate(-50%)rotate(90deg)}.resume__accordion-content{border-top:0 solid var(--white);max-height:0;transition:max-height .3s,padding .3s;overflow:hidden}.resume__accordion-content p{color:var(--white);margin:0;padding:0 24px 20px;line-height:1.6}.resume__accordion-content.is-open{border-top-width:1px;max-height:500px;padding-top:20px}@media (max-width:640px){.resume{gap:48px;margin:100px auto}.resume__main-title{font-size:28px}.resume__section-title{font-size:24px}.resume__accordion-info{flex-direction:column;align-items:flex-start;gap:8px}.resume__accordion-subtitle:before,.resume__accordion-timeline:before{content:"";margin-right:0}.resume__accordion-header{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.resume__accordion-toggle{position:absolute;top:16px;right:16px}.resume__accordion-content p{padding:0 16px 16px}}
