:root{--ids__text-RGB:65, 65, 65;--ids__link-RGB:95, 95, 95;--ids__hover-RGB:62, 168, 255;--ids__accent-RGB:253, 47, 75;--ids__code-RGB:180, 50, 140;--ids__mark-RGB:255, 225, 0;--ids__surface-RGB:245, 245, 245;--ids__background-RGB:255, 255, 255}body{color:rgba(var(--ids__text-RGB), 1);background-color:rgba(var(--ids__background-RGB), 1)}html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}*,:before,:after{box-sizing:border-box;&:focus:not(:focus-visible){outline:none}}img{width:100%;height:auto;display:block}*{box-sizing:border-box}@font-face{font-family:ProtoGrotesk;src:url(/_astro/ProtoGrotesk.ziLZurUD.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}body{-webkit-font-smoothing:antialiased;font-family:ProtoGrotesk,sans-serif;font-weight:400}:root{--ids__density:1.3}body{font-size:1em;line-height:var(--ids__density)}html{--mobile-font-size-min:14;--mobile-font-size-max:32;--desktop-font-size-min:11;--desktop-font-size-max:22.5;--mobile-viewport-min:320;--mobile-desktop-breakpoint:768;--desktop-viewport-max:1500;font-size:calc(var(--mobile-font-size-min) * 1px);@media screen and (width>=320px){font-size:calc(var(--mobile-font-size-min) * 1px + (var(--mobile-font-size-max) - var(--mobile-font-size-min)) * ( (100vw - var(--mobile-viewport-min) * 1px) / (var(--mobile-desktop-breakpoint) - var(--mobile-viewport-min)) ))}@media screen and (width>=768px){font-size:calc(var(--desktop-font-size-min) * 1px + (var(--desktop-font-size-max) - var(--desktop-font-size-min)) * ( (100vw - var(--mobile-desktop-breakpoint) * 1px) / (var(--desktop-viewport-max) - var(--mobile-desktop-breakpoint)) ))}@media screen and (width>=1500px){font-size:calc(var(--desktop-font-size-max) * 1px)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.ids__space{height:calc(var(--ids__density) * .7em);&.S{height:calc(var(--ids__density) * .7em)}&.M{height:calc(var(--ids__density) * 1.4em)}&.L{height:calc(var(--ids__density) * 2.4em)}&.XL{height:calc(var(--ids__density) * 4em)}}.ids__wrapper{width:70%;margin:0 auto;position:relative;@media (width<767px){width:100%;padding:0 calc(var(--ids__density) * .6em)}&.L{width:100%;padding:0 1em;@media (width<767px){padding:0 .5em}}&.S{width:60%;padding:0 1em;@media (width<767px){width:100%;padding:0 calc(var(--ids__density) * .6em)}}&.XS{width:50%;padding:0 1em;@media (width<767px){width:100%;padding:0 calc(var(--ids__density) * .6em)}}& .ids__text-width{width:85%;@media (width<767px){width:100%}}}.ids__sequence{margin-bottom:calc(var(--ids__density) * .4em);--gap:0em;gap:var(--gap);flex-wrap:wrap;display:flex;&.gap-L{--gap:1.5em;margin-bottom:calc(var(--gap) * 1.5)}&.gap-M{--gap:1em;margin-bottom:calc(var(--gap) * 1.5)}&.gap-S{--gap:.5em;margin-bottom:calc(var(--gap) * 1.5)}& .ids__sequence-item{--columns:4;width:calc((100% - var(--gap) * (var(--columns) - 1)) / var(--columns));@media (width<767px){--columns:2}}&.XL{& .ids__sequence-item{--columns:2;@media (width<767px){--columns:1}}}&.L{& .ids__sequence-item{--columns:3;@media (width<767px){--columns:2}}}&.S{& .ids__sequence-item{--columns:6;@media (width<767px){--columns:3}}}}.ids{& a{color:rgb(var(--ids__link-RGB));text-underline-offset:.25em;text-decoration:underline 1px;text-decoration-color:rgba(var(--ids__link-RGB), .2);transition:color .5s,text-decoration .5s;&:hover{color:rgb(var(--ids__hover-RGB));text-decoration-color:rgba(var(--ids__hover-RGB), .2);transition:color,text-decoration}}& p{margin-top:0;margin-bottom:calc(var(--ids__density) * .4em);&.loud{font-size:2em;line-height:1.2}}& h1,& h2,& h3,& h4,& h5,& h6{margin:0;font-weight:600}& h1{margin-bottom:.4em;font-size:2em;font-weight:400;line-height:1.2;&.S{font-size:1.4em;font-weight:400}&.XS{font-size:1.5em;font-weight:600}}& h2{font-size:1.5em;font-weight:400;line-height:calc(var(--ids__density) / 1.2);margin-bottom:.5em;&.XS{font-size:1.5em;font-weight:600}}& h3{font-size:1.5em;line-height:calc(var(--ids__density) / 1.1);margin-bottom:.6em}& h4{font-size:1.1em;line-height:var(--ids__density);margin-bottom:.5em}& h5{font-size:1em;line-height:var(--ids__density);margin-bottom:.5em}& h6{text-transform:uppercase;letter-spacing:.05em;font-size:.8em;line-height:var(--ids__density);margin-bottom:.5em}& strong,& b{font-weight:600}& mark{color:rgb(var(--ids__text-RGB));background-color:rgb(var(--ids__mark-RGB))}& ul,& ol{margin:0 0 calc(var(--ids__density) * .75em) 0;padding:0;& li{margin-bottom:calc(var(--ids__density) * .5em);position:relative}}& ul{& li{padding-left:calc(var(--ids__density) * .75em);list-style-type:none;&:before{content:"⋅ ";position:absolute;left:0}}}& ol{& li{list-style:inside decimal}}& blockquote{font-size:1.4em;line-height:var(--ids__density);padding-left:calc(var(--ids__density) * .75em);margin:0;margin-bottom:calc(var(--ids__density) * 1em)}& aside{margin:0;margin-bottom:calc(var(--ids__density) * .5em);background:rgb(var(--ids__surface-RGB));padding-top:calc(var(--ids__density) * .4em);padding-right:calc(var(--ids__density) * 1.5em);padding-bottom:calc(var(--ids__density) * .4em);padding-left:calc(var(--ids__density) * .5em);border-radius:.2em;@media screen and (width<=768px){padding-right:calc(var(--ids__density) * .75em)}& code{background:0 0;padding:0}}& code{letter-spacing:.02em;color:rgba(var(--ids__text-RGB), .7);background:rgba(var(--ids__text-RGB), .05);border-radius:.2em;padding:.1em .25em;font-family:ProtoGrotesk,sans-serif;font-size:.9em;font-weight:450}& figure{margin:0 0 calc(var(--ids__density)) 0;&.XXS,&.ids__figure__XXS{width:25%}&.XS,&.ids__figure__XS{width:50%}&.S,&.ids__figure__S{width:75%}& figcaption{margin-top:calc(var(--ids__density) * .25em);font-size:.8em;line-height:var(--ids__density);opacity:.7}}& details{cursor:pointer;border-radius:var(--ids__radius,.2em);padding:.5em;& summary{padding-bottom:var(--ids__micro-padding,.25em)}}& hr{border-top-color:rgba(var(--ids__text-RGB), .2);border-bottom:0}}iframe{aspect-ratio:16/9;width:100%;height:auto}ids-gallery,.ids__gallery{--columns:3;--gap:1em;gap:var(--gap);flex-flow:wrap;place-content:start;display:flex;@media screen and (width<=768px){--gap:.4em}&.review{@media screen and (width<=768px){--columns:1}}& figure{flex:0 0 calc((100% - var(--gap) * (var(--columns) - 1)) / var(--columns));overflow:hidden;&:focus-within:has(a:focus-visible){outline:2px solid rgb(var(--ids__link-RGB));outline-offset:2px}& a:hover,& a:focus-visible{opacity:.9}& img{object-fit:contain;max-width:100%;max-height:100%}&.L{--module-width:calc((100% - var(--gap) * (var(--columns) - 1)) / var(--columns));flex:0 0 calc((var(--module-width) * 2) + var(--gap))}&.XL{flex:0 0 100%}}}header{width:100%;padding:1em;display:flex;@media screen and (width<=768px){margin-bottom:2em;padding:.5em}}.site-header{justify-content:space-between}.menu-toggle{width:1.2em;height:1.2em;color:rgb(var(--ids__text-RGB));cursor:pointer;background:0 0;border:0;flex:none;margin:0;padding:0;font-size:1.4em;display:none;position:relative}.menu-toggle__icon,.menu-toggle__icon:before,.menu-toggle__icon:after{background:currentColor;height:2px;transition:transform .2s,background-color .2s;position:absolute;left:.1em;right:.1em}.menu-toggle__icon{margin-top:-1px;top:50%}.menu-toggle__icon:before,.menu-toggle__icon:after{content:"";left:0;right:0}.menu-toggle__icon:before{transform:translateY(-.3em)}.menu-toggle__icon:after{transform:translateY(.3em)}.is-menu-open .menu-toggle__icon{background-color:#0000}.is-menu-open .menu-toggle__icon:before{transform:rotate(45deg)}.is-menu-open .menu-toggle__icon:after{transform:rotate(-45deg)}@media (prefers-reduced-motion:reduce){.menu-toggle__icon,.menu-toggle__icon:before,.menu-toggle__icon:after{transition:none}}@media screen and (width<=768px){.site-header{flex-wrap:wrap;align-items:flex-start;column-gap:1em}.site-header .main-page-header{flex:1 1 0;width:auto}.site-header .menu-toggle{display:block}.site-header .main-page-nav{flex-wrap:wrap;gap:.4em 1em;width:100%}.site-header.has-menu .main-page-nav{display:none}.site-header.is-menu-open{background:rgb(var(--ids__background-RGB))}.site-header.has-menu.is-menu-open .main-page-nav{flex-direction:column;align-items:flex-start;gap:.5em;padding:.6em 0 .4em;font-size:1.4em;display:flex}}#background-canvas{z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;position:fixed;top:0;left:0;@media screen and (width<=768px){height:75vh;top:25vh;bottom:0}}#background-video::-webkit-media-controls{display:none!important}#background-video{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:-9999px;left:-9999px}.main-page-header{width:18em;@media screen and (width<=768px){width:100%}}.main-page-header a{text-decoration:none}.ids .site-title{margin:0 0 .4em;font-size:1.4em;line-height:1.2}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.projects-grid{--gap:.2em;gap:var(--gap);flex-wrap:wrap;display:flex;@media screen and (width<=768px){--gap:.3em}& .projects-grid-item{--columns:4;width:calc((100% - var(--gap) * (var(--columns) - 1)) / var(--columns));height:33em;@media screen and (width<=768px){--columns:2;height:18em}&.L{--columns:2;@media screen and (width<=768px){--columns:1}}&.XL{--columns:1}}}a.project-promo-link{border-bottom:0;width:100%;height:100%;text-decoration:none;transition:filter .5s;display:block;& h2{text-decoration:none;@media screen and (width<=768px){font-size:1.1em}}&:hover{filter:brightness(110%);transition:filter}&:not([href]){cursor:default;&:hover{filter:none}}}.project-promo{background-color:#0000001a;background-position:50%;background-size:cover;border-radius:.5em;align-items:flex-end;height:100%;padding:.5em .8em;display:flex;& h2{color:#fff;width:9.8em;font-size:1.4em}}.video-promo{background-color:#0000001a;background-position:50%;background-size:cover;border-radius:.5em;align-items:flex-end;height:100%;padding:.5em .8em;display:flex;& h2{color:#fff;width:20em;font-size:1.4em}}.project-page-wrapper{display:flex;@media screen and (width<=768px){flex-direction:column}& .project-about{width:35%;@media screen and (width<=768px){width:100%}& .sticky-project-info{padding:0 2em .5em 0;position:sticky;top:1em;@media screen and (width<=768px){padding:0}}}& .project-gallery{width:65%;@media screen and (width<=768px){width:100%}}}footer{justify-content:space-between;margin:10em 1em;display:flex;position:relative;@media screen and (width<=768px){flex-direction:column;align-items:center;gap:1.5em;margin:7em 0}}.caption{font-size:.9em}.main-page-nav{text-align:center;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:1em;width:fit-content;display:flex}.main-page-nav a{text-decoration:none}.main-page-nav>div:not(.language-switcher)>a.is-nav-active{color:rgb(var(--ids__hover-RGB))}.site-header a{color:rgb(var(--ids__text-RGB));text-decoration-color:rgba(var(--ids__text-RGB), .2)}.language-switcher{align-items:center;gap:.35em;display:inline-flex}.language-switcher a{border:.05em solid #0000;border-radius:.1em;padding:.05em .2em;line-height:1;display:inline-block}.language-switcher a.is-active{border-color:currentColor}.table-wrapper{width:100%;@media screen and (width<=768px){overflow-x:auto}}.custom-table{border-collapse:collapse;width:100%;font-size:1em}.custom-table thead th{text-align:left;background:#fff;border-bottom:1px solid #00000080;padding:.75em 1em;position:sticky;top:0}.custom-table tbody tr{border-bottom:1px solid #0000001a;transition:background-color 1.5s}.custom-table tbody tr:hover{background-color:#ededed;transition:background-color}.custom-table td{vertical-align:top;padding:.75em 1em}.card{background-color:#e4f6ff;border-radius:1em;padding:1.5em 1.5em 1em;box-shadow:0 1px 2px #0000000d}.portfolio-description{width:80%;& h1{line-height:1.5}& code{cursor:pointer;user-select:none;border:1px solid #0000;max-width:100%;line-height:1.2;transition:background-color .2s,color .2s,border-color .2s;display:inline-block}& code:hover{background:rgba(var(--ids__text-RGB), .12);color:rgba(var(--ids__text-RGB), .92);border-color:rgba(var(--ids__text-RGB), .2)}& code.is-active{background:rgba(var(--ids__text-RGB), .16);color:rgba(var(--ids__text-RGB), .98);border-color:rgba(var(--ids__text-RGB), .3)}@media screen and (width<=768px){width:100%}}.is-filtered-out{display:none}.title-list{& .title-list__item:not([hidden])~.title-list__item:not([hidden]){border-top:1px solid rgba(var(--ids__text-RGB), .2)}}.ids .title-list__title{margin:0;padding:.25em 0 .3em;font-size:2em;font-weight:400;line-height:1.2;@media screen and (width<=768px){font-size:1.5em}& a{color:rgb(var(--ids__text-RGB));text-decoration:none;display:block}& a:hover{color:rgb(var(--ids__hover-RGB))}}.portfolio-footer{grid-template-columns:1fr auto 1fr;align-items:flex-end;margin:10em 1em 1em;display:grid}body.ids:has(#background-canvas){flex-direction:column;min-height:100vh;display:flex}body.ids:has(#background-canvas) main{flex:auto}body.ids:has(#background-canvas) .portfolio-footer{margin-top:auto;margin-bottom:1em}.portfolio-footer__menu{justify-content:flex-end}.portfolio-footer__right{white-space:nowrap;flex-wrap:nowrap;justify-self:end;align-items:center;gap:1em;display:flex}.portfolio-footer__cat{justify-content:center;align-items:flex-end;margin:0;padding:0;display:flex}.portfolio-footer__cat img{width:auto;height:5em;margin:0;padding:0;display:block}.portfolio-footer__copy{text-align:left;justify-self:start;margin:1em 0}.portfolio-footer__menu{margin:1em 0 1em 1em}.portfolio-footer .language-switcher a{text-decoration:none}@media screen and (width<=768px){.portfolio-footer{grid-template-columns:1fr;align-items:center}.portfolio-footer__right{flex-wrap:wrap;justify-content:center;justify-self:center}.portfolio-footer__copy{text-align:center;justify-self:center}}ids-gallery picture{display:block}.promo{position:relative;overflow:hidden;& h2{position:relative}}.project-promo__cover{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.project-text.caption{font-size:.9em}.ids .project-text>:last-child{margin-bottom:0}video{width:100%;height:auto;display:block}
