.case-study-left-panel{--case-study-reading-line-height:19.2px;z-index:20;grid-template-columns:subgrid;color:#4d4d4d;min-width:0;font:400 14px/18px var(--font-work-body);background:var(--case-study-background);grid-area:1/1/auto/4;display:grid;position:relative}.case-study-page .case-study-left-panel{font-size:var(--case-study-reading-size)}.case-study-rail{grid-column:2;min-width:0;height:100%}.project-desktop-rail{max-height:calc(100dvh - 56px);padding-right:24px;line-height:19.2px;position:sticky;top:28px;overflow-y:auto}.project-desktop-links{flex-direction:column;margin-top:16px;display:flex}.project-desktop-links a{color:inherit;opacity:.4;transition:opacity .14s var(--ease-out);padding-block:2px;text-decoration:none;display:block}.project-desktop-links a[aria-current=location]{opacity:1}.case-study-divider{background:#4d4d4d17;grid-column:3;width:1px}.case-study-rail-inner{width:var(--project-rail-width);isolation:isolate;height:100dvh;display:none;position:sticky;top:0}.project-sidebar-surface{z-index:-1;width:var(--project-index-width);background:var(--case-study-background);transform:translateX(calc(var(--project-rail-width) - var(--project-index-width)));transition:transform .18s var(--ease-out);border-right:1px solid #4d4d4d1f;position:absolute;inset:0 auto 0 0}.case-study-left-panel[data-expanded=true] .project-sidebar-surface{transition:transform .28s var(--ease-drawer);transform:translate(0)}.project-index{top:max(16px, env(safe-area-inset-top,0px));width:var(--project-index-width);pointer-events:none;position:absolute;left:0}.project-index-toggle{z-index:3;top:0;left:calc((var(--project-rail-width) - 44px) / 2);width:44px;height:var(--tick-hit-height);color:inherit;cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:background-color .14s ease, transform .14s var(--ease-out);background:0 0;border:0;border-radius:6px;place-items:start center;padding:12px 0;display:grid;position:absolute}.case-study-left-panel[data-expanded=false] .project-index-toggle{z-index:0}.case-study-left-panel[data-expanded=true] .project-index-toggle{height:44px}.project-index-toggle:active{background:#f2f2f2;transform:scale(.96)}.project-index-close{opacity:0;filter:blur(4px);transition:opacity .1s var(--ease-out), transform .18s var(--ease-out), filter .18s var(--ease-out);transform:scale(.25)}.case-study-left-panel[data-expanded=true] .project-index-close{opacity:1;filter:blur();transform:scale(1)}.project-index-links{max-height:calc(100dvh - 112px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));pointer-events:none;scrollbar-width:thin;scrollbar-color:#aaa transparent;overscroll-behavior-y:contain;padding-top:48px;position:relative;overflow:visible}.case-study-left-panel[data-expanded=true] .project-index-links{pointer-events:auto;overflow-y:auto}.project-index-links a{color:#737373;align-items:center;height:44px;padding:0 20px 0 56px;text-decoration:none;display:flex;position:relative}.project-index-links a[aria-current=location]{color:#4d4d4d}.project-index-tick{top:21px;left:calc((var(--project-rail-width) - 24px) / 2);pointer-events:none;width:24px;height:2px;transform:translateY(var(--tick-fold-y));transition:transform .18s var(--ease-out);position:absolute}.project-index-tick>span{transform-origin:0;width:100%;height:100%;transition:transform .14s var(--ease-out), opacity .14s ease;opacity:.65;background:currentColor;border-radius:1px;display:block;transform:scaleX(.5)}.project-index-links a:nth-child(3n+1) .project-index-tick>span{transform:scaleX(.75)}.project-index-links a[aria-current=location] .project-index-tick>span{opacity:1;transform:scaleX(1)}.case-study-left-panel[data-expanded=true] .project-index-tick{transition:transform .24s var(--ease-drawer) var(--tick-delay);transform:translateY(0)}.project-index-label{opacity:0;transition:opacity .1s var(--ease-out), transform .18s var(--ease-out);transform:translate(-8px)}.case-study-left-panel[data-expanded=true] .project-index-label{opacity:1;transition:opacity .18s var(--ease-out) var(--label-delay), transform .18s var(--ease-out) var(--label-delay);transform:translate(0)}.project-sidebar-return{bottom:calc(16px + env(safe-area-inset-bottom,0px));left:calc((var(--project-rail-width) - 44px) / 2);position:absolute}.project-sidebar-return .case-study-back{justify-content:center;gap:0;width:44px;height:48px;font-size:0;display:flex}.case-study-left-panel[data-expanded=true] .project-sidebar-return .case-study-back{width:max-content;font-size:inherit;gap:8px;padding-inline:12px}.project-index-toggle:focus-visible,.project-index-links a:focus-visible,.project-sidebar-return .case-study-back:focus-visible{outline-offset:-3px;outline:2px solid}.project-index-links a:focus-visible .project-index-label{opacity:1;transition:none}@media (hover:hover) and (pointer:fine){.project-desktop-links a:hover{opacity:.8}.project-index-toggle:hover{background:#f2f2f2}.project-index-links a:hover{color:#4d4d4d}}@media (width<=820px){.case-study-left-panel{grid-column:1;display:block}.project-desktop-rail,.case-study-divider{display:none}.case-study-rail-inner{display:block}}@media (width>=821px) and (width<=1100px){.project-desktop-rail{padding-right:18px}}.case-study-left-panel[data-instant=true] :is(.project-sidebar-surface,.project-index-tick,.project-index-label,.project-index-close){transition:none}html:has(.case-study-left-panel[data-instant=true]){scroll-behavior:auto}@media (prefers-reduced-motion:reduce){.project-desktop-links a{transition:none}html:has(.case-study-left-panel){scroll-behavior:auto}.case-study-left-panel[data-expanded] :is(.project-sidebar-surface,.project-index-tick){transition:none}.case-study-left-panel .project-index-tick>span{transition:opacity .12s linear}.case-study-left-panel[data-expanded] :is(.project-index-label,.project-index-close){filter:none;transition:opacity .12s linear;transform:none}.project-index-toggle:active,.project-sidebar-return .case-study-back:hover span{transform:none}}@media (prefers-contrast:more){.project-desktop-links a{opacity:1}.project-sidebar-surface{border-color:currentColor}.project-index-links a{color:#4d4d4d}.project-index-tick>span,.project-sidebar-return .case-study-back{opacity:1}}@media (forced-colors:active){.project-sidebar-surface{background:canvas;border-color:canvastext}.project-index-tick>span{background:canvastext}}:is(html:has(.gallery-page),body:has(.gallery-page)){background:var(--case-study-background)}.gallery-page{--gallery-gutter:28px;--gallery-rail-width:calc(var(--case-study-sidebar-width) / 2);--gallery-image-height:clamp(400px, 32vw, 480px);--gallery-ink:#4d4d4d;grid-template-columns:var(--gallery-rail-width) minmax(0, 1fr);min-height:100svh;color:var(--gallery-ink);background:var(--case-study-background);font:400 14px/1.5 var(--font-work-body);display:grid}.gallery-page>.case-study-left-panel{grid-column:1;grid-template-columns:minmax(0,1fr) 1px}.gallery-page .case-study-rail{grid-column:1;padding-left:28px}.gallery-page .case-study-divider{grid-column:2}.gallery-content{background:var(--case-study-background);min-width:0;padding:32px 0 28px}.gallery-header,.gallery-section-heading{margin-inline:var(--gallery-gutter)}.gallery-masthead{justify-content:space-between;align-items:baseline;gap:32px;display:flex}.gallery-masthead h1{text-wrap:balance;margin:0}.gallery-intro{grid-template-columns:minmax(0,1fr);align-items:start;gap:32px;margin-top:34px;display:grid}.gallery-project-details{margin:0}.gallery-description{max-width:62ch}.gallery-description p{margin:0}.gallery-description p+p{margin-top:12px}.gallery-sections{gap:92px;margin-top:64px;display:grid}.gallery-section{min-width:0;scroll-margin-top:28px}.gallery-section-heading{justify-content:space-between;align-items:center;gap:24px;min-height:44px;margin-bottom:24px;display:flex}.gallery-section-heading h2{margin:0}.gallery-row-controls{align-items:center;gap:4px;display:flex}.gallery-row-controls button{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.gallery-row-controls button:disabled{opacity:.3;cursor:default}.gallery-row{overscroll-behavior-x:contain;touch-action:pan-y pinch-zoom;overflow:hidden}.gallery-row[data-scrollable=true]{cursor:grab}.gallery-row[data-scrollable=true]:active{cursor:grabbing}.gallery-row-progress{height:2px;margin:12px var(--gallery-gutter) 0;background:#4d4d4d1a}.gallery-row-progress span{background:#4d4d4d73;height:100%;display:block}.gallery-track{min-width:0;padding:4px var(--gallery-gutter) 20px;grid-auto-columns:max-content;grid-auto-flow:column;align-items:start;column-gap:16px;display:grid}.gallery-artwork{--artwork-width:clamp(560px, calc(var(--gallery-image-height) * var(--artwork-ratio)), 800px);width:var(--artwork-width);min-width:0;max-width:calc(100vw - var(--gallery-rail-width) - var(--gallery-gutter) * 2);margin:0}.gallery-image-button{width:100%;color:inherit;cursor:inherit;background:0 0;border:0;align-self:start;padding:0;display:block}.gallery-image-button img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:auto;display:block}.gallery-row[data-scrollable=false] .gallery-image-button{cursor:zoom-in}.gallery-webpages{margin-inline:var(--gallery-gutter);gap:32px;display:grid}.gallery-row~.gallery-webpages{margin-top:32px}.gallery-page-preview{width:min(100%,900px);min-width:0;margin:0}.gallery-preview-hint{margin:0 0 12px}.gallery-window{--preview-frame:6px;--preview-radius:20px;--preview-stroke:#0000001f;--preview-outer-stroke:#00000014;border:var(--preview-frame) solid transparent;border-radius:var(--preview-radius);outline:1px solid var(--preview-outer-stroke);outline-offset:-1px;color:#4d4d4d;cursor:auto;background:0 0;position:relative}.gallery-window:after{content:"";border-radius:0 0 calc(var(--preview-radius) - var(--preview-frame)) calc(var(--preview-radius) - var(--preview-frame));opacity:0;pointer-events:none;background:linear-gradient(#fff0,#ffffffbf);height:clamp(48px,14%,80px);position:absolute;inset:auto 0 0}.gallery-window[data-scroll-more]:after{opacity:1}.gallery-window-scroll{height:calc(var(--gallery-image-height) * 1.25);border-radius:calc(var(--preview-radius) - var(--preview-frame));outline:1px solid var(--preview-stroke);overscroll-behavior-y:contain;scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom;overflow-y:auto;box-shadow:0 2px 4px #00000014,0 4px 8px #0000000a}.gallery-window-scroll::-webkit-scrollbar{display:none}.gallery-window-image{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.gallery-window-scroll img{width:100%;height:auto;display:block}.gallery-image-error{background:#f7f7f7;align-content:center;justify-items:start;gap:12px;min-height:220px;padding:24px;display:grid}.gallery-image-error button{color:inherit;cursor:pointer;background:0 0;border:0;padding:10px 0;text-decoration:underline}.gallery-page :focus-visible,.gallery-window :focus-visible{outline-offset:3px;outline:2px solid #4d4d4d}.gallery-window :focus-visible{outline-offset:-3px}.gallery-row:focus-visible{outline-offset:-2px}.gallery-window[data-expanded]{width:min(100%,1100px)}.gallery-window[data-expanded] .gallery-window-scroll{height:calc(100dvh - 128px - var(--preview-frame) * 2)}@media (hover:hover) and (pointer:fine){.gallery-row-controls button:hover:not(:disabled){background:#f2f2f2}}@media (width>=821px){.gallery-page .gallery-project-details{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=820px){.gallery-page{--gallery-rail-width:var(--project-rail-width)}.gallery-page .case-study-rail{padding-left:0}}@media (width<=700px){.gallery-page{--gallery-gutter:16px;--gallery-image-height:320px}.gallery-content{padding-top:20px}.gallery-masthead{align-items:start;gap:16px}.gallery-masthead h1{padding-top:8px}.gallery-intro{grid-template-columns:1fr;gap:24px;margin-top:24px}.gallery-sections{gap:60px;margin-top:40px}.gallery-section-heading{margin-bottom:16px}.gallery-track{column-gap:12px}.gallery-window{--preview-frame:4px;--preview-radius:16px}}@media (prefers-reduced-motion:reduce){html:has(.gallery-page){scroll-behavior:auto}}@media (forced-colors:active){.gallery-window{border-color:canvastext}.gallery-window:after{display:none}.gallery-window-scroll{scrollbar-width:auto}.gallery-window-scroll::-webkit-scrollbar{display:block}}
