.web-portfolio{grid-template-columns:minmax(12rem,13rem) minmax(0,1fr);align-items:start;gap:clamp(2.75rem,4vw,4.5rem);width:min(100%,78rem);margin:0 auto;padding:max(8vh,4.25rem) 5.9vw max(9vh,4.75rem);display:grid}.web-project-index{align-self:start;min-width:0;position:sticky;top:max(8vh,4.25rem)}.web-project-index ol{gap:.02rem;margin:0;padding:0;list-style:none;display:grid}.web-project-index__item{width:100%;color:inherit;font:inherit;text-align:left;text-transform:uppercase;opacity:.48;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;padding:.29rem 0;line-height:1.15;text-decoration:none;transition:opacity .14s;display:grid}.web-project-index__item>span:first-child{white-space:nowrap}.web-project-index__year{opacity:.72;font-variant-numeric:tabular-nums}.web-project-index__item:focus-visible,.web-project-index__item.is-active{opacity:1}.web-project-index__item.is-active{font-weight:500}.web-project-index__item.is-active>span:first-child{text-underline-offset:.24em;text-decoration:underline 1px}.web-project-stream{min-width:0}.web-project-panel{text-transform:none;width:min(100%,44rem);padding:0 0 max(8vh,4rem);scroll-margin-top:max(8vh,4.5rem)}.web-project-heading{margin-bottom:.9rem}.web-project-heading h2,.web-project-heading p{margin:0}.web-project-heading h2{letter-spacing:-.028em;text-transform:none;font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.22rem,1.4vw,1.55rem);font-weight:400;line-height:1}.web-project-heading p{opacity:.48;font:inherit;text-transform:uppercase;margin-top:.34rem;font-size:.9em;line-height:1.15}.web-project-details{grid-template-columns:minmax(0,1.3fr) minmax(12rem,.9fr);align-items:start;gap:clamp(1rem,2vw,1.35rem) clamp(1.5rem,3vw,2.5rem);width:100%;margin-bottom:clamp(1.5rem,3vh,2.25rem);padding-top:.9rem;display:grid}.web-project-summary{letter-spacing:-.01em;text-wrap:pretty;gap:.8rem;max-width:36rem;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(.9rem,.92vw,.98rem);font-weight:400;line-height:1.48;display:grid}.web-project-summary p{margin:0}.web-project-summary--supporting{width:100%;max-width:none;margin-top:clamp(1.35rem,2.6vh,2rem)}.web-project-highlights{letter-spacing:-.01em;text-transform:none;border-top:1px solid #00000024;gap:.82rem;margin:clamp(1.35rem,2.6vh,2rem) 0 0;padding:.95rem 0 0 1.25rem;font-family:Arial,Helvetica,sans-serif;font-size:clamp(.9rem,.92vw,.98rem);line-height:1.5;list-style:outside;display:grid}.web-project-highlights li{overflow-wrap:break-word;margin:0;padding-left:.08rem}.web-project-facts{gap:.9rem;display:grid}.web-project-meta{font:inherit;text-transform:uppercase;border:0;grid-template-columns:max-content minmax(0,1fr);gap:.45rem .85rem;margin:0;padding:0;font-size:.8em;line-height:1.28;display:grid}.web-project-meta dt,.web-project-meta dd{margin:0}.web-project-meta dt{opacity:.4}.web-project-meta dd{min-width:0}.web-project-visit{color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:none;text-underline-offset:.18em}.web-carousel{width:100%;min-width:0}.web-carousel:focus-visible{outline-offset:5px;outline:1px solid #111}.web-carousel__stage{width:100%;min-width:0}.web-carousel__viewport{aspect-ratio:16/9;touch-action:pan-y pinch-zoom;cursor:grab;background:#fff;width:100%;min-width:0;position:relative;overflow:hidden}.web-carousel__viewport:active{cursor:grabbing}.web-carousel__track{height:100%;display:flex}.web-carousel__slide{flex:0 0 100%;place-items:center;width:100%;min-width:0;height:100%;margin:0;display:grid}.web-carousel__zoom{appearance:none;cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;display:block}.web-carousel__picture{width:100%;height:100%;display:block}.web-carousel__image{object-fit:contain;width:100%;height:100%;margin:0;display:block}.web-carousel__controls{z-index:3;pointer-events:none;font:inherit;text-transform:uppercase;font-size:.78em;line-height:1.2;position:absolute;inset:0}.web-carousel__button{appearance:none;color:#111;cursor:pointer;pointer-events:auto;background:0 0;border:0;width:clamp(4rem,14%,7rem);height:5rem;padding:0;font-size:0;position:absolute;top:50%;transform:translateY(-50%)}.web-carousel__button:before{color:#111;opacity:.68;text-shadow:0 0 6px #fff,0 0 14px #ffffffe6;place-items:center;width:2.6rem;height:2.6rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:1.2rem;line-height:1;transition:opacity .14s;display:grid}.web-carousel__button--previous{justify-content:flex-start;align-items:center;padding-left:clamp(.45rem,1.2vw,.9rem);display:flex;left:0}.web-carousel__button--previous:before{content:"←"}.web-carousel__button--next{justify-content:flex-end;align-items:center;padding-right:clamp(.45rem,1.2vw,.9rem);display:flex;right:0}.web-carousel__button--next:before{content:"→"}.web-carousel__status{font:inherit;font-variant-numeric:tabular-nums;text-transform:uppercase;opacity:.52;margin-top:.5rem;font-size:.78em;line-height:1.25}@media (hover:hover) and (pointer:fine){.web-project-index__item:hover,.web-project-visit:hover{opacity:.72}.web-carousel__button:hover:before{opacity:1}}@media (width<=1180px){.web-portfolio{grid-template-columns:minmax(11.5rem,12.5rem) minmax(0,1fr);gap:clamp(1.75rem,3.25vw,2.75rem);width:100%;padding-left:4.5vw;padding-right:4.5vw}.web-project-panel{width:min(100%,42rem)}}@media (width>=721px) and (width<=1100px){.web-portfolio{grid-template-columns:minmax(9.5rem,10.5rem) minmax(0,1fr);gap:clamp(1.4rem,2.6vw,2.25rem);margin:0;padding:max(8vh,4.25rem) 4.5vw max(9vh,4.75rem)}.web-project-index__item{align-items:center;gap:.45rem;min-height:40px;padding:.38rem 0;line-height:1.18}.web-project-details{grid-template-columns:minmax(0,1.25fr) minmax(11rem,.85fr);gap:1rem clamp(1.1rem,2vw,1.6rem)}.web-carousel__button{width:clamp(4rem,16%,6rem)}}@media (width<=720px){.web-portfolio{width:100%;padding:calc(110px + env(safe-area-inset-top)) max(16px, 4.5vw) calc(94px + env(safe-area-inset-bottom));margin:0;display:block}.web-project-index{display:none}.web-project-stream,.web-project-panel{width:100%}.web-project-panel{padding-bottom:3.5rem}.web-project-heading{margin-bottom:.75rem}.web-project-heading h2{font-size:clamp(1.28rem,6vw,1.62rem)}.web-project-details{grid-template-columns:1fr;gap:1.15rem;margin-bottom:2.75rem;padding-top:.95rem}.web-project-summary{max-width:34ch;font-size:.96rem}.web-project-summary--supporting{width:100%;max-width:none;margin-top:1.35rem}.web-project-highlights{gap:.8rem;font-size:.96rem}.web-project-meta{grid-template-columns:4.4rem minmax(0,1fr);gap:.5rem .85rem;max-width:30rem;font-size:.82em}.web-carousel__image{width:100%;height:100%}.web-carousel__controls{font-size:.72em}.web-carousel__button{width:18%;min-width:3.75rem}.web-carousel__button:before{width:2.45rem;height:2.45rem}.web-carousel__status{margin-top:.45rem;font-size:.74em}}.web-lightbox{color:#111;background:#fffffffb;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden}.web-lightbox::backdrop{background:#fffffffb}.web-lightbox__figure{place-items:center;width:100%;height:100%;margin:0;padding:clamp(3.5rem,7vh,5rem) clamp(4rem,8vw,8rem);display:grid}.web-lightbox__image{object-fit:contain;width:auto;max-width:88vw;height:auto;max-height:82vh;display:block}.web-lightbox__caption{font:inherit;font-variant-numeric:tabular-nums;text-transform:uppercase;opacity:.52;margin:0;font-size:.78em;line-height:1.25;position:absolute;bottom:clamp(1rem,2.5vw,2rem);left:clamp(1rem,2.5vw,2rem)}.web-lightbox__close,.web-lightbox__button{appearance:none;z-index:2;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;position:absolute}.web-lightbox__close{text-transform:uppercase;min-height:44px;padding:0;top:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem)}.web-lightbox__button{width:clamp(4rem,8vw,6rem);height:6rem;padding:0;font-size:0;top:50%;transform:translateY(-50%)}.web-lightbox__button:before{opacity:.62;place-items:center;width:100%;height:100%;font-size:1.25rem;transition:opacity .14s;display:grid}.web-lightbox__button--previous{left:0}.web-lightbox__button--previous:before{content:"←"}.web-lightbox__button--next{right:0}.web-lightbox__button--next:before{content:"→"}@media (hover:hover) and (pointer:fine){.web-lightbox__button:hover:before,.web-lightbox__close:hover{opacity:1}}@media (width<=720px){.web-lightbox{height:100svh}.web-lightbox__figure{padding:calc(3.5rem + env(safe-area-inset-top)) 3.25rem calc(4.5rem + env(safe-area-inset-bottom))}.web-lightbox__image{max-width:calc(100vw - 6.5rem);max-height:72svh}.web-lightbox__caption{left:max(16px, env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px);font-size:.74em}.web-lightbox__close{top:calc(10px + env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));min-height:48px}.web-lightbox__button{width:3.25rem;height:5rem}}@media (prefers-reduced-motion:reduce){.web-project-index__item,.web-carousel__button:before,.web-lightbox__button:before{transition:none;animation:none}}@media print{.web-project-index,.web-carousel__controls,.web-lightbox{display:none!important}.web-portfolio{width:100%!important;padding:0!important;display:block!important}.web-project-panel{max-width:none!important}.web-carousel__viewport{background:#fff!important}.web-carousel__track{display:block!important;transform:none!important}.web-carousel__slide{margin-top:2rem;display:block!important}.web-carousel__slide:first-child{margin-top:0}.web-carousel__image{width:100%;max-height:none}}@supports (content-visibility:auto){.web-project-panel:not(:first-child){content-visibility:auto;contain-intrinsic-size:auto 58rem}}
