.hero-plate{--spring-face:linear(0,0.070 5%,0.223 10%,0.398 15%,0.561 20%,0.699 25%,0.805 30%,0.884 35%,0.937 40%,0.972 45%,0.993 50%,1.005 55%,1.010 60%,1.011 65%,1.010 70%,1.009 75%,1.007 80%,1.005 85%,1.003 90%,1.002 95%,1);--plate-radius:6px;--plate-w:46%;--plate-fall:12px;--plate-scale:1;--plate-dur:560ms;--plate-bind:24px;--plate-detail:48px}.hero-plate-frame{margin-block:-5.125%;order:1}.hero-plate-title{order:2}.hero-plate-details{order:3}.hero-plate-frame{position:relative;width:100%;padding-bottom:56.25%}.hero-plate-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.26)) drop-shadow(0 10px 16px rgba(0,0,0,.11))}.hero-plate-link{display:block;width:var(--plate-w);padding:15px 0;margin:-15px 0}.hero-plate-image{display:block;width:100%;height:auto;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border-radius:var(--plate-radius);transform:translateY(calc(var(--plate-fall) * -1)) scale(var(--plate-scale));opacity:0;animation-name:hero-plate-fall,hero-plate-fade;animation-duration:var(--plate-dur),.14s;animation-timing-function:cubic-bezier(.24,1.18,.36,1),var(--ease-out);animation-fill-mode:forwards,forwards;animation-iteration-count:1,1}@supports (animation-timing-function:linear(0,1)){.hero-plate-image{animation-timing-function:var(--spring-face),var(--ease-out)}}@keyframes hero-plate-fall{to{transform:translateY(0) scale(1)}}@keyframes hero-plate-fade{to{opacity:1}}.hero-plate-cta-bound{margin-top:var(--space-sm,1rem)}@media (hover:hover) and (pointer:fine) and (min-width:769px){.hero-plate-link:focus-visible .hero-plate-image,.hero-plate-link:hover .hero-plate-image{opacity:.92;transition:opacity .16s var(--ease-out)}}@media (max-width:768px){.hero-plate-frame{padding-bottom:125%;order:2}.hero-plate-title{order:1}.hero-plate-details{order:3}.hero-plate{--plate-radius:4px;--plate-w:100%}.featured-project-container.hero-plate{gap:0}.project-title-section.hero-plate-title{margin-block-start:calc(-1 * var(--lead-cap));margin-block-end:0}.hero-plate-frame{margin-block-start:calc(var(--plate-bind) - var(--lead-base) - 12.5%);margin-block-end:-12.5%}.hero-plate-details{margin-block-start:calc(var(--plate-detail) - var(--lead-cap))}}@media (prefers-reduced-motion:reduce){.hero-plate-image{transform:none;animation-name:hero-plate-fade;animation-duration:.24s;animation-timing-function:var(--ease-out);animation-delay:0ms;animation-fill-mode:forwards;animation-iteration-count:1}}.hero-rack .hero-rack-link{position:relative;perspective:1400px;transform-style:preserve-3d}.hero-rack .hero-rack-link:before{content:"";display:block;width:100%;aspect-ratio:1}.hero-rack .hero-rack-plate{position:absolute;left:0;right:0;top:15px;bottom:15px;will-change:transform}.hero-rack .hero-rack-plate .hero-plate-image{position:absolute;inset:0}.hero-rack .hero-rack-soft{position:absolute;inset:0;width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;border-radius:var(--plate-radius);pointer-events:none;will-change:opacity}.hero-rack .hero-plate-frame{order:1}.hero-rack .hero-rack-caption{order:2}.hero-rack .hero-plate-title{order:3}.hero-rack .hero-plate-details{order:4}.hero-rack-caption{position:relative;color:var(--ink-secondary);font-size:var(--text-meta);margin:0;margin-block-start:calc(var(--plate-bind) - var(--space-lg) - var(--lead-cap));--lead-baseline-meta:round(calc((var(--leading-body) * var(--text-meta) - 17.5px) / 2 + 14px),1px);--lead-base-meta:calc(var(--leading-body) * var(--text-meta) - var(--lead-baseline-meta));margin-block-end:calc(-1 * var(--lead-base-meta))}.hero-rack-caption-layer{display:inline-block;transition:opacity .14s var(--ease-out)}.hero-rack-caption-layer-prev{position:absolute;inset:0}@media (max-width:768px){.hero-rack .hero-plate-title{order:1}.hero-rack .hero-plate-frame{order:2}.hero-rack .hero-rack-caption{order:3}.hero-rack .hero-plate-details{order:4}.hero-rack-caption{margin-block-start:calc(var(--plate-bind) - var(--lead-cap))}}@media (prefers-reduced-motion:reduce){.hero-rack-caption-layer{transition:none}}.rshelf{border:1px solid var(--hairline);border-radius:var(--radius-surface);padding:var(--space-md) 0;position:relative;overflow:hidden}.rshelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);padding-inline:var(--gutter)}.rshelf-head h2{flex:1 1 auto;min-width:0}.rshelf-head h2 span{color:var(--ink-secondary)}@media (max-width:768px){.rshelf-head h2 span{display:block}}.rshelf-all{margin-top:0;flex:none;align-self:baseline}.rshelf-body{position:relative;margin-top:var(--space-md)}.rshelf-body:after,.rshelf-body:before{content:"";position:absolute;top:0;bottom:0;width:var(--gutter);z-index:1;pointer-events:none}.rshelf-body:before{left:0;background:linear-gradient(90deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,0))}.rshelf-body:after{right:0;background:linear-gradient(270deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,0))}.rshelf-list{list-style:none;margin:0;display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:auto;scroll-padding:var(--gutter);padding:0 var(--gutter);-webkit-overflow-scrolling:touch}@media (max-width:768px){.rshelf-list{scroll-snap-type:x mandatory}}.rshelf-list::-webkit-scrollbar{display:none}@media (min-width:769px){.rshelf.is-paging{cursor:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rshelf.is-paging a[href]{cursor:pointer;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}}.rshelf-list>li{flex:0 0 auto;width:176px;padding-right:8px;box-sizing:content-box}@media (max-width:768px){.rshelf-list>li{scroll-snap-align:start}}.rshelf-item{display:block;width:176px;padding:0;border:0;background:none;color:var(--ink);font-size:var(--text-base);text-align:left;cursor:pointer}.rshelf-item:focus{outline:none}.rshelf-item:focus-visible{outline:1px solid var(--ink);outline-offset:3px;border-radius:2px}.rshelf-cover{display:block;width:100%;aspect-ratio:1;overflow:hidden;border-radius:var(--shelf-radius,6px);background:var(--surface-subtle);box-shadow:inset 0 0 0 1px var(--hairline);margin-bottom:var(--space-sm)}.rshelf-cover img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform var(--dur-move) var(--ease-out)}.rshelf-title{display:block;color:var(--ink-secondary);transition:color var(--dur-fast) var(--ease-out)}.rshelf-item.is-current .rshelf-title,.rshelf-item.is-preview .rshelf-title,.rshelf-item:focus-visible .rshelf-title{color:var(--ink)}.rshelf-dur,.rshelf-subject{color:var(--ink-secondary)}.rshelf-dur{display:block;margin-top:2px;font-size:var(--text-meta);font-variant-numeric:tabular-nums}.rshelf-item:active .rshelf-cover img{transform:scale(var(--press-scale))}@media (max-width:768px){.rshelf-head,.rshelf-list{padding-inline:1.25rem}.rshelf-list{scroll-padding:1.25rem}.rshelf-body:after,.rshelf-body:before{width:1.25rem}}@media (max-width:640px){.rshelf-h1 .rshelf-head{align-items:flex-start}.rshelf-h1 .rshelf-all{align-self:flex-start;margin-top:6.5px}.rshelf-h2 .rshelf-head{display:block}.rshelf-h2 .rshelf-all{margin-top:var(--space-xs)}.rshelf-h3 .rshelf-head{align-items:flex-end}.rshelf-h3 .rshelf-all{align-self:flex-end;margin-bottom:-6px}.rshelf-h4 .rshelf-all{padding:0;background:none;border-radius:0;color:var(--ink-secondary);text-decoration:underline;text-underline-offset:3px}.rshelf-h5{display:flex;flex-direction:column}.rshelf-h5 .rshelf-head{display:contents}.rshelf-h5 .rshelf-head h2{padding-inline:1.25rem}.rshelf-h5 .rshelf-all{order:10;align-self:flex-start;margin:var(--space-md) 1.25rem 0}}.rshelf-h6 .rshelf-all{display:none}.rshelf-endcap{display:flex;align-items:flex-start}.rshelf-endcap-link{display:flex;flex-direction:column;align-items:center;justify-content:center;width:176px;aspect-ratio:1;border:1px solid var(--hairline);border-radius:var(--shelf-radius,6px);color:var(--ink-secondary);text-align:center;line-height:var(--leading-body);transition:color .16s var(--ease-out),border-color .16s var(--ease-out),background-color .16s var(--ease-out),transform .2s var(--ease-out)}@media (hover:hover) and (pointer:fine){.rshelf-endcap-link:hover{color:var(--ink);border-color:var(--ink)}}.rshelf-endcap-link:active{transform:scale(var(--press-scale));background-color:rgba(0,0,0,.03);transition-duration:.16s,.16s,.16s,.12s}.rshelf-endcap-link:focus-visible{outline:1px solid var(--ink);outline-offset:3px}