.case-study{--case-gutter:var(--portfolio-gutter);--case-gap:clamp(18px, 2vw, 28px);--case-rule:1px dashed rgb(var(--color-hairline) / .7);min-height:100dvh;color:rgb(var(--color-text));background:0 0}.case-study__shell,.case-study__media-wrap{width:calc(min(100%, 1680px) - 2 * var(--case-gutter));margin-inline:auto}.case-study .desk-window__bar{flex:none}.case-study__hero{padding:22px 0 var(--case-gap)}.case-study__hero:before{content:none}.case-study .case-study__back{margin-bottom:20px}.case-study__hero-grid{gap:var(--case-gap);grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);align-items:stretch;display:grid}.case-study__hero-grid>*,.case-study__body-grid>*{min-width:0}.case-study__title,.case-study__exhibit{flex-direction:column;display:flex}.case-study__title .desk-window__body{flex-direction:column;flex:1;justify-content:center;padding:clamp(24px,3vw,40px) clamp(20px,2.6vw,36px);display:flex}.case-study__exhibit{overflow:hidden}.case-study.architecture-case .case-study__exhibit>.project-diorama{background:0 0;border:0;flex:1;height:auto;min-height:360px}.case-study .case-study__controls{border:0;grid-column:1/-1;padding:0}.case-study .case-study__exhibit .architecture-view:not(.has-docked-controls)>.architecture-controls--unified{border-width:2px 0 0;margin:0;padding:8px 12px}.case-study__eyebrow{color:rgb(var(--color-kicker));font:var(--type-caps)/1.8 var(--font-ui);text-transform:uppercase;margin:0 0 10px}.case-study__hero h1{color:rgb(var(--color-text));font:400 var(--type-title)/.95 var(--font-display);letter-spacing:0;text-shadow:var(--title-shadow);overflow-wrap:anywhere;margin:0 0 18px}.case-study__intro>p{max-width:48ch;color:rgb(var(--color-text));font-size:var(--type-lead);margin:0;line-height:1.7}.case-study__links{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.case-study .case-study__links a{font-size:var(--type-action);gap:10px}.case-study__links svg{flex:none;width:13px;height:13px}.case-study__media-wrap{flex-direction:column;display:flex}.case-study__hero-media{width:100%;color:inherit;background:0 0;border:0;padding:clamp(10px,1.4vw,18px);display:block;position:relative}.case-study__hero-media:before{content:none}.case-study__hero-media .case-study__preview-image{border:var(--window-edge);background:rgb(var(--color-surface-sunken));display:block;position:relative;overflow:hidden}.case-study__preview-image img,.case-study__preview-image video{object-fit:contain;width:100%;height:auto;display:block;transform:none}.case-study__body{padding:var(--case-gap) 0}.case-study__body-grid{gap:var(--case-gap);grid-template-columns:minmax(240px,.62fr) minmax(0,1.65fr);align-items:start;display:grid}.case-study__meta{top:calc(var(--header-height,64px) + 20px);position:sticky}.case-study__meta--expanded{position:static}.case-study__meta dl{gap:14px;margin:0;display:grid}.case-study__meta dl>div+div{border-top:var(--case-rule);padding-top:14px}.case-study__meta dt{color:rgb(var(--color-accent));font:var(--type-caps)/1.5 var(--font-ui);text-transform:uppercase;margin:0 0 6px}.case-study__meta dd{color:rgb(var(--color-text));font-size:var(--type-body);margin:0;line-height:1.6}.case-study__stack{margin-top:22px}.case-study__stack>p{border-block:var(--window-edge);color:rgb(var(--color-text));background:rgb(var(--color-band));box-shadow:var(--bevel-band);font:var(--type-caps)/1.6 var(--font-ui);text-transform:uppercase;margin:0 -20px 16px;padding:6px 20px}.case-study__stack-groups{gap:16px;display:grid}.case-study__stack-group>span{color:rgb(var(--color-accent));font:var(--type-caps)/1.4 var(--font-ui);text-transform:uppercase;margin-bottom:8px;display:block}.case-study__stack-group ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.case-study__stack-group li{border:1px solid rgb(var(--color-text) / .6);color:rgb(var(--color-text));background:rgb(var(--color-band));box-shadow:inset 1px 1px 0 rgb(var(--color-bevel-light)), inset -1px -1px 0 rgb(var(--color-band-shade));font-size:var(--type-small);padding:4px 8px;line-height:1.5}.case-study__story h2{color:rgb(var(--color-text));font:400 var(--type-section)/1 var(--font-display);letter-spacing:0;text-shadow:var(--title-shadow);margin:0}.case-study__story-copy{margin-top:var(--section-gap)}.case-study__lead p,.case-study__chapter-copy p{max-width:78ch;color:rgb(var(--color-text));font-size:var(--type-body);line-height:1.8}.case-study__lead p:first-child{font-size:var(--type-lead)}.case-study__chapter{--chapter-pad:26px;--chapter-line:var(--type-item);padding:var(--chapter-pad) clamp(16px, 2.2vw, 28px) 18px;border:2px solid rgb(var(--color-bevel-shade));box-shadow:2px 2px 0 rgb(var(--color-bevel-light)), inset 2px 2px 0 rgb(var(--color-bevel-light))}.case-study__chapter header{width:fit-content;max-width:calc(100% + 20px);margin:calc(-1 * (var(--chapter-pad) + 1px + var(--chapter-line) / 2)) 0 14px -10px;background:rgb(var(--color-window));align-items:center;gap:10px;padding:0 10px;display:flex}.case-study__chapter header>span{border:var(--window-edge);color:rgb(var(--color-text));background:rgb(var(--color-tooltip));box-shadow:2px 2px 0 rgb(var(--color-text) / .6);font:var(--type-caps)/1 var(--font-ui);flex:none;padding:4px 6px 3px}.case-study__chapter h3{color:rgb(var(--color-text));font:400 var(--type-item)/var(--chapter-line) var(--font-display);letter-spacing:0;margin:0}.case-study__chapter-copy>:last-child{margin-bottom:0}.case-study__story-copy ul{gap:8px;padding:0;list-style:none;display:grid}.case-study__story-copy li{color:rgb(var(--color-text));font-size:var(--type-body);padding-left:20px;line-height:1.75;position:relative}.case-study__story-copy li:before{content:"";background:rgb(var(--color-accent));width:6px;height:6px;position:absolute;top:.62em;left:2px}.case-study__next{padding:var(--case-gap) 0 48px}.case-study__next .case-study__shell{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.case-study__next-project{color:rgb(var(--color-text));text-decoration:none;display:block}.case-study__next-body{grid-template-columns:120px minmax(0,1fr) 48px;align-items:center;gap:22px;padding:18px;display:grid}.case-study__next-body>img{object-fit:contain;border:var(--window-edge);background:rgb(var(--color-surface-sunken));width:120px;height:auto;display:block}.case-study__next-copy{gap:6px;min-width:0;display:grid}.case-study__next-copy small{color:rgb(var(--color-accent));font:var(--type-caps)/1.4 var(--font-ui);text-transform:uppercase}.case-study__next-copy strong{font:400 var(--type-item)/1 var(--font-display);letter-spacing:0;text-shadow:var(--title-shadow)}.case-study__next-copy>span{color:rgb(var(--color-text-muted));font-size:var(--type-small);line-height:1.6}.case-study__next-arrow{border:var(--window-edge);width:48px;height:48px;color:rgb(var(--color-button-text));background:rgb(var(--color-button));box-shadow:var(--bevel-button);place-items:center;display:grid}.case-study__next-project:hover .case-study__next-arrow{background:rgb(var(--color-button-hover))}.case-study__next-arrow svg{width:22px;height:22px}.case-study .case-study__all-projects{justify-self:start;margin:0}.case-study-not-found{min-height:70vh;padding:2rem var(--portfolio-gutter);place-content:center;display:grid}.case-study-not-found .desk-window{max-width:640px}.case-study-not-found h1{font:400 var(--type-title)/1 var(--font-display);letter-spacing:0;text-shadow:var(--title-shadow);margin:0}.case-study-not-found .desk-window__body>p:not(.case-study__eyebrow){max-width:34rem;margin-block:20px 24px;line-height:1.7}@container page (width<=900px){.case-study__hero-grid{grid-template-columns:minmax(0,1fr)}.case-study.architecture-case .case-study__exhibit>.project-diorama{flex:none;height:400px;min-height:0}.case-study__intro>p{max-width:60ch}.case-study__body-grid{grid-template-columns:minmax(0,1fr)}.case-study__meta{position:static}.case-study__meta dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.case-study__meta dl>div+div{border:0;padding-top:0}.case-study__stack-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@container page (width<=600px){.case-study__hero{padding-top:14px}.case-study .case-study__back,.case-study__hero h1{margin-bottom:14px}.case-study__links{margin-top:18px}.case-study.architecture-case .case-study__exhibit>.project-diorama{height:370px}.case-study__stack>p{margin-inline:-16px;padding-inline:16px}.case-study__stack-groups{grid-template-columns:minmax(0,1fr)}.case-study__chapter{--chapter-pad:22px;padding-inline:14px}.case-study__chapter header{gap:8px;margin-left:-6px;padding-inline:6px}.case-study__next{padding-bottom:36px}.case-study__next-body{grid-template-columns:64px minmax(0,1fr) 40px;gap:14px;padding:14px}.case-study__next-body>img{width:64px}.case-study__next-arrow{width:40px;height:40px}.case-study__next-arrow svg{width:18px;height:18px}}@media (prefers-reduced-motion:reduce){.case-study__next-arrow{transition:none}}.case-study__gallery{padding:0 0 var(--case-gap)}.case-study__gallery-window h2{color:rgb(var(--color-text));font:400 var(--type-section)/1 var(--font-display);letter-spacing:0;text-shadow:var(--title-shadow);margin:0}.case-study__section-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4px 16px;margin-bottom:24px;display:grid}.case-study__section-heading .case-study__eyebrow{grid-column:1/-1;margin-bottom:0}.case-study__section-heading>span{border:var(--window-edge);color:rgb(var(--color-text));background:rgb(var(--color-band));box-shadow:var(--bevel-band);font:var(--type-caps)/1.4 var(--font-ui);text-transform:uppercase;white-space:nowrap;padding:4px 8px}.case-study__gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.case-study__gallery-item{aspect-ratio:16/11;border:var(--window-edge);min-width:0;color:rgb(var(--color-text));background:rgb(var(--color-surface-sunken));box-shadow:none;font:inherit;text-align:left;cursor:zoom-in;border-radius:0;place-items:center;padding:12px 12px 46px;display:grid;position:relative;overflow:hidden}.case-study__gallery-item:hover{box-shadow:var(--drop-shadow)}.case-study__gallery-item:nth-child(3n){grid-column:1/-1;justify-self:center;width:80%}.case-study__gallery-item img,.case-study__gallery-item video{object-fit:contain;width:100%;height:100%;min-height:0;display:block;transform:none}.case-study__gallery-index{border:var(--window-edge);color:rgb(var(--color-text));background:rgb(var(--color-tooltip));box-shadow:2px 2px 0 rgb(var(--color-text) / .6);font:var(--type-caps)/1 var(--font-ui);padding:4px 6px 3px;position:absolute;bottom:12px;left:12px}.case-study__media-type{border:var(--window-edge);min-height:26px;color:rgb(var(--color-button-text));background:rgb(var(--color-button));box-shadow:var(--bevel-button);font:var(--type-label)/1 var(--font-display);align-items:center;gap:8px;padding:4px 8px;display:inline-flex;position:absolute;bottom:10px;right:12px}.case-study__gallery--demo .case-study__gallery-item,.case-study__gallery--demo .case-study__gallery-item:nth-child(3n){aspect-ratio:auto;background:rgb(var(--color-window));grid-column:auto;grid-template-rows:auto 1fr;align-content:start;justify-self:stretch;place-items:stretch stretch;width:100%;padding:0}.case-study__gallery--demo .case-study__gallery-item img{aspect-ratio:1703/1204;object-fit:contain;background:rgb(var(--color-surface-sunken));width:100%;height:auto}.case-study__gallery-caption{border-top:var(--window-edge);align-content:start;gap:8px;padding:16px 18px 20px;display:grid}.case-study__gallery-caption strong{color:rgb(var(--color-text));font:400 var(--type-item)/1.05 var(--font-display);letter-spacing:0}.case-study__gallery-caption>span{color:rgb(var(--color-text-muted));font-size:var(--type-small);line-height:1.65}.case-study__gallery--demo .case-study__gallery-index{top:12px;bottom:auto;left:12px}.case-study__gallery--demo .case-study__media-type{top:12px;bottom:auto;right:12px}.case-study__gallery--renders .case-study__gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.case-study__gallery--renders .case-study__gallery-item img{aspect-ratio:16/9}.case-study__comparison .case-study__gallery-item img{aspect-ratio:auto}.case-study__gallery--renders .case-study__gallery-item--video{grid-column:span 2}.case-study__gallery--renders .case-study__gallery-item--video img{aspect-ratio:16/9}.case-study__gallery--renders .case-study__gallery-caption{padding:14px}.case-study__gallery--renders .case-study__gallery-index{display:none}.case-study__comparison-header{gap:var(--disclosure-gap);flex-wrap:wrap;list-style:none}.case-study__comparison summary::-webkit-details-marker{display:none}.case-study__comparison summary>img{object-fit:cover;flex:none;width:88px;height:66px}.case-study__comparison-copy{gap:var(--control-gap);flex:160px;min-width:0;display:grid}.case-study__comparison summary strong{font:400 var(--type-item)/1 var(--font-display);letter-spacing:0}.case-study__comparison-copy>span{color:rgb(var(--color-text-muted));font:var(--type-small)/1.5 var(--font-body)}.case-study__comparison-toggle{justify-self:start}.case-study__comparison summary:focus-visible{outline:2px dashed rgb(var(--color-text));outline-offset:-6px}.case-study__comparison .comparison-collapse,.case-study__comparison[data-open=true] .comparison-expand{display:none}.case-study__comparison[data-open=true] .comparison-collapse{display:inline}.case-study__comparison[data-open=true] .case-study__comparison-toggle{box-shadow:var(--bevel-pressed)}.case-study__comparison-toggle>span:last-child{transition:transform .12s}.case-study__comparison[data-open=true] .case-study__comparison-toggle>span:last-child{transform:rotate(45deg)}@container page (width<=1099px){.case-study__gallery--renders .case-study__gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container page (width<=600px){.case-study__gallery-grid{grid-template-columns:minmax(0,1fr);gap:16px}.case-study__gallery-item,.case-study__gallery-item:nth-child(3n){aspect-ratio:4/3;grid-column:auto;width:100%;padding:10px 10px 42px}.case-study__section-heading{grid-template-columns:minmax(0,1fr);justify-items:start;gap:10px}}@container page (width<=539px){.case-study__gallery--renders .case-study__gallery-grid{grid-template-columns:minmax(0,1fr)}.case-study__gallery--renders .case-study__gallery-item--video{grid-column:auto}}@media (prefers-reduced-motion:reduce){.case-study__comparison-toggle>span:last-child{transition:none}}
