/* The project album: intentionally scoped to the portfolio and project sheets. */
.project-index,
.project-sheet {
  --album-ink: #17191d;
  --album-paper: #f1efe9;
  --album-lavender: #b9a1e5;
  --album-purple: #5e407e;
  --album-muted: #62615e;
  --album-rule: #c7c5bf;
  color: var(--album-ink);
  background: var(--album-paper);
}
:is(.project-index,.project-sheet) .album-wrap {
  max-width: 1600px;
  margin-inline: auto;
  padding-inline: clamp(20px,4.5vw,72px);
}
:is(.project-index,.project-sheet) :is(h1,h2,h3,p,dd,a) { overflow-wrap: break-word; }
:is(.project-index,.project-sheet) :is(h1,h2,h3) { text-wrap: balance; }
:is(.project-index,.project-sheet) p { text-wrap: pretty; }
:is(.project-index,.project-sheet) :is(a,button):focus-visible { outline: 3px solid var(--album-purple); outline-offset: 6px; }
:is(.project-index,.project-sheet) .album-breadcrumb {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 13px;
  color: var(--album-muted);
  font-size: .8125rem;
  line-height: 1.55;
  margin-bottom: 36px;
}
:is(.project-index,.project-sheet) .album-breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
:is(.project-index,.project-sheet) .album-kicker { font-size: .75rem; font-weight: 600; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.project-index .album-intro { padding-block: 34px 42px; }
.project-index .album-intro-grid { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: end; gap: clamp(28px,5vw,80px); margin-top: 23px; }
.project-index h1 { font-size: clamp(3.125rem,6.8vw,5.5rem); line-height: 1.05; letter-spacing: -.055em; font-weight: 550; }
.project-index .album-intro-aside { padding-bottom: 4px; }
.project-index .album-intro-aside > p { max-width: 43ch; font-size: 1rem; line-height: 1.65; color: #48494b; }
.project-index .album-collection { display: flex; flex-wrap: wrap; gap: 12px 35px; margin-top: 28px; }
.project-index .album-collection > span { display: flex; align-items: baseline; gap: 9px; font-size: 1.75rem; line-height: 1.2; font-weight: 500; font-variant-numeric: tabular-nums; }
.project-index .album-collection > span > span { font-size: .75rem; line-height: 1.5; font-weight: 400; color: var(--album-muted); }
.project-index .album-list { padding-bottom: 0; }
.project-index .album-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px 24px; border-top: 1px solid var(--album-ink); padding-block: 22px 35px; }
.project-index .filters { display: flex; flex-wrap: wrap; gap: 9px; }
.project-index .filter { display: inline-flex; align-items: center; gap: 15px; min-height: 46px; padding: 10px 17px; background: transparent; color: var(--album-ink); border: 1px solid var(--album-rule); border-radius: 0; font-size: .875rem; font-weight: 500; line-height: 1.5; }
.project-index .filter > span { font-size: .75rem; font-variant-numeric: tabular-nums; opacity: .7; }
.project-index .filter[aria-pressed="true"] { color: var(--album-paper); background: var(--album-ink); border-color: var(--album-ink); }
.project-index .results { margin: 0; color: var(--album-muted); font-size: .75rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
:is(.project-index,.project-sheet) .album-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; column-gap: clamp(24px,3.6vw,58px); row-gap: clamp(45px,6vw,88px); }
:is(.project-index,.project-sheet) .album-card { grid-column: span 6; min-width: 0; }
.project-index .album-card:nth-child(4n+1),
.project-index .album-card:nth-child(4n+4) { grid-column: span 7; }
.project-index .album-card:nth-child(4n+2),
.project-index .album-card:nth-child(4n+3) { grid-column: span 5; }
.project-index .album-card:nth-child(4n+2) { padding-top: 70px; }
.project-index .album-card:nth-child(4n+3) { padding-top: 48px; }
.project-index:has(.filter[aria-pressed="true"]:not([data-filter="all"])) .album-card { grid-column: span 6; padding-top: 0; }
:is(.project-index,.project-sheet) .album-card[hidden] { display: none !important; }
:is(.project-index,.project-sheet) .album-card-link { display: block; }
:is(.project-index,.project-sheet) .album-card-top { display: flex; justify-content: space-between; gap: 18px; align-items: baseline; margin-bottom: 13px; padding-top: 13px; border-top: 1px solid var(--album-rule); }
:is(.project-index,.project-sheet) .album-number { color: var(--album-purple); font-size: .875rem; font-variant-numeric: tabular-nums; font-weight: 600; }
:is(.project-index,.project-sheet) .album-category { font-size: .75rem; line-height: 1.5; color: #555451; text-align: end; }
:is(.project-index,.project-sheet) [data-category="concept"] .album-category { color: var(--album-purple); }
:is(.project-index,.project-sheet) .album-photo { position: relative; overflow: hidden; background: #e3e0d9; }
:is(.project-index,.project-sheet) .album-photo img { width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; }
:is(.project-index,.project-sheet) [data-category="concept"] .album-photo { background: #e6e0ef; }
:is(.project-index,.project-sheet) .album-open { display: grid; place-items: center; position: absolute; inset-inline-end: 16px; inset-block-end: 16px; width: 44px; height: 44px; background: var(--album-paper); color: var(--album-ink); font-size: 1.5rem; line-height: 1; transition: background-color 180ms ease; }
:is(.project-index,.project-sheet) .album-card-caption { margin-top: 19px; }
:is(.project-index,.project-sheet) .album-card h3 { font-size: clamp(1.5rem,2.1vw,2rem); font-weight: 550; line-height: 1.2; letter-spacing: -.03em; }
:is(.project-index,.project-sheet) .album-card-meta { margin-top: 9px; font-size: .8125rem; line-height: 1.55; color: var(--album-muted); }
:is(.project-index,.project-sheet) .album-card-summary { max-width: 52ch; margin-top: 13px; font-size: 1rem; line-height: 1.6; color: #444548; }
.project-index .album-noscript { display: block; margin-block: 20px; font-size: 1rem; }
.project-index .album-endnote { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 20px 32px; padding-block: 27px 44px; border-top: 1px solid var(--album-rule); margin-top: 74px; }
.project-index .album-endnote > span { font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.project-index .album-endnote p { font-size: .875rem; color: var(--album-muted); }
.project-index .album-endnote a { padding-block: 8px; display: inline-flex; gap: 24px; align-items: center; border-bottom: 1px solid var(--album-purple); font-size: .875rem; font-weight: 600; }
.project-sheet .sheet-intro { padding-block: 34px 38px; }
.project-sheet .sheet-topline { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 16px; }
.project-sheet .sheet-category { font-size: .8125rem; line-height: 1.5; padding-bottom: 5px; border-bottom: 1px solid var(--album-purple); }
.project-sheet .sheet-category[data-kind="concept"] { color: var(--album-purple); border-bottom-style: dashed; }
.project-sheet .sheet-intro-grid { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: end; gap: clamp(28px,4.5vw,72px); margin-top: 28px; }
.project-sheet h1 { max-width: 18ch; font-size: clamp(3rem,6.1vw,5.5rem); font-weight: 550; line-height: 1.08; letter-spacing: -.05em; }
.project-sheet .sheet-summary { max-width: 36ch; margin-bottom: 3px; font-size: 1.125rem; line-height: 1.6; color: #4e4e4b; }
.project-sheet.has-long-title .sheet-intro-grid { grid-template-columns: minmax(0,1fr); gap: 25px; }
.project-sheet.has-long-title h1 { max-width: 28ch; font-size: clamp(2.125rem,4.8vw,4.625rem); line-height: 1.15; letter-spacing: -.04em; }
.project-sheet.has-long-title .sheet-summary { max-width: 55ch; }
.project-sheet .sheet-cover img { width: 100%; height: auto; }
.project-sheet :is(.sheet-cover,.sheet-gallery) figcaption { display: flex; justify-content: space-between; gap: 14px 30px; flex-wrap: wrap; margin-top: 13px; color: var(--album-muted); font-size: .75rem; line-height: 1.5; }
.project-sheet .sheet-passport { margin-top: 38px; }
.project-sheet .sheet-passport dl { display: flex; flex-wrap: wrap; gap: 22px 40px; border-top: 1px solid var(--album-ink); border-bottom: 1px solid var(--album-rule); padding-block: 24px 27px; margin: 0; }
.project-sheet .sheet-passport dl > div { min-width: 0; flex: 1 1 135px; }
.project-sheet .sheet-passport dt { font-size: .75rem; line-height: 1.5; color: var(--album-muted); }
.project-sheet .sheet-passport dd { margin: 8px 0 0; font-size: 1rem; font-weight: 550; line-height: 1.5; }
.project-sheet .sheet-story { padding-block: 65px 58px; }
.project-sheet .sheet-story-heading { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 40px; align-items: baseline; margin-bottom: 42px; }
.project-sheet .sheet-story-heading h2 { font-size: clamp(1.875rem,3vw,2.75rem); line-height: 1.16; letter-spacing: -.035em; font-weight: 550; }
.project-sheet .sheet-story-parts { display: grid; gap: 35px; }
.project-sheet .sheet-story-part { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 40px; }
.project-sheet .sheet-story-part h3 { display: flex; gap: 16px; padding-top: 2px; font-size: 1rem; font-weight: 600; line-height: 1.55; letter-spacing: -.01em; }
.project-sheet .sheet-story-part h3 > span { color: var(--album-purple); font-size: .75rem; line-height: 2.1; font-weight: 500; font-variant-numeric: tabular-nums; }
.project-sheet .sheet-story-part p { max-width: 67ch; font-size: 1rem; line-height: 1.75; color: #45464a; }
.project-sheet .sheet-story-part p + p { margin-top: 23px; }
.project-sheet .sheet-legacy-layout { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); align-items: baseline; gap: 40px; }
.project-sheet .sheet-legacy-story { min-width: 0; max-width: 65ch; font-size: 1rem; line-height: 1.75; color: #45464a; }
.project-sheet .sheet-legacy-story > :first-child { margin-top: 0; }
.project-sheet .sheet-legacy-story > :last-child { margin-bottom: 0; }
.project-sheet .sheet-legacy-story p { font-size: 1rem; line-height: 1.75; margin-block: 0 23px; }
.project-sheet .sheet-legacy-story h2 { color: var(--album-ink); font-size: clamp(1.75rem,2.5vw,2.375rem); line-height: 1.25; letter-spacing: -.025em; font-weight: 550; margin-block: 36px 22px; }
.project-sheet .sheet-legacy-story h3 { color: var(--album-ink); font-size: 1.375rem; line-height: 1.35; letter-spacing: -.02em; font-weight: 600; margin-block: 29px 16px; }
.project-sheet .sheet-legacy-story :is(h4,h5,h6) { color: var(--album-ink); font-size: 1.125rem; line-height: 1.4; font-weight: 650; margin-block: 25px 13px; }
.project-sheet .sheet-legacy-story :is(ul,ol) { font-size: 1rem; line-height: 1.75; margin-block: 0 25px; padding-inline-start: 25px; }
.project-sheet .sheet-legacy-story li + li { margin-top: 8px; }
.project-sheet .sheet-legacy-story a { color: var(--album-purple); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; overflow-wrap: anywhere; }
.project-sheet .sheet-legacy-story :is(strong,b) { font-weight: 650; }
.project-sheet .sheet-legacy-story blockquote { margin: 25px 0; padding-inline-start: 22px; border-inline-start: 2px solid var(--album-lavender); }
.project-sheet .sheet-concept-note { display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 40px; margin-top: 42px; padding: 25px; background: #e6e0ef; }
.project-sheet .sheet-concept-note > span { font-size: .75rem; color: var(--album-purple); text-transform: uppercase; letter-spacing: .04em; }
.project-sheet .sheet-concept-note p { max-width: 67ch; font-size: .9375rem; line-height: 1.65; color: #4b4258; }
.project-sheet .sheet-concept-note strong { font-weight: 650; }
.project-sheet .sheet-source { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 16px 30px; border-top: 1px solid var(--album-rule); margin-top: 39px; padding-top: 19px; font-size: .8125rem; color: var(--album-muted); }
.project-sheet .sheet-source a { display: inline-flex; gap: 20px; color: var(--album-ink); padding-block: 6px; border-bottom: 1px solid var(--album-rule); }
.project-sheet .sheet-publications { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--album-rule); }
.project-sheet .sheet-publications h3 { font-size: .875rem; font-weight: 600; margin-bottom: 16px; }
.project-sheet .sheet-publications ul { display: grid; gap: 18px; list-style: none; padding: 0; }
.project-sheet .sheet-publications a { font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.project-sheet .sheet-publications p { margin-top: 6px; color: var(--album-muted); font-size: .8125rem; line-height: 1.65; max-width: 75ch; }
.project-sheet .sheet-gallery { display: grid; gap: 40px; padding-bottom: 60px; }
.project-sheet .sheet-gallery img { width: 100%; height: auto; }
.project-sheet .sheet-inquiry { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 28px 40px; background: #e6e0ef; padding-block: 36px 39px; }
.project-sheet .sheet-inquiry h2 { margin-top: 13px; font-size: clamp(1.75rem,3vw,2.5rem); line-height: 1.2; letter-spacing: -.03em; }
.project-sheet .sheet-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; background: var(--album-ink); color: var(--album-paper); min-height: 56px; padding: 16px 22px; font-size: .875rem; font-weight: 600; line-height: 1.5; }
.project-sheet .sheet-button span { font-size: 1.5rem; line-height: 1; }
.project-sheet .sheet-related { padding-block: 65px 75px; }
.project-sheet .sheet-related-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 20px; margin-bottom: 30px; }
.project-sheet .sheet-related-heading h2 { font-size: clamp(1.875rem,3vw,2.75rem); line-height: 1.2; letter-spacing: -.035em; }
.project-sheet .sheet-related-heading > a { display: inline-flex; align-items: center; gap: 24px; padding-block: 8px; font-size: .875rem; font-weight: 600; border-bottom: 1px solid var(--album-purple); }

@media (max-width: 980px) {
  .project-index .album-intro-grid { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .project-index .album-collection { gap: 10px 20px; margin-top: 18px; }
  .project-index .album-card:nth-child(4n+2) { padding-top: 40px; }
  .project-index .album-card:nth-child(4n+3) { padding-top: 30px; }
  .project-sheet .sheet-intro-grid { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 32px; }
  .project-sheet h1 { font-size: clamp(2.625rem,6vw,4.25rem); }
  .project-sheet .sheet-summary { font-size: 1rem; }
  .project-sheet :is(.sheet-story-heading,.sheet-story-part,.sheet-concept-note,.sheet-legacy-layout) { grid-template-columns: minmax(0,3fr) minmax(0,7fr); gap: 30px; }
}
@media (max-width: 700px) {
  :is(.project-index,.project-sheet) .album-breadcrumb { margin-bottom: 28px; font-size: .75rem; }
  .project-index .album-intro { padding-block: 27px 24px; }
  .project-index .album-intro-grid { grid-template-columns: minmax(0,1fr); gap: 25px; margin-top: 20px; }
  .project-index h1 { font-size: clamp(2.75rem,10vw,4.25rem); }
  .project-index .album-intro-aside > p { max-width: 52ch; }
  .project-index .album-collection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; }
  .project-index .album-collection > span { font-size: 1.5rem; }
  .project-index .album-toolbar { gap: 16px; padding-block: 20px 28px; }
  .project-index .filter { padding: 10px 12px; gap: 9px; font-size: .8125rem; }
  :is(.project-index,.project-sheet) .album-grid { grid-template-columns: minmax(0,1fr); row-gap: 42px; }
  :is(.project-index,.project-sheet) .album-card,
  .project-index .album-card:nth-child(n),
  .project-index:has(.filter[aria-pressed="true"]:not([data-filter="all"])) .album-card { grid-column: auto; padding-top: 0; }
  :is(.project-index,.project-sheet) .album-card h3 { font-size: 1.625rem; }
  :is(.project-index,.project-sheet) .album-card-caption { margin-top: 17px; }
  :is(.project-index,.project-sheet) .album-card-top { padding-top: 11px; margin-bottom: 11px; }
  :is(.project-index,.project-sheet) .album-open { inset-inline-end: 12px; inset-block-end: 12px; }
  .project-index .album-endnote { margin-top: 46px; gap: 13px; padding-block: 24px 35px; }
  .project-index .album-endnote p { width: 100%; }
  .project-sheet .sheet-intro { padding-block: 27px 28px; }
  .project-sheet .sheet-topline { gap: 10px 20px; }
  .project-sheet .sheet-intro-grid { grid-template-columns: minmax(0,1fr); gap: 23px; margin-top: 23px; }
  .project-sheet h1 { max-width: 100%; font-size: clamp(2.25rem,8.5vw,3.875rem); line-height: 1.13; }
  .project-sheet .sheet-summary { max-width: 50ch; }
  .project-sheet :is(.sheet-cover,.sheet-gallery) figcaption { gap: 7px 18px; font-size: .75rem; }
  .project-sheet .sheet-passport { margin-top: 26px; }
  .project-sheet .sheet-passport dl { gap: 20px 23px; padding-block: 21px 23px; }
  .project-sheet .sheet-passport dl > div { flex-basis: 120px; }
  .project-sheet .sheet-passport dd { margin-top: 5px; }
  .project-sheet .sheet-story { padding-block: 40px 38px; }
  .project-sheet .sheet-story-heading { grid-template-columns: minmax(0,1fr); gap: 13px; margin-bottom: 29px; }
  .project-sheet .sheet-story-heading h2 { font-size: 2rem; }
  .project-sheet .sheet-story-parts { gap: 28px; }
  .project-sheet .sheet-story-part { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .project-sheet .sheet-story-part p { line-height: 1.7; }
  .project-sheet .sheet-legacy-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .project-sheet .sheet-legacy-story { max-width: 100%; }
  .project-sheet .sheet-legacy-story h2 { font-size: 1.75rem; }
  .project-sheet .sheet-concept-note { grid-template-columns: minmax(0,1fr); gap: 12px; margin-top: 30px; padding: 20px; }
  .project-sheet .sheet-source { margin-top: 30px; gap: 6px 20px; }
  .project-sheet .sheet-gallery { padding-bottom: 40px; }
  .project-sheet .sheet-inquiry { padding-block: 29px 32px; gap: 23px; }
  .project-sheet .sheet-inquiry h2 { max-width: 16ch; font-size: 2rem; }
  .project-sheet .sheet-related { padding-block: 40px 48px; }
  .project-sheet .sheet-related-heading { margin-bottom: 22px; gap: 12px; }
  .project-sheet .sheet-related-heading h2 { font-size: 2rem; }
}
.series-navigation{margin-top:38px;border-top:1px solid var(--album-rule);padding-top:24px;display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;font-size:.8125rem}
.series-navigation>span{color:var(--album-muted);padding-top:10px}
.series-navigation>div{display:flex;flex-wrap:wrap;gap:8px 12px}
.series-navigation a{display:flex;align-items:center;gap:18px;padding:10px 14px;border:1px solid var(--album-rule);min-height:44px}
.series-navigation a:hover{border-color:var(--album-purple)}
.series-navigation a span{color:var(--album-purple);font-size:.75rem}
.project-index .album-variant,.project-sheet .album-variant{font-size:.875rem;line-height:1.6;color:var(--album-purple);margin:10px 0}
.sheet-series-link{display:inline-flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px;border-bottom:1px solid var(--album-rule);padding-block:10px;font-size:.8125rem}
.sheet-series-link span{color:var(--album-purple)}
.series-list-heading{display:flex;justify-content:space-between;gap:35px;align-items:end;border-top:1px solid var(--album-rule);padding-top:28px;margin-bottom:40px}
.series-list-heading h2{font-size:clamp(1.75rem,3vw,2.8rem);line-height:1.15;font-weight:500}
.series-list-heading p{max-width:42ch;font-size:.875rem;line-height:1.7;color:var(--album-muted)}
.project-series h1{font-size:clamp(2.5rem,5.8vw,5.8rem);overflow-wrap:normal}
@media(max-width:700px){.series-navigation{grid-template-columns:1fr;gap:12px}.series-navigation>span{padding:0}.series-list-heading{display:block}.series-list-heading p{margin-top:20px}.project-series h1{font-size:clamp(2.125rem,8vw,3.8rem)}}
@media (prefers-reduced-motion: reduce) {
  :is(.project-index,.project-sheet) .album-open { transition: none; }
}
@media (max-width: 380px) {
  .project-index h1 { font-size: 2.25rem; letter-spacing: -.05em; }
}
@media(max-width:700px){.series-navigation{margin-top:22px;padding-top:18px}}
@media (hover: hover) {
  .project-index .filter:hover { border-color: var(--album-purple); }
  :is(.project-index,.project-sheet) .album-card-link:hover .album-open { background: var(--album-lavender); }
}

/* Case albums with photographs, project materials and application views. */
.project-sheet .sheet-gallery-grouped{gap:80px}
.sheet-gallery-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.sheet-gallery-heading{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end;border-top:1px solid var(--album-rule);padding-top:28px}
.sheet-gallery-heading h2{font-size:clamp(1.75rem,3vw,2.6rem);font-weight:500;line-height:1.12;letter-spacing:-.035em}
.sheet-gallery-heading p{font-size:.9375rem;line-height:1.6;color:var(--album-muted);max-width:42ch}
.sheet-gallery-group.has-lead>figure:nth-child(2){grid-column:1/-1}
.sheet-gallery-open{display:block;position:relative}
.sheet-gallery-open>span{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:38px;height:38px;background:var(--album-paper);color:var(--album-ink);font-size:1.25rem}
.sheet-gallery-open:focus-visible{outline:3px solid var(--album-purple);outline-offset:5px}
.project-sheet .sheet-gallery-group figcaption>span:last-child{display:none}
@media(max-width:640px){.project-sheet .sheet-gallery-grouped{gap:48px}.sheet-gallery-group{grid-template-columns:1fr;gap:25px}.sheet-gallery-heading{grid-template-columns:1fr;gap:12px;padding-top:24px}.sheet-gallery-heading p{font-size:.875rem}}
