html,body,#root{width:100%;min-height:100%;margin:0}body{overflow-x:hidden}.app-loading{color:#28231e;background:#e8e5df;place-items:center;min-height:100svh;font-weight:600;display:grid}.hero-section{box-sizing:border-box;background-color:#f5f5f5;justify-content:center;align-items:center;width:100%;min-height:100svh;padding-block:clamp(2rem,6vh,5rem);display:flex;position:relative;overflow:hidden}.hero-content{box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,6vw,6rem);width:100%;max-width:80rem;padding-inline:clamp(1.25rem,5vw,5rem);display:grid}.hero-text{width:100%;min-width:0;max-width:42rem;transform:translateY(var(--hero-text-parallax,0px));will-change:transform;flex-direction:column;flex:1 1 0;align-items:flex-start;padding-left:0;display:flex}.hero-text h1{margin:0;font-size:clamp(2.5rem,7vw,5rem);line-height:1.05}.hero-text h2{margin:.75rem 0 0;font-size:clamp(1.25rem,2.5vw,2rem);line-height:1.2}.hero-text p{max-width:36ch;margin:1.25rem 0 0;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.6}.hero-links{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.hero-links a{box-sizing:border-box;color:#242424;background:#fff;border:1px solid #d7d7d7;border-radius:.65rem;align-items:center;gap:.6rem;min-height:2.9rem;padding:.65rem 1rem;font-size:1rem;font-weight:600;text-decoration:none;transition:border-color .16s,box-shadow .16s,transform .16s;display:inline-flex;box-shadow:0 .25rem .8rem #0000000d}.hero-links a:hover{border-color:#242424;transform:translateY(-2px);box-shadow:0 .5rem 1.2rem #0000001a}.hero-scroll-arrow{color:#242424;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-width:2.9rem;min-height:2.9rem;padding:.5rem;text-decoration:none;display:inline-flex;position:absolute;bottom:clamp(1rem,4vh,3rem);left:50%;transform:translate(-50%)}.hero-scroll-arrow:hover{box-shadow:none;border:0;transform:translate(-50%)translateY(2px)scale(1.15)}.hero-chevron{border-bottom:.2rem solid;border-right:.2rem solid;width:1rem;height:1rem;transform:rotate(45deg)translateY(-.15rem)}.hero-links a:focus-visible,.hero-scroll-arrow:focus-visible{outline-offset:3px;outline:3px solid #0a66c2}.hero-links img{flex:0 0 1.35rem;width:1.35rem;height:1.35rem}.hero-image{aspect-ratio:960/1707;justify-content:center;justify-self:center;align-items:center;width:min(100%,25rem);height:min(80svh,52rem);display:flex}.hero-image img{object-fit:contain;object-position:center;width:150%;height:150%;transform:translateY(calc(clamp(2rem, 25vh, 10rem) + var(--hero-parallax,0px)));will-change:transform}@media (width<=1024px){.hero-content{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.hero-text{grid-row:2;align-items:center;padding-left:0;transform:none}.hero-links{justify-content:center}.hero-image{aspect-ratio:1;background:#3c39390c;border-radius:50%;flex:0 0 150px;grid-row:1;width:150px;height:150px;position:relative;overflow:hidden}.hero-image img{object-fit:cover;object-position:50% -20%;width:100%;max-width:none;height:100%;position:absolute;top:auto;left:auto;transform:none}}.hero-scroll-label{white-space:nowrap;font-size:.9rem;font-weight:600;text-decoration:none}.projects-section{box-sizing:border-box;background:#e8e5df;justify-content:center;place-items:center;width:100%;min-height:100svh;padding:clamp(2rem,5vh,4rem) clamp(1.25rem,5vw,5rem);display:grid;overflow:hidden}.projects-content{opacity:0;width:min(100%,100rem);transition:opacity .5s,transform .5s;transform:translateY(1.5rem)}.projects-section.is-visible .projects-content{opacity:1;transform:translateY(0)}.projects-grid{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,3vw,2rem);margin-top:clamp(1.5rem,3vw,3rem);display:grid}.projects-carousel{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem clamp(.75rem,3vw,2rem);margin-top:1rem;display:grid}.projects-carousel .projects-grid{grid-area:1/2}.projects-arrow-previous{grid-area:1/1}.projects-arrow-next{grid-area:1/3}.projects-arrow{box-sizing:border-box;color:#28231e;cursor:pointer;background:0 0;border:0;place-items:center;width:3.5rem;height:4.5rem;padding:0;transition:transform .18s;display:grid}.projects-arrow:hover:not(:disabled),.projects-arrow:focus-visible:not(:disabled){transform:scale(1.2)}.projects-arrow:disabled{opacity:.55;cursor:not-allowed}.projects-chevron{border-top:.35rem solid;border-right:.35rem solid;width:1.8rem;height:1.8rem;display:block}.projects-chevron-left{transform:rotate(-135deg)}.projects-chevron-right{transform:rotate(45deg)}.project-card{box-sizing:border-box;background:#f5f5f5;border:1px solid #d5d1ca;flex-direction:column;min-width:0;animation:.32s both project-card-enter;display:flex;box-shadow:0 .75rem 2rem #28231e14}.project-card:nth-child(2){animation-delay:60ms}.project-card:nth-child(3){animation-delay:.12s}@keyframes project-card-enter{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.project-image{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.project-card-content{flex-direction:column;flex:1;padding:clamp(1.25rem,3vw,2rem);display:flex}.project-card h3{margin:0;font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.2}.project-card p{margin:1rem 0 0;line-height:1.6}.project-technologies{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0;padding:0;list-style:none;display:flex}.project-technologies li{background:#e8e5df;padding:.35rem .65rem;font-size:.85rem}.project-view-more{box-sizing:border-box;color:#28231e;width:100%;min-height:2.75rem;font:inherit;cursor:pointer;background:0 0;border:1px solid #28231e;justify-content:center;align-items:center;margin-top:auto;padding:.7rem 1rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s;display:flex}.project-view-more:hover,.project-view-more:focus-visible{color:#fff;background:#000}.project-view-more:disabled{color:#777169;cursor:not-allowed;background:#e8e5df;border-color:#aaa49b}.project-card time{font-size:.9rem;display:block}.projects-content h2{margin:0;font-size:clamp(2.5rem,7vw,5rem);line-height:1.05}.projects-placeholder{margin:1.25rem 0 0;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.6}.projects-pagination{grid-area:2/2;justify-content:center;align-items:center;gap:.6rem;margin-top:0;display:flex}.projects-page-indicator{cursor:pointer;background:0 0;border:0;place-items:center;width:1rem;height:1rem;padding:0;display:grid}.projects-page-indicator:before{content:"";border:1px solid #28231e;width:.6rem;height:.6rem;transition:transform .18s,background-color .18s}.projects-page-indicator.is-active{background:0 0}.projects-page-indicator.is-active:before{background:#28231e;transform:scale(1.5)}.projects-page-indicator:focus-visible{outline-offset:3px;outline:2px solid #28231e}@media (prefers-reduced-motion:reduce){.projects-content{opacity:1;transition:none;transform:none}.project-card{animation:none}}@media (width<=600px){.projects-section{height:auto;overflow:visible}.projects-grid{grid-template-columns:1fr}.projects-grid-header{margin-top:1.25rem}.projects-carousel{flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;display:flex}.projects-carousel .projects-grid{flex:0 0 100%;order:1}.projects-arrow-previous{order:2}.projects-pagination{order:3}.projects-arrow-next{order:4}.projects-arrow{width:2.5rem;height:3.5rem;padding-top:.75rem}}.about-section{box-sizing:border-box;overflow-anchor:none;background:#f3f1ee;justify-content:center;place-items:center;width:100%;min-height:100svh;padding:clamp(2rem,5vh,4rem) clamp(1.25rem,5vw,5rem);display:grid;overflow:hidden}.about-content{flex-direction:column;gap:1.25rem;width:min(100%,72rem);display:flex}.about-content h2{letter-spacing:-.07em;color:#1d1b1a;max-width:10ch;margin:0;font-size:clamp(2.6rem,6vw,5.5rem);font-weight:700;line-height:.96}.about-content p{color:#1d1b1ac7;max-width:42rem;margin:0;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.7}@media (width<=700px){.about-content h2{max-width:none}}.project-page{box-sizing:border-box;color:#28231e;background:#e8e5df;min-height:100svh;padding:clamp(1.5rem,4vw,4rem) clamp(1rem,5vw,5rem)}.project-page-content{width:min(100%,76rem);margin:0 auto;animation:.5s both project-page-enter}.project-page-hero{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);margin-top:clamp(2rem,4vw,4rem);display:grid}.project-page-hero-copy{min-width:0}@keyframes project-page-enter{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.project-page-repository{box-sizing:border-box;color:#fff;background:#28231e;border:1px solid #28231e;align-items:center;gap:.45rem;min-height:2.75rem;padding:.7rem 1rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s;display:inline-flex}.project-page-repository:hover,.project-page-repository:focus-visible{color:#28231e;background:0 0}.project-page-back{box-sizing:border-box;color:#28231e;background:0 0;border:1px solid #28231e;align-items:center;gap:.6rem;min-height:2.75rem;padding:.7rem 1rem;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s;display:inline-flex}.project-page-back:hover,.project-page-back:focus-visible{color:#fff;background:#000}.project-page-back span{font-size:1.4rem;line-height:1}.project-page-eyebrow,.project-page-label{color:#777169;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.project-page-eyebrow{margin-top:0}.project-page h1,.project-page-introduction{animation:.5s .1s both project-page-content-enter}.project-page-details{animation:.5s .2s both project-page-content-enter}@keyframes project-page-content-enter{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.project-page h1{letter-spacing:-.02em;max-width:18ch;margin:.75rem 0 0;font-size:clamp(2.75rem,5vw,4.5rem);line-height:1}.project-page-image{object-fit:cover;object-position:center;border:1px solid #d5d1ca;width:100%;max-height:24rem;margin-top:0;animation:.5s .15s both project-page-content-enter;display:block}.project-page-introduction{max-width:38rem;margin:1.25rem 0 0;font-size:clamp(1.1rem,1.75vw,1.4rem);line-height:1.5}.project-page-metadata{border-top:1px solid #aaa49b;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2rem 0 0;padding-top:1rem;display:grid}.project-page-metadata div{min-width:0}.project-page-metadata dt{color:#777169;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.project-page-metadata dd{margin:.35rem 0 0;font-weight:600}.project-page-divider{background:#aaa49b;height:1px;margin:clamp(2rem,4vw,4rem) 0 clamp(1.5rem,3vw,2.5rem)}.project-page-details{grid-template-columns:minmax(0,1.5fr) minmax(14rem,.75fr);gap:clamp(2rem,10vw,10rem);display:grid}.project-page-details aside{border-left:1px solid #aaa49b;padding-left:clamp(1rem,3vw,2rem)}.project-page-details section p:not(.project-page-label){max-width:42rem;margin:1rem 0 0;line-height:1.65}.project-page-technologies{flex-wrap:wrap;gap:.5rem;margin:1rem 0 2rem;padding:0;list-style:none;display:flex}.project-page-technologies li{color:#28231e;background:#f5f5f5;padding:.45rem .7rem}.project-page a:focus-visible{outline-offset:4px;outline:2px solid #28231e}@media (prefers-reduced-motion:reduce){.project-page-content,.project-page h1,.project-page-introduction,.project-page-details,.project-page-image{animation:none}}@media (width<=700px){.project-page-hero{grid-template-columns:1fr;gap:2rem;margin-top:2rem}.project-page-details{grid-template-columns:1fr}.project-page-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.project-page-details aside{border-top:1px solid #aaa49b;border-left:0;padding-top:1.5rem;padding-left:0}.project-page h1{max-width:12ch;font-size:clamp(2.5rem,12vw,4rem)}}
