html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--image-skeleton-base:#e4e4e4;--image-skeleton-highlight:#f5f5f5;--image-fade-duration:.25s;--color-background:#ededed;--color-surface:#fafafa;--color-foreground:#100f0f;--color-text-primary:var(--color-foreground);--color-secondary:#666;--color-text-secondary:var(--color-secondary);--color-tertiary:#999;--color-text-tertiary:var(--color-tertiary);--color-grid-line:#100f0f0e;--glass-background:linear-gradient(135deg, #ffffff9e 0%, #ffffff3d 48%, #ffffff6b 100%);--glass-border:1px solid #ffffffb8;--glass-shadow:inset 0 1px 0 #ffffffe0, inset 0 -1px 0 #ffffff38, 0 1px 2px #100f0f14, 0 8px 24px #100f0f14;--glass-filter:blur(24px) saturate(180%) contrast(105%);--font-family-sans:"DM Sans Variable", "DM Sans", Arial, sans-serif;--font-size-caption:clamp(.6875rem, .66rem + .12vw, .75rem);--font-size-label:clamp(.8125rem, .77rem + .18vw, 1rem);--font-size-body:clamp(1rem, .95rem + .22vw, 1.125rem);--font-size-heading:clamp(2rem, 1.55rem + 2vw, 3.5rem);--font-size-display:clamp(2.75rem, 1.65rem + 4.8vw, 6.25rem);--line-height-caption:1.35;--line-height-label:1.5;--line-height-body:1.55;--line-height-heading:1.05;--line-height-display:1.2;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:550;--font-weight-black:900;--letter-spacing-label:.03rem;--letter-spacing-heading:-.035em;--letter-spacing-display:-.02em;--type-media-caption-size:1rem;--type-media-caption-weight:var(--font-weight-semibold);--type-media-caption-line-height:1.5;--type-media-date-size:1rem;--type-media-date-weight:var(--font-weight-medium);--type-media-date-line-height:1.5;--type-page-heading-size:2rem;--type-logo-size:3rem;--type-logo-weight:var(--font-weight-black);--type-logo-line-height:1.3;--type-logo-letter-spacing:-2.4px;--type-nav-size:var(--font-size-label);--type-nav-weight:var(--font-weight-semibold);--type-nav-line-height:1.5rem;--type-nav-letter-spacing:var(--letter-spacing-label);--type-switcher-size:1rem;--type-switcher-weight:var(--font-weight-semibold);--type-switcher-line-height:1.5rem;--type-project-title-size:clamp(4rem, 5.208vw, 6.25rem);--type-project-title-weight:300;--type-project-title-line-height:var(--line-height-display);--type-project-title-letter-spacing:var(--letter-spacing-display);--type-tooltip-title-size:1rem;--type-tooltip-title-weight:var(--font-weight-semibold);--type-tooltip-title-line-height:1.25rem;--type-tooltip-meta-size:.75rem;--type-tooltip-meta-line-height:1rem;--type-card-meta-size:.75rem;--type-card-meta-line-height:1rem;--type-contact-label-size:var(--font-size-label);--type-contact-label-weight:var(--font-weight-medium);--type-contact-label-line-height:var(--line-height-label);--type-contact-label-letter-spacing:var(--letter-spacing-label);--type-contact-heading-size:var(--font-size-display);--type-contact-heading-weight:var(--font-weight-black);--type-contact-heading-line-height:var(--line-height-display);--type-contact-heading-letter-spacing:var(--line-height-display);--type-contact-link-size:clamp(1.125rem, 1.2vw, 1.5rem);--type-contact-link-weight:var(--font-weight-semibold);--type-contact-link-line-height:1.25;--type-case-title-size:var(--type-project-title-size);--type-case-title-weight:var(--type-project-title-weight);--type-case-body-size:clamp(1rem, 1.25vw, 1.5rem);--type-case-body-weight:var(--font-weight-medium);--type-case-body-line-height:1.5;--type-case-label-size:var(--font-size-label);--type-case-label-weight:var(--font-weight-semibold);--type-case-note-size:clamp(1.5rem, 1.875vw, 2.25rem);--type-case-next-size:clamp(3rem, 4.1667vw, 5rem);--case-intro-offset:clamp(10rem, 12.5vw, 15rem);--case-section-gap:clamp(2rem, 3.333vw, 4rem);--case-image-gap:var(--space-5);--case-footer-background:var(--color-foreground);--case-footer-foreground:var(--color-surface);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--space-9:3.5rem;--space-10:4rem;--space-11:5rem;--space-12:6rem;--space-14:8rem;--layout-gutter:3rem;--header-block-offset:1.5rem;--gallery-columns:4;--gallery-max-width:107.5rem;--gallery-inline-margin:clamp(8rem, 9.5vw, 12rem);--gallery-column-gap:2rem;--gallery-top-space:13.75rem;--gallery-row-gap:8rem;--gallery-bottom-space:var(--gallery-row-gap);--contact-label-gap:var(--space-4);--contact-links-offset:var(--space-6);--contact-link-gap:.5rem;--contact-link-icon-size:1.25rem;--radius-pill:100rem;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--duration-fast:.12s;--duration-ui:.22s;--duration-panel:.32s;--z-content:1;--z-sticky:20;--z-modal:40;--z-tooltip:60;--z-transition:100;--page-gutter:var(--layout-gutter);--focus-outline-width:2px}@media (width<=1199px){:root{--layout-gutter:3rem;--gallery-columns:3;--gallery-max-width:62.5rem;--gallery-inline-margin:3rem;--gallery-column-gap:2rem;--gallery-top-space:11.5rem;--gallery-row-gap:5.5rem;--type-logo-size:2.375rem}}@media (width<=1024px){:root{--font-size-caption:.75rem;--font-size-label:.875rem;--font-size-body:1rem;--font-size-heading:clamp(2rem, 1.5rem + 2vw, 3rem);--font-size-display:clamp(2.75rem, 2rem + 4vw, 4.75rem);--line-height-caption:1.35;--line-height-body:1.5;--line-height-heading:1.05;--type-case-body-size:var(--font-size-body);--type-case-note-size:1.5rem;--type-case-next-size:3rem;--case-intro-offset:9rem;--case-image-gap:var(--space-4);--type-media-caption-size:1rem;--type-media-date-size:.875rem;--type-logo-size:2.375rem;--type-nav-size:var(--font-size-display);--type-nav-weight:var(--font-weight-medium);--type-nav-line-height:var(--line-height-display);--type-nav-letter-spacing:var(--letter-spacing-heading);--type-project-title-size:clamp(2.625rem, 8vw, 4.25rem);--type-contact-heading-size:var(--font-size-display);--type-contact-link-size:1.25rem;--layout-gutter:1.5rem;--header-block-offset:1.25rem;--gallery-row-gap:2rem;--contact-label-gap:var(--space-4);--contact-links-offset:var(--space-6)}}@media (width<=640px){:root{--font-size-caption:.6875rem;--font-size-label:.8125rem;--font-size-body:1rem;--font-size-heading:clamp(1.75rem, 1.4rem + 1.5vw, 2rem);--font-size-display:clamp(2.5rem, 2rem + 4vw, 3.5rem);--line-height-caption:1.4;--line-height-body:1.5;--line-height-heading:1.08;--type-case-note-size:1.25rem;--type-case-next-size:2.5rem;--case-intro-offset:8rem;--type-media-caption-size:.875rem;--type-media-date-size:.8125rem;--type-logo-size:2rem;--type-logo-letter-spacing:-1.6px;--type-project-title-size:clamp(2.25rem, 11vw, 3.25rem);--type-card-meta-size:.6875rem;--type-card-meta-line-height:.875rem;--type-contact-heading-size:var(--font-size-display);--type-contact-heading-line-height:var(--line-height-display-display);--type-contact-link-size:1.5rem;--layout-gutter:1rem;--header-block-offset:1rem;--gallery-columns:2;--gallery-max-width:100%;--gallery-inline-margin:clamp(1rem, 2rem, 12vw);--gallery-column-gap:1rem;--gallery-top-space:9rem;--gallery-row-gap:2rem;--contact-label-gap:var(--space-4);--contact-links-offset:var(--space-4);--contact-link-gap:0;--contact-link-icon-size:1.125rem}}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-family-sans);background:var(--color-background);scroll-behavior:auto;scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}body{background:var(--color-background);min-width:20rem;min-height:100dvh;color:var(--color-foreground);scrollbar-width:none;margin:0;overflow-x:hidden}button,a{color:inherit}a{text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}:focus-visible{outline:var(--focus-outline-width) solid currentColor;outline-offset:.2rem}#root,.app-shell{min-height:100dvh}.page{min-height:100dvh;padding:var(--page-gutter)}.page h1{font-size:var(--type-page-heading-size);margin:0}.skip-link{font-size:var(--type-skip-link-size);line-height:var(--type-skip-link-line-height)}h1,h2,h3{color:var(--color-text-primary);font-weight:var(--font-weight-medium);line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-heading);text-wrap:balance;margin-block:0}p{max-width:70ch;color:var(--color-text-primary);font-size:var(--font-size-body);line-height:var(--line-height-body);text-wrap:pretty;margin-block:0}small,.type-caption{font-size:var(--font-size-caption);line-height:var(--line-height-caption)}.type-label{font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);line-height:var(--line-height-label)}.type-heading{font-size:var(--font-size-heading)}.type-display{font-size:var(--font-size-display)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.layout-container{width:min(calc(100% - var(--layout-gutter) - var(--layout-gutter)), 87.5rem);margin-inline:auto}.portfolio-background{background-color:var(--color-surface);background-image:repeating-linear-gradient(90deg, transparent 0, transparent calc(4.1667vw - 1px), var(--color-grid-line) calc(4.1667vw - 1px), var(--color-grid-line) 4.1667vw)}@media (width<=640px){.portfolio-background{background-image:repeating-linear-gradient(90deg, transparent 0, transparent calc(12.5vw - 1px), var(--color-grid-line) calc(12.5vw - 1px), var(--color-grid-line) 12.5vw)}}.home-page{min-height:100dvh;position:relative;overflow:clip}.home-header{z-index:var(--z-sticky);width:100%;padding:var(--header-block-offset) var(--layout-gutter);pointer-events:none;position:fixed;top:0;left:0}.home-header a,.home-header button,.view-switcher{pointer-events:auto}.home-logo{z-index:2;font-size:var(--type-logo-size);font-weight:var(--type-logo-weight);line-height:var(--type-logo-line-height);letter-spacing:var(--type-logo-letter-spacing);display:inline-block;position:relative}.menu-toggle{display:none}.view-switcher,.menu-toggle,.media-view__arrow,.site-cursor__tooltip{border:var(--glass-border);background:var(--glass-background);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter)}.home-nav{top:var(--header-block-offset);right:var(--layout-gutter);font-size:var(--type-nav-size);font-weight:var(--type-nav-weight);line-height:var(--type-nav-line-height);letter-spacing:var(--type-nav-letter-spacing);flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute}.home-nav a{color:var(--color-secondary);transition:color .18s}.home-nav a:hover,.home-nav a:focus-visible,.home-nav a.active{color:var(--color-foreground)}.scramble-text{display:inline-grid;position:relative}.scramble-text__measure,.scramble-text__visual{white-space:pre;grid-area:1/1}.scramble-text__measure{visibility:hidden}.scramble-text__visual{overflow:visible}.view-switcher{z-index:2;top:var(--header-block-offset);isolation:isolate;border-radius:100px;width:199px;padding:4px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.view-switcher__content{grid-template-columns:1fr 1fr;width:100%;display:grid;position:relative}.view-switcher__active{background:#0000001a;border-radius:100px;width:50%;height:48px;transition:transform .42s cubic-bezier(.22,1,.36,1);position:absolute;top:0;left:0;transform:translate(0)}.view-switcher__active[data-position=second]{transform:translate(100%)}.view-switcher button{z-index:1;min-width:0;color:var(--color-secondary);font-size:var(--type-switcher-size);font-weight:var(--type-switcher-weight);line-height:var(--type-switcher-line-height);background:0 0;border:0;border-radius:100px;padding:12px 4px;transition:color .2s}.view-switcher button.is-active{color:var(--color-foreground)}.project-gallery{z-index:var(--z-content);height:125000rem;position:relative}.project-gallery__surface{width:100%;position:fixed;inset:0;overflow:clip}.project-gallery__zoom-layer{transform-origin:50%;will-change:transform;width:100%;position:absolute;inset:-1.5rem 0}.project-gallery__track{will-change:transform;width:100%;position:relative}.project-gallery--grid .project-gallery__track{top:calc(var(--gallery-top-space) + 1.5rem)}.project-gallery--list .project-gallery__track{top:9rem}.project-cycle--grid{grid-template-columns:repeat(var(--gallery-columns), minmax(0, 1fr));width:min(calc(100% - var(--gallery-inline-margin) - var(--gallery-inline-margin)), var(--gallery-max-width));padding-bottom:var(--gallery-bottom-space);column-gap:var(--gallery-column-gap);row-gap:var(--gallery-row-gap);margin-inline:auto;display:grid}.project-card{outline-offset:8px;width:100%;transition:scale var(--duration-ui) var(--ease-out), filter var(--duration-ui) ease;position:relative}.project-card:hover,.project-card:focus-within{z-index:2;filter:saturate(1.08);scale:1.035}.project-card figure{width:100%;height:100%;margin:0}.project-card__link{z-index:1;position:absolute;inset:0}.project-card .progressive-image{aspect-ratio:4/3}.project-card .progressive-image:has(.image-error){z-index:2}.project-card .image-error{pointer-events:none}.project-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.project-card__touch-meta{display:none}.project-cycle--list{flex-direction:column;gap:48px;width:min(100% - 240px,1680px);margin-inline:auto;padding-bottom:64px;display:flex}.project-list-item{width:fit-content;max-width:calc(100% - 330px);color:var(--color-tertiary);font-size:var(--type-project-title-size);font-weight:var(--type-project-title-weight);line-height:var(--type-project-title-line-height);letter-spacing:var(--type-project-title-letter-spacing);transition:color .22s,transform .42s cubic-bezier(.22,1,.36,1)}.project-list-item:hover,.project-list-item:focus-visible{color:var(--color-foreground);transform:translate(8px)}.project-list-item[data-selected=true]{color:var(--color-foreground)}.project-list-preview{z-index:4;aspect-ratio:4/3;opacity:0;transform-origin:100% 100%;pointer-events:none;width:300px;transition:opacity .22s,transform .42s cubic-bezier(.22,1,.36,1);position:fixed;bottom:2rem;right:2rem;transform:scale(.96)}.project-list-preview[data-visible=true]{opacity:1;transform:scale(1)}.project-list-preview img{object-fit:cover;width:100%;height:100%}.site-cursor{z-index:var(--z-tooltip);pointer-events:none;will-change:transform;width:0;height:0;display:none;position:fixed;top:0;left:0}.site-cursor__dot,.site-cursor__ring{border-radius:50%;transition:width .26s cubic-bezier(.22,1,.36,1),height .26s cubic-bezier(.22,1,.36,1),opacity .18s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.site-cursor__dot{background:var(--color-foreground);width:12px;height:12px}.site-cursor__ring{border:1.5px solid var(--color-foreground);opacity:0;width:12px;height:12px}.site-cursor[data-interactive=true] .site-cursor__dot{opacity:0;width:2px;height:2px}.site-cursor[data-interactive=true] .site-cursor__ring{opacity:1;width:48px;height:48px}.site-cursor__tooltip{align-items:center;gap:var(--space-3);opacity:0;transform-origin:0;border-radius:100px;min-width:max-content;padding:10px 18px 10px 12px;transition:opacity .14s cubic-bezier(.4,0,1,1),transform .22s cubic-bezier(.4,0,1,1);display:flex;position:absolute;top:0;left:38px;transform:translateY(-50%)scale(.86)}.site-cursor[data-side=left] .site-cursor__tooltip{transform-origin:100%;left:auto;right:38px}.site-cursor[data-tooltip-visible=true] .site-cursor__tooltip{opacity:1;transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1.18,.3,1);transform:translateY(-50%)scale(1)}.site-cursor__arrow{flex:none;width:24px;height:24px}.site-cursor[data-tooltip-icon=false] .site-cursor__tooltip{padding:12px 18px}.site-cursor__tooltip>span:last-child{flex-direction:column;display:flex}.site-cursor__tooltip strong{font-size:var(--type-tooltip-title-size);font-weight:var(--type-tooltip-title-weight);line-height:var(--type-tooltip-title-line-height)}.site-cursor__tooltip small{color:var(--color-secondary);font-size:var(--type-tooltip-meta-size);line-height:var(--type-tooltip-meta-line-height)}@media (hover:hover) and (pointer:fine){html[data-custom-cursor=enabled] .site-cursor{display:block}}@media (width<=1024px){.project-card__touch-meta{color:var(--color-secondary);font-size:var(--type-card-meta-size);line-height:var(--type-card-meta-line-height);justify-content:space-between;gap:8px;padding-top:9px;display:flex}.menu-toggle{z-index:3;top:var(--header-block-offset);right:var(--layout-gutter);border-radius:50%;place-content:center;width:48px;height:48px;padding:0;display:grid;position:absolute}.menu-toggle img{width:20px;height:20px;display:block}.menu-toggle:active{scale:.97}.home-nav{z-index:1;background:var(--color-surface);box-shadow:none;font-size:var(--type-nav-size);font-weight:var(--type-nav-weight);line-height:var(--type-nav-line-height);letter-spacing:var(--type-nav-letter-spacing);opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;padding:96px 24px 72px;transition:opacity .24s cubic-bezier(.23,1,.32,1),transform .32s cubic-bezier(.23,1,.32,1),visibility 0s linear .32s;display:flex;position:fixed;inset:0;transform:translateY(-12px)}.home-nav[data-open=true]{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.home-nav a{color:var(--color-tertiary)}.home-nav a.active,.home-nav a:hover,.home-nav a:focus-visible{color:var(--color-foreground)}.home-header[data-menu-open=true] .view-switcher{opacity:0;pointer-events:none}.view-switcher{top:auto;bottom:max(20px, env(safe-area-inset-bottom));width:184px;position:fixed}.project-cycle--list{gap:40px;width:calc(100% - 48px);padding-bottom:40px}.project-gallery--list .project-gallery__track{top:10.75rem}.project-list-item{max-width:100%}.project-list-preview{display:none}}@media (width<=640px){.menu-toggle{top:calc(var(--header-block-offset) - 2px)}.project-cycle--list{gap:32px;width:calc(100% - 32px);padding-bottom:32px}.project-gallery--list .project-gallery__track{top:9.375rem}}@media (prefers-reduced-transparency:reduce){.view-switcher,.menu-toggle,.media-view__arrow,.site-cursor__tooltip{background:var(--color-surface);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 0 0 1px #100f0f1f}}@media (prefers-reduced-motion:reduce){.project-gallery__surface,.project-card,.project-list-item,.view-switcher__active,.site-cursor__tooltip,.home-nav{transition-duration:.01ms!important}}.contact-page{min-height:100dvh;position:relative;overflow:clip}.contact-content{min-height:100dvh;padding:max(7rem, env(safe-area-inset-top)) var(--layout-gutter) max(3rem, env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.contact-label{margin-bottom:var(--contact-label-gap);color:var(--color-text-secondary);font-size:var(--type-contact-label-size);font-weight:var(--type-contact-label-weight);line-height:var(--type-contact-label-line-height);letter-spacing:var(--type-contact-label-letter-spacing)}.contact-content h1{color:var(--color-text-primary);font-size:var(--type-contact-heading-size);font-weight:var(--type-contact-heading-weight);line-height:var(--type-contact-heading-line-height);letter-spacing:var(--type-contact-heading-letter-spacing);margin:0}.contact-links{align-items:center;gap:var(--contact-link-gap);margin-top:var(--contact-links-offset);flex-direction:column;display:flex}.contact-link-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.5rem;color:var(--color-text-primary);font-size:var(--type-contact-link-size);font-weight:var(--type-contact-link-weight);line-height:var(--type-contact-link-line-height);transition:transform var(--duration-fast) var(--ease-out);display:inline-flex}.contact-link-button:active{transform:scale(.97)}.contact-link-button__icon{width:var(--contact-link-icon-size);height:var(--contact-link-icon-size);flex:none}@media (width<=1024px){.contact-content{padding-inline:var(--layout-gutter)}}@media (width<=640px){.contact-content{padding-top:max(6rem, env(safe-area-inset-top))}.contact-link-button{max-width:calc(100vw - var(--layout-gutter) - var(--layout-gutter));overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){.contact-link-button{transition-duration:.01ms}}.case-study-page{min-height:100dvh;position:relative;overflow:clip}.case-study{padding:var(--case-intro-offset) var(--layout-gutter) var(--space-12)}.case-study__intro{margin-bottom:var(--case-section-gap)}.case-study__intro h1{font-size:var(--type-case-title-size);font-weight:var(--type-case-title-weight);line-height:var(--type-project-title-line-height);letter-spacing:var(--type-project-title-letter-spacing);overflow-wrap:anywhere}.case-study__intro h1:focus{outline:none}.case-study__intro-bottom{justify-content:space-between;align-items:center;gap:var(--space-5);margin-top:var(--space-6);display:flex}.case-study__roles{gap:var(--space-1) var(--space-2);font-size:var(--type-case-body-size);line-height:var(--type-case-body-line-height);font-weight:var(--font-weight-regular);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.case-study__roles li:not(:last-child):after{content:" •";margin-left:var(--space-2)}.case-study__intro .contact-link-button{--type-contact-link-size:var(--type-case-body-size);flex-shrink:0;min-height:2.75rem}.case-study__hero,.case-study__image{background:var(--color-background);margin:0;overflow:hidden}.case-study__hero{aspect-ratio:var(--case-image-ratio,16 / 9)}.case-study__hero .progressive-image{aspect-ratio:auto;height:100%}.case-study__hero img{object-fit:cover;width:100%;height:100%}.case-study__image img{object-fit:contain;width:100%;height:auto}.case-study__metadata{gap:var(--case-image-gap);margin-block:var(--case-section-gap);grid-template-columns:1fr 1fr;display:grid}.case-study__metadata dl{gap:var(--case-image-gap);grid-template-columns:1fr 1fr;margin:0;display:grid}.case-study__metadata dt,.case-study__description h2{font-size:var(--type-case-label-size);font-weight:var(--type-case-label-weight);line-height:var(--line-height-label);letter-spacing:normal;margin-bottom:var(--space-3)}.case-study__metadata dd{margin:0}.case-study__metadata dd,.case-study__prose,.case-study__prose p{font-size:var(--type-case-body-size);font-weight:var(--type-case-body-weight);line-height:var(--type-case-body-line-height);overflow-wrap:anywhere}.case-study__prose>*+*{margin-top:var(--space-4)}.case-study__prose :is(ul,ol){padding-left:var(--space-5);margin-bottom:0}.case-study__prose a{text-underline-offset:.15em;text-decoration:underline}.case-study__sections{gap:var(--case-section-gap);display:grid}.case-study__images{align-items:start;gap:var(--case-image-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.case-study__images[data-columns="1"]{grid-template-columns:minmax(0,1fr)}.case-study__images[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.case-study__notes{gap:var(--case-image-gap);grid-template-columns:1fr 1fr;display:grid}.case-study__notes h2{max-width:24ch;font-size:var(--type-case-note-size);font-weight:var(--font-weight-semibold);line-height:var(--line-height-heading);text-transform:uppercase}.case-study__missing{align-content:center;gap:var(--space-6);min-height:100dvh;display:grid}.case-study__missing a{font-size:var(--font-size-body);text-decoration:underline}.next-project{align-items:center;gap:var(--case-image-gap);min-height:100dvh;padding:var(--space-12) var(--layout-gutter);color:var(--case-footer-foreground);background:var(--case-footer-background);grid-template-columns:1fr 1fr;display:grid;position:relative}.next-project-heading{color:inherit;font-size:var(--type-case-next-size);font-weight:var(--font-weight-regular);line-height:var(--line-height-display)}.next-project__link{align-items:center;gap:var(--space-6);grid-template-columns:minmax(0,2fr) minmax(0,1fr);min-width:0;display:grid;position:relative}.next-project__preview{min-width:0;position:relative}.next-project__hit-area{z-index:2;position:absolute;inset:0}.next-project__preview .progressive-image{aspect-ratio:1}.next-project__preview .progressive-image:has(.image-error){z-index:3}.next-project__preview img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;transition:transform var(--duration-ui) var(--ease-out), opacity var(--image-fade-duration) var(--ease-out)}.next-project__title{font-size:var(--type-case-body-size);line-height:var(--type-case-body-line-height);font-weight:var(--font-weight-medium);text-align:right;overflow-wrap:anywhere}.next-project__label{z-index:var(--z-content);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--case-footer-foreground);color:var(--case-footer-background);font-size:var(--font-size-label);line-height:var(--line-height-label);font-weight:var(--font-weight-semibold);white-space:nowrap;position:absolute;top:0;left:0;transform:translate(-25%,-50%)rotate(-15deg)}.next-project__label--click{display:none}.next-project__progress{width:var(--space-1);opacity:0;pointer-events:none;background:color-mix(in srgb, var(--case-footer-foreground) 20%, transparent);position:absolute;inset:0 auto 0 0}.next-project__progress[data-active=true]{opacity:1}.next-project__progress span{background:var(--case-footer-foreground);transform-origin:bottom;height:100%;display:block;transform:scaleY(0)}.case-study-page[data-footer-active=true] .home-header:not([data-menu-open=true]){--color-foreground:var(--color-surface);--color-secondary:var(--color-background);color:var(--color-surface)}.case-study-page[data-footer-active=true] .site-cursor{--color-foreground:var(--color-surface)}@media (hover:hover){.next-project__link:hover img{transform:scale(1.025)}}.next-project__link:active img{transition-duration:var(--duration-fast);transform:scale(.98)}@media (width<=1024px){.case-study__metadata{gap:var(--space-6);grid-template-columns:minmax(0,1fr)}.next-project{grid-template-columns:1fr 2fr}.next-project__link{gap:var(--space-4)}}@media (width<=640px){.case-study{padding-bottom:var(--space-10)}.case-study__intro-bottom{margin-top:var(--space-5);flex-direction:column;align-items:flex-start}.case-study__notes{gap:var(--space-5);grid-template-columns:minmax(0,1fr)}.case-study__images,.case-study__images[data-columns="3"]{grid-template-columns:minmax(0,1fr)}.next-project-heading{justify-content:center;display:flex}.next-project{align-content:center;gap:var(--space-10);grid-template-columns:minmax(0,1fr)}.next-project__link{gap:var(--space-5);grid-template-columns:minmax(0,1fr)}.next-project__preview{width:min(65vw,36dvh);margin-inline:auto}.next-project__title{text-align:center}}@media (prefers-reduced-motion:reduce){.next-project__progress,.next-project__label--scroll{display:none}.next-project__label--click{display:block}.next-project__preview img{transition:none}.next-project__link:is(:hover,:active) img{transform:none}}.media-gallery-page{min-height:100dvh;position:relative;overflow:clip}.media-gallery-page--spiral{touch-action:none;height:100dvh}.media-gallery-page__view,.spiral-gallery,.spiral-gallery canvas{width:100%;height:100%}.media-gallery-page--spiral .media-gallery-page__view{position:fixed;inset:0}.spiral-gallery{opacity:0;transition:opacity .5s var(--ease-out);outline:none;position:relative;overflow:clip}.spiral-gallery[data-ready=true]{opacity:1}.spiral-gallery:focus-visible{outline:var(--focus-outline-width) solid var(--color-foreground);outline-offset:calc(-1 * var(--focus-outline-width))}.spiral-gallery canvas{display:block}.spiral-gallery__errors{z-index:var(--z-content);left:var(--layout-gutter);max-width:calc(100% - 2 * var(--layout-gutter));align-items:center;gap:var(--space-2);max-height:25dvh;padding:var(--space-3);background:var(--color-surface);font-size:var(--font-size-caption);line-height:var(--line-height-caption);flex-wrap:wrap;display:flex;position:absolute;bottom:6rem;overflow:auto}.spiral-gallery__accessible-list{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spiral-gallery__accessible-list:focus-within{z-index:var(--z-modal);top:var(--space-11);left:var(--layout-gutter);gap:var(--space-2);width:auto;height:auto;padding:var(--space-4);clip:auto;background:var(--color-surface);white-space:normal;flex-direction:column;margin:0;display:flex;overflow:visible}.media-gallery-page .site-cursor__tooltip small:empty{display:none}@media (width<=700px){.spiral-gallery canvas{touch-action:none}}@media (prefers-reduced-motion:reduce){.media-gallery-page__view,.spiral-gallery{transition-duration:.01ms!important}}.media-view{--media-max-width:63vw;--media-block-clearance:max(8.75rem, 13dvh);--media-max-height:max(1px, calc(100dvh - 2 * var(--media-block-clearance)));--media-caption-gap:var(--space-5);touch-action:pan-y pinch-zoom;height:100dvh;min-height:100dvh;position:relative;overflow:clip}.media-view__header{z-index:var(--z-sticky);top:calc(var(--header-block-offset) + env(safe-area-inset-top));left:max(var(--layout-gutter), env(safe-area-inset-left));position:absolute}.media-view__close{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-pill);background:var(--color-foreground);color:var(--color-surface);transition:transform var(--duration-fast) var(--ease-out);touch-action:manipulation;place-items:center;display:grid}.media-view__close-icon{width:var(--space-5);height:var(--space-5);background:currentColor;-webkit-mask:none 50%/contain no-repeat;mask:none 50%/contain no-repeat}.media-view__stage,.media-view__item{position:absolute;inset:0}.media-view__item{--media-image-width:min(var(--media-max-width), calc(var(--media-max-height) * var(--media-aspect-ratio)));--media-image-height:calc(var(--media-image-width) / var(--media-aspect-ratio))}.media-view__figure{width:var(--media-image-width);height:var(--media-image-height);margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.media-view__image-box,.media-view__image-box img{width:100%;height:100%}.media-view__image-box img{object-fit:contain;-webkit-user-select:none;user-select:none}.media-view__metadata{top:calc(100% + var(--media-caption-gap));width:min(36rem, calc(100vw - 2 * var(--layout-gutter)));gap:var(--space-1);text-align:center;overflow-wrap:anywhere;display:grid;position:absolute;left:50%;translate:-50%}.media-view__metadata p{max-width:none;font-size:var(--type-media-caption-size);font-weight:var(--type-media-caption-weight);line-height:var(--type-media-caption-line-height)}.media-view__metadata time{color:var(--color-text-secondary);font-size:var(--type-media-date-size);font-weight:var(--type-media-date-weight);line-height:var(--type-media-date-line-height)}.media-view__zone{top:calc((100% - var(--media-image-height)) / 2);width:calc((100% - var(--media-image-width)) / 2);height:var(--media-image-height);cursor:pointer;position:absolute}.media-view__zone--previous{left:0}.media-view__zone--next{right:0}.media-view__zone:focus-visible{outline-offset:-4px}.media-view__controls{z-index:var(--z-content);bottom:calc(var(--space-5) + env(safe-area-inset-bottom));gap:var(--space-3);display:none;position:fixed;left:50%;transform:translate(-50%)}.media-view__arrow{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-pill);transition:transform var(--duration-fast) var(--ease-out);touch-action:manipulation;place-items:center;display:grid}.media-view__arrow img{width:var(--space-5);height:var(--space-5)}.media-view__close:active,.media-view__arrow:active{transform:scale(1.08)}@media (hover:hover){.media-view__close:hover,.media-view__arrow:hover{transform:scale(.95)}.media-view__close:active,.media-view__arrow:active{transform:scale(1.08)}}.media-view__empty{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--layout-gutter);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.media-view__empty h1{font-size:var(--font-size-heading)}.media-view__sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1024px),(pointer:coarse){.media-view{--media-max-width:calc(100vw - 2 * var(--layout-gutter));--media-block-clearance:calc(9rem + env(safe-area-inset-bottom));--media-caption-gap:var(--space-4)}.media-view__zone{display:none}.media-view__controls{display:flex}}@media (prefers-reduced-motion:reduce){.media-view__close,.media-view__arrow{transition:none}.media-view__close:active{opacity:.75;transform:none}.media-view__close:hover,.media-view__arrow:hover,.media-view__arrow:active{transform:none}.media-view__arrow:active{opacity:.75}.media-view__image-box img{transition-duration:.12s}}.route-transition{z-index:var(--z-transition);pointer-events:all;position:fixed;inset:0;overflow:clip}.route-transition__dimmer,.route-transition__curtain{position:absolute;inset:0}.route-transition__dimmer{background:var(--color-foreground);opacity:0}.route-transition__curtain{opacity:1;will-change:transform;transform:translateY(14vh)}@media (prefers-reduced-motion:reduce){.route-transition__curtain{opacity:0;will-change:auto;transform:none}}.progressive-image{width:100%;aspect-ratio:var(--image-ratio,auto);isolation:isolate;display:block;position:relative}.progressive-image[data-fill=true]{aspect-ratio:auto;height:100%}.progressive-image>img{opacity:0;width:100%;transition:opacity var(--image-fade-duration) var(--ease-out);display:block}.progressive-image[data-image-status=ready]>img{opacity:1}.progressive-image[data-cached=true]>img{transition-duration:0s}.progressive-image[data-in-view=false]>.image-skeleton:after{animation-play-state:paused}.image-skeleton{background:var(--image-skeleton-base);pointer-events:none;transition:opacity var(--image-fade-duration) var(--ease-out);position:absolute;inset:0;overflow:hidden}.image-skeleton:after{content:"";background:linear-gradient(100deg, transparent 20%, var(--image-skeleton-highlight) 50%, transparent 80%);animation:1.6s linear infinite image-shimmer;position:absolute;inset:0}.progressive-image[data-image-status=ready]>.image-skeleton{opacity:0}.progressive-image:not([data-image-status=loading])>.image-skeleton:after{animation:none}.progressive-image[data-cached=true]>.image-skeleton{display:none}.image-error{z-index:3;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2);color:var(--color-text-primary);background:var(--image-skeleton-base);font-size:var(--font-size-caption);line-height:var(--line-height-caption);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.image-error button,.spiral-gallery__errors button{min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-primary);background:var(--color-surface);cursor:pointer;pointer-events:auto;border:1px solid}.image-error button:hover,.spiral-gallery__errors button:hover{background:var(--color-background)}.image-error button:active,.spiral-gallery__errors button:active{transform:scale(.97)}@keyframes image-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.image-skeleton:after{animation:none}.progressive-image>img,.image-skeleton{transition:none}}
