:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--panel:#12151b;--text:#f1f3f7;--muted:#9da6b4;--line:#282e37;--accent:#bdff62;--error:#ff9b8a;--header-height:5.75rem;--header-height-compact:4rem}@media (width<=50rem){:root{--header-height:4.75rem;--header-height-compact:3.5rem}}*{box-sizing:border-box}@media (prefers-reduced-motion:reduce){*{transition:none!important}}html{scroll-behavior:smooth;scroll-padding-top:6.25rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Arial,sans-serif;font-size:1rem;line-height:1.6}a,button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--accent);color:var(--bg)}.wrap{max-width:80rem;margin:auto;padding:0 3.5rem}@media (width<=50rem){.wrap{padding:0 1.5rem}}@media (width<=26.25rem){.wrap{padding:0 1.125rem}}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.muted{color:var(--muted)}.reveal{opacity:0}.reveal_shown{opacity:1;animation:reveal .7s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s) backwards}@keyframes reveal{0%{opacity:0;transform:translateY(1.75rem)}}.site-background{z-index:-1;pointer-events:none;opacity:0;width:100%;height:100lvh;transition:opacity 1.2s;display:block;position:fixed;inset:0 0 auto}.site-background_ready{opacity:1}.site-background_blurred{filter:blur(var(--background-blur))}.site-header{z-index:20;background:var(--bg);border-bottom:.0625rem solid var(--line);position:fixed;inset:0 0 auto}.site-header_compact nav{height:var(--header-height-compact)}.site-header__spacer{height:calc(.0625rem + var(--header-height))}nav{height:var(--header-height);justify-content:space-between;align-items:center;gap:1.5rem;transition:height .25s;display:flex}.brand{letter-spacing:-.0625rem;font:700 1.25rem ui-monospace,monospace}@media (width<=26.25rem){.brand{font-size:1.0625rem}}.brand span{color:var(--accent)}.navlinks{color:#bdc4cf;gap:2rem;font-size:.875rem;display:flex}@media (width<=68.75rem){.navlinks{z-index:-1;padding:calc(1.5rem + var(--header-height)) 3.5rem 2.5rem;background:var(--bg);letter-spacing:-.03125rem;visibility:hidden;opacity:0;flex-direction:column;gap:0;font-size:1.75rem;position:fixed;inset:0;overflow-y:auto}.navlinks_open{visibility:visible;opacity:1}}@media (width<=50rem){.navlinks{padding-inline:1.5rem}}@media (width<=26.25rem){.navlinks{padding-inline:1.125rem;font-size:1.5rem}}@media (width<=68.75rem) and (prefers-reduced-motion:no-preference){.navlinks{transition:opacity .3s,visibility 0s linear .3s}.navlinks_open{transition:opacity .3s}.navlinks a{opacity:0;transition:opacity .2s,transform .2s;transform:translateY(1rem)}.navlinks_open a{opacity:1;transition:opacity .4s,transform .4s;transform:none}.navlinks_open a:first-child{transition-delay:.11s}.navlinks_open a:nth-child(2){transition-delay:.16s}.navlinks_open a:nth-child(3){transition-delay:.21s}.navlinks_open a:nth-child(4){transition-delay:.26s}.navlinks_open a:nth-child(5){transition-delay:.31s}.navlinks_open a:nth-child(6){transition-delay:.36s}.navlinks_open a:nth-child(7){transition-delay:.41s}.navlinks_open a:nth-child(8){transition-delay:.46s}.navlinks_open a:nth-child(9){transition-delay:.51s}.navlinks_open a:nth-child(10){transition-delay:.56s}.navlinks_open a:nth-child(11){transition-delay:.61s}.navlinks_open a:nth-child(12){transition-delay:.66s}}@media (width<=68.75rem){.navlinks a{border-bottom:.0625rem solid var(--line);color:var(--text);padding:1rem 0}}.menu-toggle{display:none}@media (width<=68.75rem){.menu-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;order:2;justify-content:center;align-items:center;gap:.375rem;width:3rem;height:3rem;margin-right:-.6875rem;padding:0;display:inline-flex}.navtools{order:1;margin-left:auto}}.menu-toggle__line{background:var(--text);border-radius:.0625rem;width:1.625rem;height:.125rem;transition:transform .25s,opacity .2s;display:block}@media (prefers-reduced-motion:reduce){.menu-toggle__line{transition:none}}.menu-toggle_open .menu-toggle__line:first-child{transform:translateY(.5rem)rotate(45deg)}.menu-toggle_open .menu-toggle__line:nth-child(2){opacity:0}.menu-toggle_open .menu-toggle__line:nth-child(3){transform:translateY(-.5rem)rotate(-45deg)}.navtools{align-items:center;gap:1.5rem;display:flex}.language-switch{gap:.25rem;font-size:.6875rem;display:inline-flex}.language-switch a{min-width:2rem;min-height:2.75rem;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.language-switch a:hover{color:var(--text)}.language-switch a[aria-current=page]{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);text-underline-offset:.3125rem}.navlinks a:hover{color:var(--accent)}.navlabel{color:var(--muted);font-size:.75rem}@media (width<=50rem){.navlabel{display:none}}.hero{margin-top:4.75rem;position:relative}@media (width>=93.75rem){.hero{margin-top:6.25rem}}@media (width<=50rem){.hero{margin-top:3.5rem}}@media (width<=26.25rem){.hero{margin-top:2.75rem}}@media (prefers-reduced-motion:no-preference){.hero .eyebrow{animation:.6s 50ms backwards hero-fade}.hero .eyebrow:before{transform-origin:0;animation:.7s cubic-bezier(.2,.7,.2,1) .1s backwards hero-draw}.hero .intro{animation:.6s cubic-bezier(.2,.7,.2,1) .3s backwards hero-fade-up}.hero .cta{animation:.6s cubic-bezier(.2,.7,.2,1) .4s backwards hero-fade-up}.hero .hero-index{animation:.8s .6s backwards hero-fade}.hero-line__text{animation:hero-rise .75s cubic-bezier(.2,.7,.2,1) calc(50ms + var(--line,0) * 80ms) backwards}.hero-caret{animation:1s step-end 1.1s 4 hero-blink}}.hero-line{margin-bottom:-.12em;padding-bottom:.12em;overflow:hidden}.hero-line,.hero-line__text{display:block}.hero-caret{background:var(--accent);width:.42em;height:.08em;margin-left:.1em;display:inline-block}@keyframes hero-rise{0%{transform:translateY(105%)}}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(1rem)}}@keyframes hero-fade{0%{opacity:0}}@keyframes hero-draw{0%{transform:scaleX(0)}}@keyframes hero-blink{50%{opacity:0}}.eyebrow{color:var(--accent);letter-spacing:.09375rem;align-items:center;gap:.75rem;font-size:.8125rem;display:flex}@media (width<=26.25rem){.eyebrow{letter-spacing:.0625rem;gap:.5rem;font-size:.6875rem}}.eyebrow:before{content:"";background:var(--accent);width:1.5rem;height:.0625rem;display:block}h1{letter-spacing:-.25rem;margin:1.75rem 0 0;font-size:calc(clamp(3rem,6.6vw,5.5rem));font-weight:550;line-height:1.07}@media (width<=50rem){h1{letter-spacing:-.125rem}}@media (width<=26.25rem){h1{font-size:calc(clamp(2rem,10.5vw,2.75rem))}}.outline{color:var(--muted)}.hero-bottom{justify-content:space-between;align-items:end;gap:3rem;margin-top:2.375rem;display:flex}@media (width<=50rem){.hero-bottom{flex-direction:column;align-items:start;gap:1.75rem}}.intro{color:#b3bdca;max-width:30.625rem;margin:0;font-size:1.125rem}@media (width<=50rem){.intro{font-size:1.0625rem}}.cta{cursor:pointer;background:var(--accent);color:#172008;border:.0625rem solid var(--accent);white-space:nowrap;justify-content:center;align-items:center;padding:.875rem 1.375rem;font-size:.875rem;font-weight:600;transition:background .2s;display:inline-flex}.cta:hover{background:#d4ff9a}.hero-index{color:var(--muted);writing-mode:vertical-rl;font-size:.75rem;position:absolute;top:.625rem;right:0}@media (width<=50rem){.hero-index{display:none}}.ticker{border-top:.0625rem solid var(--line);border-bottom:.0625rem solid var(--line);color:#a4afbd;flex-wrap:wrap;justify-content:space-between;gap:1.25rem;margin-top:4.5rem;padding:1.25rem 0;font-size:.8125rem;display:flex}@media (width<=50rem){.ticker{justify-content:start;gap:.875rem 1.5rem}}@media (width<=26.25rem){.ticker{font-size:.75rem}}@media (width>=93.75rem){.ticker{margin-top:5.625rem}}@media (width<=50rem){.ticker{margin-top:3.5rem}}@media (width<=26.25rem){.ticker{margin-top:2.75rem}}.ticker span:before{content:"+";color:var(--accent);margin-right:.75rem}@media (prefers-reduced-motion:no-preference){.ticker{animation:.8s .6s backwards hero-fade}.ticker span{animation:.6s cubic-bezier(.2,.7,.2,1) backwards hero-fade-up}.ticker span:first-child{animation-delay:.78s}.ticker span:nth-child(2){animation-delay:.86s}.ticker span:nth-child(3){animation-delay:.94s}.ticker span:nth-child(4){animation-delay:1.02s}.ticker span:nth-child(5){animation-delay:1.1s}.ticker span:nth-child(6){animation-delay:1.18s}.ticker span:nth-child(7){animation-delay:1.26s}.ticker span:nth-child(8){animation-delay:1.34s}}section{margin-top:4.5rem}@media (width<=50rem){section{margin-top:3rem}}.section-head{justify-content:space-between;align-items:end;gap:1.5rem;display:flex}@media (width<=50rem){.section-head{flex-direction:column;align-items:start;gap:.875rem}}.section-kicker{letter-spacing:.0625rem;color:var(--muted);font-size:.75rem}.section-kicker b{color:var(--accent);margin-right:.75rem;font-weight:400}h2{letter-spacing:-.0625rem;margin:0;font-size:2.25rem;font-weight:500;line-height:1.15}@media (width<=50rem){h2{font-size:1.875rem}}.section-note{color:var(--muted);font-size:.8125rem}.projects{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;display:grid}@media (width<=50rem){.projects{grid-template-columns:1fr}}.project{border:.0625rem solid var(--line);background:var(--panel);text-align:left;color:var(--text);cursor:pointer;flex-direction:column;width:100%;padding:0;transition:transform .2s,border-color .2s;display:flex}.project:hover{border-color:#65714c;transform:translateY(-.25rem)}.project:focus-visible,a:focus-visible,button:focus-visible{outline:.125rem solid var(--accent);outline-offset:.3125rem}.project-image{background:var(--bg);height:16.25rem;display:block;overflow:hidden}@media (width<=50rem){.project-image{height:15rem}}.project-image__img{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;width:100%;height:100%;display:block}.project-image_placeholder{color:var(--line);justify-content:center;align-items:center;display:flex}@media (width<=50rem) and (orientation:portrait){.project-image_portrait,.project-image_portrait .project-image__img{height:auto}}.project-image__icon{width:4rem;height:4rem}.project-image_hero{border:.0625rem solid var(--line);height:auto;margin-top:2.5rem}@media (width<=50rem){.project-image_hero{height:auto}}.project-image_hero .project-image__img{height:auto}.project-page{margin:3.5rem 0 4.5rem}@media (width<=50rem){.project-page{margin:2.5rem 0 3rem}}.project-page__back{color:var(--muted);font-size:.8125rem;transition:color .2s}.project-page__back:hover{color:var(--accent)}.project-page__head{max-width:53.75rem;margin-top:2rem}.project-page__intro{color:var(--muted);margin:1.25rem 0 0;font-size:1.25rem}@media (width<=50rem){.project-page__intro{font-size:1.0625rem}}.project-page__body{max-width:47.5rem;margin-top:3rem}.project-page__heading{letter-spacing:-.03125rem;margin:2.25rem 0 0;font-size:1.25rem;font-weight:500}.project-page__heading:first-child{margin-top:0}.project-page__list,.project-page__text{color:var(--muted);margin:.75rem 0 0}.project-page__list{padding-left:1.25rem}.project-page__list li+li{margin-top:.375rem}.project-page__note{border-top:.0625rem solid var(--line);color:var(--muted);margin:2.5rem 0 0;padding-top:1.125rem;font-size:.8125rem}.blog{margin:4.5rem 0}@media (width<=50rem){.blog{margin:3rem 0}}.blog__intro{max-width:35rem;color:var(--muted);margin:1rem 0 0}.blog__list{border-top:.0625rem solid var(--line);max-width:53.75rem;margin:2.5rem 0 0;padding:0;list-style:none}.blog__item,.next-project{border-bottom:.0625rem solid var(--line)}.blog__link{color:var(--text);gap:.5rem;padding:1.75rem 0;display:grid}.blog__link:hover .blog__title{color:var(--accent)}.blog__date{color:var(--muted);font-size:.75rem}.blog__title{letter-spacing:-.03125rem;font-size:1.625rem;font-weight:500;line-height:1.2;transition:color .2s}@media (width<=50rem){.blog__title{font-size:1.375rem}}.blog__empty,.blog__excerpt{color:var(--muted)}.blog__empty{margin:2rem 0 0}.article-page{margin:3.5rem 0 4.5rem}@media (width<=50rem){.article-page{margin:2.5rem 0 3rem}}.article-page__back{color:var(--muted);font-size:.8125rem;transition:color .2s}.article-page__back:hover{color:var(--accent)}.article-page__head{max-width:53.75rem;margin-top:2rem}.article-page__date{color:var(--muted);margin-bottom:.75rem;font-size:.75rem;display:block}.article-page__intro{color:var(--muted);margin:1.25rem 0 0;font-size:1.25rem}@media (width<=50rem){.article-page__intro{font-size:1.0625rem}}.article-page__cover{max-width:47.5rem}.article-page__content{margin-top:2.5rem;font-size:1.0625rem}.error-page{flex-direction:column;justify-content:center;align-items:flex-start;min-height:80vh;padding-block:4.5rem;display:flex}.error-page__code{color:var(--accent);margin:0;font-size:6rem;font-weight:500;line-height:1}@media (width<=50rem){.error-page__code{font-size:4rem}}.error-page__title{letter-spacing:-.0625rem;margin:1.5rem 0 0;font-size:2rem;font-weight:500}@media (width<=50rem){.error-page__title{font-size:1.5rem}}.error-page__text{max-width:29.375rem;color:var(--muted);margin:.75rem 0 0}.error-page__home{margin-top:2rem}.next-project{border-top:.0625rem solid var(--line);color:var(--text);gap:.625rem;margin-top:3.5rem;padding:1.75rem 0;display:grid}@media (width<=50rem){.next-project{margin-top:2.5rem;padding:1.375rem 0}}.next-project__label{color:var(--muted);font-size:.8125rem}.next-project__title{letter-spacing:-.0625rem;font-size:2rem;font-weight:500;line-height:1.15;transition:color .2s}@media (width<=50rem){.next-project__title{font-size:1.5rem}.all-projects__link{text-align:center;width:100%}}.next-project__category{color:var(--muted);font-size:.75rem}.next-project:hover .next-project__title{color:var(--accent)}.project-info{padding:1.5rem;display:block}.project-meta{color:var(--muted);justify-content:space-between;font-size:.75rem;display:flex}.project-title{letter-spacing:-.03125rem;margin:.75rem 0 0;font-size:1.5rem;font-weight:500;display:block}.project-description{color:#adb7c5;margin:.5rem 0 0;font-size:.9375rem;display:block}.tags{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.tag{color:#aab6c4;border:.0625rem solid #333c46;padding:.25rem .5625rem;font-size:.75rem}.project-footer{border-top:.0625rem solid var(--line);color:var(--accent);margin-top:1.5rem;padding-top:1rem;font-size:.8125rem;display:block}.all-projects{justify-content:center;margin-top:2rem;display:flex}.all-projects__link{border:.0625rem solid var(--line);letter-spacing:.0625rem;color:var(--text);padding:.875rem 1.75rem;font-size:.8125rem;transition:border-color .2s,color .2s}.all-projects__link:hover{border-color:var(--accent);color:var(--accent)}.page-title{letter-spacing:-.0625rem;margin:0;font-size:2.25rem;font-weight:500;line-height:1.15}@media (width<=50rem){.page-title{font-size:1.875rem}}.cms-page{margin:4.5rem 0}@media (width<=50rem){.cms-page{margin:3rem 0}.project-filter__label{width:100%}}.cms-page__content{margin-top:1.5rem}.project-list__intro{margin-top:1.25rem}.project-list__empty{color:var(--muted);margin:2rem 0 0}.project-list__sentinel{height:.0625rem}.project-list__status{text-align:center;min-height:1.5rem;color:var(--muted);margin:1.5rem 0 0;font-size:.8125rem}.project-list__action{border:.0625rem solid var(--line);color:var(--text);cursor:pointer;background:0 0;margin-left:.75rem;padding:.375rem .75rem;font-size:.75rem}.project-list__action:hover{border-color:var(--accent);color:var(--accent)}.rich-text{max-width:45rem;color:var(--muted)}.rich-text>:first-child{margin-top:0}.rich-text p{margin:.75rem 0 0}.rich-text h2,.rich-text h3,.rich-text h4{letter-spacing:-.03125rem;color:var(--text);margin:1.75rem 0 0;font-weight:500}.rich-text h2{font-size:1.5rem}.rich-text h3{font-size:1.25rem}.rich-text h4{font-size:1.0625rem}.rich-text ol,.rich-text ul{margin:.75rem 0 0;padding-left:1.375rem}.rich-text li+li{margin-top:.375rem}.rich-text blockquote{border-left:.125rem solid var(--accent);margin:1rem 0 0;padding-left:1rem}.rich-text hr{border:0;border-top:.0625rem solid var(--line);margin:1.5rem 0}.rich-text img{max-width:100%;height:auto;margin-top:1rem;display:block}.rich-text code{color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9em}.rich-text a{color:var(--accent);text-underline-offset:.1875rem;text-decoration:underline}.project-filter{gap:.75rem;margin-top:2rem;display:grid}.project-filter__row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.project-filter__label{letter-spacing:.0625rem;text-transform:uppercase;min-width:7.5rem;color:var(--muted);font-size:.75rem}.project-filter__option{border:.0625rem solid var(--line);color:var(--muted);cursor:pointer;background:0 0;padding:.5rem .75rem;font-size:.75rem;transition:border-color .2s,color .2s}.project-filter__option:hover{color:var(--text)}.project-filter__option[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.about{border-top:.0625rem solid var(--line);grid-template-columns:1fr 1.2fr;gap:6.25rem;padding-top:4.5rem;display:grid}@media (width<=50rem){.about{grid-template-columns:1fr;gap:2rem;padding-top:3rem}}.about-media{flex-wrap:wrap;align-items:flex-end;gap:1.5rem;margin-top:2rem;display:flex}.about-photo{width:12.5rem;display:block}@media (width<=26.25rem){.about-photo{width:9.375rem}}.about-photo__img{border:.0625rem solid var(--line);width:100%;height:auto;display:block}.about-person{gap:.375rem;margin:0;display:grid}.about-person__name{letter-spacing:-.03125rem;font-size:1.25rem;font-weight:500}.about-person__position{letter-spacing:.0625rem;color:var(--muted);font-size:.75rem}.resume-link{border:.0625rem solid var(--line);color:var(--text);gap:.5rem;padding:.75rem 1.125rem;font-size:.8125rem;transition:border-color .2s,color .2s;display:inline-flex}.resume-link:hover{border-color:var(--accent);color:var(--accent)}.experience{margin-top:2.5rem}.experience__title{letter-spacing:.0625rem;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem;font-weight:400}.experience__list{border-top:.0625rem solid var(--line);margin:1rem 0 0;padding:0;list-style:none}.experience__item{border-bottom:.0625rem solid var(--line);grid-template-columns:8.75rem 1fr;gap:1.25rem;padding:1rem 0;display:grid}@media (width<=50rem){.experience__item{grid-template-columns:1fr;gap:.375rem}}.experience__period{color:var(--muted);padding-top:.1875rem;font-size:.8125rem}.experience__role{margin:0;font-size:1.0625rem}.experience__company{color:var(--muted)}.experience__description{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.about-copy{color:#bec6d1;margin:0;font-size:1.25rem}.capabilities{gap:0;margin-top:2rem;display:grid}.capability{border-top:.0625rem solid var(--line);grid-template-columns:2.5rem 1fr;gap:.75rem;padding:1.375rem 0;display:grid}.capability:last-child{border-bottom:.0625rem solid var(--line)}.capability .num{color:var(--accent);padding-top:.3125rem;font-size:.75rem}.capability h3{margin:0;font-size:1.125rem;font-weight:500}.capability p{color:var(--muted);margin:.25rem 0 0;font-size:.875rem}.stack{flex-wrap:wrap;gap:.625rem;margin-top:1.875rem;display:flex}.stack span{border:.0625rem solid var(--line);padding:.5rem .875rem;font-size:.875rem}.services{border-top:.0625rem solid var(--line);margin-top:4.5rem;padding-top:4.5rem}@media (width<=50rem){.services{margin-top:3rem;padding-top:3rem}}.services__description{max-width:35rem;color:var(--muted);margin:.75rem 0 0}.services__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin:2.25rem 0 0;padding:0;list-style:none;display:grid}@media (width<=68.75rem){.services__list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=43.75rem){.services__list{grid-template-columns:minmax(0,1fr)}}.services__item{border:.0625rem solid var(--line);background:var(--panel);flex-direction:column;padding:1.5rem;display:flex}.services__title{letter-spacing:-.03125rem;margin:0;font-size:1.25rem;font-weight:500}.services__text{color:var(--muted);flex:1;margin:.625rem 0 0;font-size:.9375rem}.services__terms{border-top:.0625rem solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin:1.5rem 0 0;padding-top:1rem;font-size:.8125rem;display:flex}.services__price{color:var(--accent)}.services__term{color:var(--muted)}.testimonials{border-top:.0625rem solid var(--line);margin-top:4.5rem;padding-top:4.5rem}@media (width<=50rem){.testimonials{margin-top:3rem;padding-top:3rem}}.testimonials__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin:2.25rem 0 0;padding:0;list-style:none;display:grid}@media (width<=50rem){.testimonials__list{grid-template-columns:minmax(0,1fr)}}.testimonials__figure{border:.0625rem solid var(--line);flex-direction:column;height:100%;margin:0;padding:1.5rem;display:flex}.testimonials__quote{flex:1;margin:0;font-size:1.0625rem}.testimonials__author{gap:.25rem;margin-top:1.25rem;font-weight:500;display:grid}.testimonials__role{color:var(--muted);font-size:.75rem;font-weight:400}.testimonials__source{color:var(--muted);gap:.5rem;margin-top:1.75rem;font-size:.8125rem;transition:color .2s;display:inline-flex}.testimonials__source:hover{color:var(--accent)}.closing{border-top:.0625rem solid var(--line);justify-content:space-between;align-items:center;gap:2rem;margin-top:4.5rem;padding:3rem 0;display:flex}@media (width<=50rem){.closing{flex-direction:column;align-items:start;margin-top:3rem}}.closing p{color:var(--muted);max-width:29.375rem;margin:.75rem 0 0}.closing h2{font-size:1.75rem}.contacts{border-top:.0625rem solid var(--line);grid-template-columns:1fr 1.2fr;gap:6.25rem;margin-top:0;padding:3rem 0 4.5rem;display:grid}@media (width<=50rem){.contacts{grid-template-columns:1fr;gap:2rem;padding-bottom:3rem}}.contacts__description{max-width:29.375rem;color:var(--muted);margin:.75rem 0 0}.contact-form_dialog,.contacts__cta{margin-top:1.75rem}.contact-form__form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 1rem;display:grid}@media (width<=37.5rem){.contact-form__form{grid-template-columns:minmax(0,1fr)}}.contact-form__field{align-content:start;gap:.5rem;min-width:0;display:grid}.contact-form__field_wide{grid-column:1/-1}.contact-form__label{letter-spacing:.0625rem;text-transform:uppercase;color:var(--muted);font-size:.75rem}.contact-form__required{color:var(--accent);margin-left:.25rem}.contact-form__input{border:.0625rem solid var(--line);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:0;padding:.75rem .875rem;font-size:1rem;transition:border-color .2s}.contact-form__input::placeholder{color:var(--muted)}.contact-form__input:hover{border-color:var(--muted)}.contact-form__input:focus-visible{border-color:var(--accent);outline:none}.contact-form__input[aria-invalid=true]{border-color:var(--error)}.contact-form__input_area{resize:vertical;min-height:8.75rem}.contact-form__check{color:var(--muted);cursor:pointer;align-items:flex-start;gap:.75rem;font-size:.875rem;display:flex}.contact-form__checkbox{width:1.125rem;height:1.125rem;accent-color:var(--accent);cursor:pointer;flex:none;margin:.1875rem 0 0}.contact-form__checkbox[aria-invalid=true]{outline:.0625rem solid var(--error);outline-offset:.125rem}.contact-form__link{color:var(--text);text-underline-offset:.1875rem;text-decoration:underline}.contact-form__link:hover{color:var(--accent)}.contact-form__new-tab,.contact-form__trap{clip-path:inset(50%);white-space:nowrap;width:.0625rem;height:.0625rem;position:absolute;overflow:hidden}.contact-form__drop{border:.0625rem dashed var(--line);text-align:center;min-height:5.5rem;color:var(--muted);justify-content:center;align-items:center;padding:1rem;font-size:.875rem;transition:border-color .2s,color .2s;display:flex;position:relative}.contact-form__drop:focus-within,.contact-form__drop:hover,.contact-form__drop_active{border-color:var(--accent);color:var(--text)}.contact-form__drop:has([aria-invalid=true]){border-color:var(--error)}.contact-form__drop b{color:var(--text);font-weight:600}.contact-form__file-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.contact-form__files{gap:.375rem;margin:0;padding:0;list-style:none;display:grid}.modal-body .contact-form__files{margin:0;padding:0}.contact-form__file{border:.0625rem solid var(--line);align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.contact-form__file,.modal-body .contact-form__file{color:var(--text);font-size:.875rem}.contact-form__file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.contact-form__file-size{color:var(--muted);font-size:.75rem}.contact-form__file-remove{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.125rem .375rem;font-size:1.125rem;line-height:1}.contact-form__file-remove:hover{color:var(--text)}.contact-form__help{color:var(--muted);font-size:.8125rem}.contact-form__error{color:var(--error);font-size:.8125rem}.contact-form__actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.75rem 1.25rem;display:flex}.contact-form__submit:disabled{opacity:.6;cursor:progress}.contact-form__status{color:var(--error);font-size:.875rem}.contact-form__status:empty{display:none}.contact-form__done{border:.0625rem solid var(--accent);justify-items:start;gap:.75rem;padding:1.75rem;display:grid}.contact-form__done-label{letter-spacing:.0625rem;text-transform:uppercase;color:var(--accent);font-size:.75rem}.contact-form__done-text{color:var(--text);font-size:1.125rem}.contact-form__again{border:.0625rem solid var(--line);color:var(--muted);cursor:pointer;background:0 0;padding:.5rem .75rem;font-size:.75rem;transition:border-color .2s,color .2s}.contact-form__again:hover{border-color:var(--text);color:var(--text)}.contact-links{border-top:.0625rem solid var(--line);margin:0;padding:0;list-style:none}.modal-body .contact-links{margin-top:1.75rem;padding:0}.contact-links__link{border-bottom:.0625rem solid var(--line);color:var(--text);justify-content:space-between;align-items:baseline;gap:1.5rem;padding:1.125rem 0;transition:color .2s;display:flex}.contact-links__link:hover{color:var(--accent)}.contact-links__label{letter-spacing:.0625rem;text-transform:uppercase;color:var(--muted);font-size:.75rem}.contact-links__value{text-align:right;overflow-wrap:anywhere;font-size:1.25rem}@media (width<=26.25rem){.contact-links__value{font-size:1rem}}.footer{border-top:.0625rem solid var(--line);color:var(--muted);justify-content:space-between;gap:1.5rem;padding:1.5rem 0;font-size:.75rem}.footer,.footer__links{flex-wrap:wrap;display:flex}.footer__links,.modal-top{gap:1.25rem}.footer__legal{flex-basis:100%;margin:0}.footer a:hover{color:var(--accent)}dialog{background:var(--panel);color:var(--text);border:.0625rem solid #46513f;width:min(40rem,100% - 2rem);max-height:85vh;padding:0;overflow:auto}dialog::backdrop{-webkit-backdrop-filter:blur(.4375rem);backdrop-filter:blur(.4375rem);background:#000b}.modal-body{padding:2.25rem}@media (width<=26.25rem){.modal-body{padding:1.5rem}}.modal-top{justify-content:space-between;align-items:center;display:flex}.modal-top span{color:var(--accent);font-size:.75rem}.close{color:var(--muted);border:.0625rem solid var(--line);cursor:pointer;background:0 0;padding:.3125rem .6875rem}.modal-body h2{margin-top:1.5rem}.modal-body li,.modal-body p{color:#b7c1cf;font-size:1rem}.modal-body ul{padding-left:1.25rem}.modal-body p,.modal-body ul{margin:1rem 0 0}.section-kicker+h2{margin-top:.75rem}.project-facts{flex-wrap:wrap;gap:.75rem 2.25rem;margin:1rem 0 0;display:flex}.project-facts__term{letter-spacing:.0625rem;text-transform:uppercase;color:var(--muted);font-size:.6875rem}.project-facts__value{color:var(--text);margin:.25rem 0 0;font-size:.9375rem}.project-gallery{gap:1.25rem;margin-top:1.75rem;display:grid}.project-gallery__item{margin:0}.project-gallery__img{border:.0625rem solid var(--line);background:var(--bg);width:100%;height:auto;display:block}.project-gallery__caption{color:var(--muted);margin-top:.5rem;font-size:.75rem}.project-links{flex-wrap:wrap;gap:.625rem;margin-top:1.75rem;display:flex}.project-links__link{border:.0625rem solid var(--line);color:var(--text);padding:.5rem .875rem;font-size:.8125rem;transition:border-color .2s,color .2s}.project-links__link:hover{border-color:var(--accent);color:var(--accent)}body.dialog-open,body.menu-open{overflow:hidden}.preview-bar{z-index:30;background:var(--accent);color:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.375rem 1.5rem;padding:.75rem 1.5rem;font-size:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width<=37.5rem){.preview-bar{padding:.625rem 1rem}}.preview-bar__spacer{height:3rem}@media (width<=37.5rem){.preview-bar__spacer{height:4rem}}.preview-bar__title{overflow-wrap:anywhere}.preview-bar__exit{color:inherit;text-underline-offset:.1875rem;font-weight:700;text-decoration:underline}.preview-bar__exit:hover{text-decoration-thickness:.125rem}.cookie-banner{z-index:40;border:.0625rem solid var(--line);background:var(--panel);max-height:calc(100dvh - 2rem);margin-inline:auto;padding:1.5rem;position:fixed;inset:auto 1.5rem 1.5rem;overflow-y:auto;box-shadow:0 .5rem 2.5rem #0008}@media (width>=50.0625rem){.cookie-banner{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1.5rem;display:grid}}@media (width<=37.5rem){.cookie-banner{padding:1.125rem;inset:auto .75rem .75rem}.cookie-banner__button{flex:1}}.cookie-banner__title{letter-spacing:normal;margin:0;font-size:1.125rem}.cookie-banner__text{color:var(--muted);margin:.625rem 0 0;font-size:.8125rem;line-height:1.6}.cookie-banner__link{text-underline-offset:.1875rem;color:var(--text);text-decoration:underline}.cookie-banner__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}@media (width>=50.0625rem){.cookie-banner__actions{flex-wrap:nowrap;margin-top:0}}.cookie-banner__button{border:.0625rem solid var(--muted);min-height:2.75rem;color:var(--text);cursor:pointer;background:0 0;padding:.625rem 1.5rem;font-size:.875rem}.cookie-banner__button:hover{border-color:var(--accent)}.cookie-banner__button_accept{background:var(--accent);border-color:var(--accent);color:var(--bg)}.footer__cookies{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.footer__cookies:hover{color:var(--accent)}
