:root{--color-accent:#1a1b1f99;--color-accent-contrast:white;--color-border:#e4e4e4}[data-bs-theme=dark]{--color-accent:#ffffffb3;--color-accent-contrast:#1a1b1f;--color-border:#3a3b3f;--bs-body-bg:#0d1b2a;--bs-tertiary-bg:#0d1b2a;--bs-tertiary-bg-rgb:13, 27, 42}p{font-family:"Source Sans 3",sans-serif;font-size:1.125rem}h1,h2,h3,h4,h5,h6{font-family:"Source Sans 3",sans-serif}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5,h6{font-size:1rem}em{color:var(--color-accent);font-style:normal;font-weight:400}html{scroll-behavior:smooth;scroll-padding-top:140px}html,body{margin:0}body{flex-direction:column;min-height:100vh;font-family:"Source Sans 3",sans-serif;display:flex}main{flex:1 0 auto}.wrapper{width:100%;margin-left:auto;margin-right:auto;padding:0 3rem}.navbar-brand{color:var(--color-accent);font-family:Open Sans,sans-serif;font-weight:600}.navbar{padding:1rem 3rem}.navbar-collapse{justify-content:flex-end}.nav-item{color:var(--color-accent);font-family:Open Sans,sans-serif;font-weight:600}.navbar-nav li{text-align:center;margin:0 2rem;font-family:Open Sans,sans-serif;font-weight:400}@media (width<=991.98px){.navbar-nav{margin-top:2rem}}.nav-link.active{color:var(--color-accent);font-weight:600}.theme-toggle{color:var(--color-accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:60px;height:40px;padding:.5rem 1rem;font-family:Open Sans,sans-serif;font-weight:400;display:inline-flex;position:relative}.theme-toggle .icon-sun,.theme-toggle .icon-moon{transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s;position:absolute;top:50%;left:50%}.theme-toggle .icon-moon{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}.theme-toggle .icon-sun{opacity:0;transform:translate(-50%,-50%)rotate(-180deg)scale(0)}[data-bs-theme=dark] .theme-toggle .icon-moon{opacity:0;transform:translate(-50%,-50%)rotate(180deg)scale(0)}[data-bs-theme=dark] .theme-toggle .icon-sun{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}.main-image-text{background-image:url(/assets/main-background.webp);background-position:50% 75%;background-repeat:no-repeat;background-size:cover;justify-content:center;height:85vh;display:flex}[data-bs-theme=dark] .main-image-text{background-image:url(/assets/main-background-dark.webp)}.hero-text{text-align:center;width:80%;font-family:"Source Sans 3",sans-serif;position:relative;top:12%}.hero-text h1{padding-bottom:1rem;font-size:1.75rem;font-weight:500}.hero-link{color:#000;font-weight:400;text-decoration:underline}.password-wrapper{position:relative}.password-wrapper .form-control{padding-right:2.5rem}.password-toggle{color:inherit;opacity:.6;background:0 0;border:0;align-items:center;padding:.25rem;display:flex;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.password-toggle:hover{opacity:1}#toggle-password .icon-eye-slash,#toggle-password.showing .icon-eye{display:none}#toggle-password.showing .icon-eye-slash{display:inline}[data-bs-theme=dark] .hero-link{color:#fff}.hero-text p{font-size:1.25rem;font-weight:500}.my-work-section{margin:7rem auto}.my-work-header{justify-content:center;display:flex}.my-works{height:auto;display:block;overflow:hidden}.my-projects{width:100%;height:250px;margin:.5rem 0}.my-projects a{color:#fff;text-decoration:none}.project-image{object-fit:cover;width:100%;height:100%;transition:transform .2s ease-in-out;overflow:hidden}.my-projects:hover .project-image{transform:scale(1.1)}.my-projects.personal,.my-projects.industrial,.my-projects.ux{overflow:hidden}.my-projects.personal a,.my-projects.industrial a,.my-projects.ux a{text-align:center;position:relative}.my-projects.personal h3,.my-projects.industrial h3,.my-projects.ux h3{z-index:2;width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.blurred{filter:blur(10px)}.reverse{flex-flow:column-reverse wrap;justify-content:center;align-items:center;display:flex}.brands{margin-top:7rem}.brands-text{text-align:center}.brands-text h2{margin-bottom:3rem;font-size:1.5rem;font-weight:500}.brands-text p{text-align:left;font-weight:400}.brands-marquee{margin:3rem 0 7rem;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.brands-marquee-track{align-items:center;width:max-content;animation:45s linear infinite brands-scroll;display:flex}@keyframes brands-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.brands-marquee{overflow:visible;mask-image:none}.brands-marquee-track{flex-wrap:wrap;justify-content:center;width:auto;animation:none}.brands-logo-dup{display:none}}.brands-logo{flex:none;width:100px;height:70px;margin:20px}[data-bs-theme=dark] .brands-logo.invert-on-dark{filter:brightness(0)invert()}.brands-logo.brand-dark,[data-bs-theme=dark] .brands-logo.brand-light{display:none}[data-bs-theme=dark] .brands-logo.brand-dark{display:inline-block}.contact-text{text-align:center;font-weight:400}.contact-text a{color:var(--color-accent);text-decoration:underline}.contact-form-section{flex-direction:column;justify-content:center;align-items:center;display:flex}.contact-form{width:100%;max-width:600px;margin-top:2rem}.contact-form form{grid-template-columns:1fr;gap:1.5rem;display:grid}label{font-family:Open Sans,sans-serif;font-weight:600}input{border:1px solid var(--color-border);border-radius:10px;width:100%;margin-top:.25rem;padding:.75rem 1rem;font-family:Open Sans,sans-serif;font-weight:400}[data-bs-theme=dark] input:not([type=submit]),[data-bs-theme=dark] textarea{color:inherit;background-color:#0000}input[type=submit]{width:50%}input[type=submit]:hover{color:var(--color-accent-contrast);background-color:var(--color-accent)}textarea{border:1px solid var(--color-border);border-radius:10px;width:100%;margin-top:.25rem;padding:.75rem 1rem;font-family:Open Sans,sans-serif;font-weight:400}.contact-submit{text-align:center}.about-container{margin-top:3rem;margin-bottom:6rem;display:block}.about-container a{font-family:"Source Sans 3",sans-serif;font-size:1.125rem}.about-image{justify-content:center;align-items:flex-start;display:flex}.about-image img{object-fit:contain;max-width:80%}.about-image,.about-text{padding:1rem 0}.about-text{font-weight:400}footer{border-top:1px solid var(--color-border);text-align:center;flex-direction:column-reverse;align-items:center;gap:1.25rem;width:100%;margin-top:5rem;font-size:.875rem;display:flex}footer.wrapper{padding-top:1.5rem;padding-bottom:1.5rem}.footer-link ul{flex-direction:column;justify-content:center;margin:0;padding:0;display:flex}.footer-link li{margin:0 2rem;padding:0;font-family:Open Sans,sans-serif;display:inline-block}.footer-link a{color:var(--color-accent);font-weight:400;text-decoration:none}.footer-link a:hover{color:var(--color-accent);text-decoration:underline}.footer-info,.footer-info a{color:var(--color-accent);font-weight:400}.page-title{text-align:center;margin:7rem 0 3rem}.projects-container{margin-top:5rem;overflow-x:clip}.projects .project{width:100%;padding:3rem 0}.project-text{font-weight:400}.project-description{white-space:pre-line}.project a{text-decoration:none}.project-detail{margin:3rem 0}.project-points{display:block}.point{padding:0 1rem}.personal-projects{display:block}.personal-projects .project{width:100%;padding:1rem}.carousel-image{object-fit:contain;max-width:100%;height:300px;display:block}.carousel-indicators{margin:.75rem 0 0;position:static}.carousel-indicators-viewport{padding:6px 0;overflow:hidden}.carousel-indicators-track{justify-content:flex-start;transition:transform .3s;display:flex}.carousel-indicators [data-bs-target]{box-sizing:border-box;opacity:1;cursor:pointer;background-color:#0000;border:1.5px solid #1a1b1f59;border-radius:50%;flex:none;width:10px;height:10px;margin:0 5px;transition:background-color .25s,border-color .25s,box-shadow .3s,transform .2s}.carousel-indicators [data-bs-target]:hover{background-color:#1a1b1f33;border-color:#1a1b1fa6}.carousel-indicators .active{background-color:#1a1b1f;border-color:#1a1b1f}[data-bs-theme=dark] .carousel-indicators [data-bs-target]{border-color:#fff6}[data-bs-theme=dark] .carousel-indicators [data-bs-target]:hover{background-color:#fff3;border-color:#ffffffb3}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target].active{background-color:#fff;border-color:#fff}.carousel-item-next,.carousel-item-prev,.carousel-item.active{justify-content:center;align-items:center;display:flex}.carousel-item{max-height:300px}.modal-footer{border-top:none;padding-top:0}.modal-intro-title{font-weight:600}.modal-intro-text{color:var(--bs-secondary-color);font-size:.9rem}.btn-primary{background-color:var(--color-accent)!important;color:var(--color-accent-contrast)!important;border-color:#0000!important}.btn-primary:hover,.btn-secondary{border-color:var(--color-accent)!important;color:var(--color-accent)!important;background-color:#0000!important}.btn-secondary a{text-decoration:none;color:var(--color-accent)!important}.btn-shop{color:#fff!important;background-color:green!important;border:1px solid #0000!important;padding:.5rem 1rem!important}.btn-shop:hover{color:green!important;background-color:#0000!important;border:1px solid green!important}.btn-shop:disabled,.btn-shop:disabled:hover{opacity:1;cursor:not-allowed;color:var(--color-accent)!important;border:1px solid var(--color-border)!important;background-color:#0000!important}.shop-category{margin-top:3rem}.shop-category-title{margin-bottom:1.5rem;font-weight:500}.product-grid{grid-template-columns:1fr;gap:2rem;display:grid}.product-card{flex-direction:column;display:flex}.product-placeholder{aspect-ratio:1;border:1px dashed var(--color-border);color:var(--color-accent);border-radius:4px;justify-content:center;align-items:center;font-size:.9rem;display:flex}.product-image{border-radius:4px}.product-price{margin-top:.25rem;display:block}.product-description{font-size:1rem}@media only screen and (width>=786px){footer{flex-direction:row;justify-content:center;align-items:center}.footer-link ul{flex-direction:row;justify-content:center}.product-grid{grid-template-columns:1fr 1fr}.hero-text{position:absolute;top:25%}.wrapper{width:70%}.navbar{padding-left:0;padding-right:0}.navbar>.container-fluid{width:70%;padding-left:3rem;padding-right:3rem}.carousel-item{max-height:none}.carousel-image{width:100%;height:700px;max-height:none}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}}@media only screen and (width>=992px){.my-works{justify-content:space-between;height:460px;display:flex}.my-projects{width:33%;height:400px}.project-text-container{padding:0}.project-points{display:flex}.personal-projects{justify-content:center;display:flex}.product-grid{grid-template-columns:repeat(3,1fr)}.contact-form form{grid-template-columns:1fr 1fr}.contact-message,.contact-turnstile,.contact-submit{grid-column:1/-1}}@media only screen and (width>=1200px){.hero-text{width:50%}.projects{justify-content:center;align-items:center;padding:3rem 2rem;display:flex}.projects .project{flex-direction:column;justify-content:center;width:50%;padding:0 1rem;display:flex}.reverse{flex-direction:row}.about-container{align-items:center;padding:1rem 3rem;display:flex}.about-image img{max-width:80%}}.work-grid{grid-template-columns:1fr;gap:1.5rem;padding-bottom:3rem;display:grid}.work-tile{min-width:0;transition:transform .45s ease-in,opacity .45s ease-in}.work-tile.is-leaving.to-left{opacity:0;transform:translate(-100vw)}.work-tile.is-leaving.to-right{opacity:0;transform:translate(100vw)}.work-tile.is-expanded{grid-column:1/-1}.work-tile-trigger{aspect-ratio:4/3;background:var(--color-border);cursor:pointer;border:0;border-radius:6px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.work-tile-trigger:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.work-tile-cover{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.work-tile-trigger:hover .work-tile-cover,.work-tile-trigger:focus-visible .work-tile-cover{transform:scale(1.04)}.work-tile-overlay{text-align:center;color:#fff;opacity:0;background:#0d1b2a9e;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;transition:opacity .3s;display:flex;position:absolute;inset:0}.work-tile-trigger:hover .work-tile-overlay,.work-tile-trigger:focus-visible .work-tile-overlay{opacity:1}.work-tile-title{font-family:"Source Sans 3",sans-serif;font-size:1.375rem;font-weight:500;line-height:1.3}.work-tile-cta{letter-spacing:.04em;text-underline-offset:.25em;font-family:Open Sans,sans-serif;font-size:.875rem;text-decoration:underline}@media (hover:none){.work-tile-overlay{opacity:1;background:linear-gradient(#0000 35%,#000000bf);justify-content:flex-end;gap:.4rem;padding-bottom:1.25rem}.work-tile-title{font-size:1.125rem}}.work-tile-detail{padding:1rem;position:relative}.work-tile-detail:before{content:"";border:1px solid var(--color-border);pointer-events:none;opacity:0;border-radius:10px;transition:opacity .35s;position:absolute;inset:0}.work-tile-detail[data-stage=done]:before{opacity:1}.work-tile-close{z-index:3;border:1px solid var(--color-border);background:var(--bs-body-bg);color:var(--color-accent);cursor:pointer;border-radius:999px;padding:.35rem .9rem;font-family:Open Sans,sans-serif;font-size:.875rem;position:absolute;top:.75rem;right:.75rem}.work-tile-close:hover{border-color:var(--color-accent)}.work-tile-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.work-tile-media-cover{z-index:2;aspect-ratio:4/3;pointer-events:none;border-radius:6px;width:100%;transition:opacity .35s;position:absolute;top:0;left:0;overflow:hidden}.work-tile-media-cover img{object-fit:cover;width:100%;height:100%;display:block}.work-tile-detail[data-stage=done] .work-tile-media-cover{opacity:0}.work-tile-detail .projects.wrapper{width:100%;padding:0}.work-tile-detail .projects{grid-template-columns:1fr;align-items:start;gap:1.5rem;padding:0;display:grid}.work-tile-detail .projects .project{width:auto;padding:0;display:block}.work-tile-detail .carousel-inner{aspect-ratio:4/3;background:0 0}.work-tile-detail .carousel-item{height:100%;max-height:none}.work-tile-detail .carousel-image{object-fit:contain;width:100%;height:100%;max-height:none}.work-tile-detail .project-text h3{margin-bottom:.2rem;font-size:1.125rem}.work-tile-detail .project-text em{font-size:.875rem}.work-tile-detail .project-text p,.work-tile-detail .project-text a{font-size:.9375rem;line-height:1.55}.work-tile-detail .project-text p{margin-bottom:.6rem}.work-tile-detail .project-text p:not(.project-description){font-size:1rem}.work-tile-detail .project-text.my-3{margin-top:0!important;margin-bottom:.75rem!important}.work-tile-detail .project-text .mt-3{margin-top:.75rem!important}@media only screen and (width>=992px) and (width<=1199.98px){.work-tile-detail .project-text h3{font-size:1rem}.work-tile-detail .project-text p,.work-tile-detail .project-text a{font-size:.875rem;line-height:1.5}.work-tile-detail .project-text p:not(.project-description){font-size:.9375rem}.work-tile-detail.is-row-height .projects>.project:not(.carousel){padding-top:2.25rem}}.work-tile-detail .carousel,.work-tile-detail .projects>.project:not(.carousel),.work-tile-close{transition:opacity .35s}.work-tile-detail[data-stage=move] .carousel,.work-tile-detail[data-stage=move] .projects>.project:not(.carousel),.work-tile-detail[data-stage=move] .work-tile-close{opacity:0;pointer-events:none}@media only screen and (width>=992px){.work-grid,.work-tile-detail .projects{grid-template-columns:1fr 1fr}.work-tile-media-cover{width:calc(50% - .75rem)}.work-tile-detail .projects>.project:not(.carousel){padding-top:2.5rem}}.work-tile-detail.is-row-height .projects{grid-template-rows:100%;height:100%}.work-tile-detail.is-row-height .carousel{flex-direction:column;height:100%;min-height:0;display:flex}.work-tile-detail.is-row-height .carousel-inner{aspect-ratio:auto;flex:auto;min-height:0}.work-tile-detail.is-row-height .carousel-indicators{flex:none}.work-tile-detail.is-row-height .projects>.project:not(.carousel){flex-direction:column;justify-content:flex-start;height:100%;padding-right:.5rem;display:flex;overflow-y:auto}.work-tile-detail.is-row-height .projects>.project:not(.carousel)>*{flex-shrink:0}.work-tile-detail.is-row-height .projects>.project.is-centered:not(.carousel){justify-content:center}.work-tile-detail .project-text>p:last-child{margin-bottom:0}.work-tile-detail.is-row-height .projects>.project.has-more:not(.carousel){mask-image:linear-gradient(#000 calc(100% - 3rem),#0000)}@media (prefers-reduced-motion:reduce){.work-tile,.work-tile-cover,.work-tile-overlay,.work-tile-media-cover,.work-tile-detail .carousel,.work-tile-detail .projects>.project:not(.carousel),.work-tile-close,.work-tile-detail:before{transition:none}.work-tile-trigger:hover .work-tile-cover,.work-tile-trigger:focus-visible .work-tile-cover{transform:none}}
