@charset "UTF-8";

/* Shared editorial system. All content remains visible without JavaScript. */
:root {
  --black: #12110f;
  --ink: #24201c;
  --paper: #f7f3ed;
  --white: #fffcf7;
  --nude: #d8c1ad;
  --nude-light: #ebe0d5;
  --muted: #665d54;
  --line: #d3c9bd;
  --dark-line: #ffffff2b;
  --accent: #886345;
  --focus: #967052;
  --serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", Georgia, serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --max: 1280px;
  --pad: clamp(20px, 4.5vw, 64px);
  --header-height: 78px;
  --header-offset: var(--header-height);
  --section-space: clamp(48px, 6vw, 82px);
  --ease: cubic-bezier(.22, .61, .36, 1);
}

* { box-sizing: border-box; }
html { background: var(--black); scroll-padding-top: calc(var(--header-offset) + 24px); }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; }
main { display: block; }
main:focus { outline: none; }
img, video { display: block; max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
::selection { background: var(--nude); color: var(--black); }
h1, h2, h3, h4, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; text-wrap: balance; }
h1 { font-size: clamp(48px, 6.6vw, 92px); line-height: 1.04; letter-spacing: -.045em; }
h2 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.13; letter-spacing: -.035em; }
h3 { font-size: clamp(24px, 2.3vw, 32px); line-height: 1.2; letter-spacing: -.025em; }
h4 { font-size: 17px; line-height: 1.4; font-weight: 600; }
p { text-wrap: pretty; }
strong { font-weight: 600; }
em { font-weight: inherit; }
ul, ol { padding-left: 1.25em; }
li + li { margin-top: .45em; }
[hidden] { display: none !important; }
.shell { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--pad); }
.eyebrow { display: block; font: 500 13px/1.5 var(--sans); letter-spacing: .11em; text-transform: uppercase; }
.lead { max-width: 65ch; font-size: clamp(18px, 1.8vw, 23px); line-height: 1.55; letter-spacing: -.01em; }
.small, .entry-meta, .meta { font-size: 14px; line-height: 1.55; color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[id] { scroll-margin-top: calc(var(--header-offset) + 20px); }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 200; padding: 12px 20px; background: var(--white); color: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

/* The same three destinations stay in view on every route. */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--black); color: var(--white); border-bottom: 1px solid var(--dark-line); transition: box-shadow 180ms ease; }
.site-header[data-scrolled="true"] { box-shadow: 0 4px 20px #00000014; }
.header-inner, .nav { min-height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 14px; font-weight: 500; letter-spacing: .01em; line-height: 1.3; }
.brand-mark { font: 34px/1 var(--serif); letter-spacing: -.1em; padding-right: 3px; color: var(--nude); }
.primary-nav, .nav-links { display: flex; align-items: center; gap: 6px; }
.primary-nav .nav-link, .nav-links > a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; font-size: 14px; font-weight: 500; line-height: 1.3; color: #d8d0c7; border: 1px solid transparent; border-radius: 3px; transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease; }
.primary-nav .nav-link[aria-current="page"], .nav-links > a[aria-current="page"] { background: var(--paper); color: var(--black); border-color: var(--paper); }
.site-header :focus-visible { outline-color: var(--nude); }
.menu-toggle { display: none; }

/* CV opens with identity, followed immediately by the skills. */
.page-intro { padding-block: clamp(42px, 5vw, 70px); border-bottom: 1px solid var(--line); }
.page-intro .eyebrow { color: var(--accent); margin-bottom: 18px; }
.page-intro h1 { max-width: 1000px; }
.page-intro .lead { margin-top: 22px; max-width: 800px; color: var(--muted); }
.cv-intro { background: var(--black); color: var(--paper); border-color: var(--dark-line); padding-block: clamp(34px, 4vw, 52px); }
.cv-intro .eyebrow { color: var(--nude); }
.cv-intro h1 { max-width: 1000px; font-size: clamp(48px, 6.5vw, 84px); }
.cv-intro h1 em { color: var(--nude); }
.cv-intro .lead { max-width: 860px; color: #d6cdc3; }
.intro-summary { max-width: 75ch; margin-top: 16px; color: #bfb2a5; font-size: 16px; line-height: 1.6; }
.cv-jump-links { display: flex; flex-wrap: wrap; gap: 4px 25px; margin-top: 24px; padding-top: 13px; border-top: 1px solid var(--dark-line); }
.cv-jump-links a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; color: #e2d6c9; font-size: 14px; text-decoration: underline; text-decoration-color: #8a7765; text-underline-offset: 6px; }
@media (min-width: 901px) {
  .cv-intro > .shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "eyebrow role" "name summary" "name actions" "name jumps"; column-gap: clamp(36px, 5vw, 68px); row-gap: 16px; align-items: start; }
  .cv-intro .eyebrow { grid-area: eyebrow; margin: 0; padding-top: 5px; }
  .cv-intro h1 { grid-area: name; max-width: 520px; font-size: clamp(62px, 6.5vw, 84px); }
  .cv-intro .lead { grid-area: role; margin: 0; font-size: clamp(20px, 1.8vw, 23px); }
  .cv-intro .intro-summary { grid-area: summary; margin: 0; }
  .cv-intro .intro-actions { grid-area: actions; margin: 2px 0 0; gap: 10px; }
  .cv-intro .intro-actions .button-link { padding-inline: 18px; gap: 16px; }
  .cv-intro .cv-jump-links { grid-area: jumps; margin: 6px 0 0; padding-top: 10px; gap: 2px 24px; }
}
.intro-meta, .intro-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; font-size: 14px; color: var(--muted); }
.cv-intro .intro-meta, .cv-intro .intro-facts { color: #beb2a6; }
.intro-actions, .button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.button-link { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 48px; padding: 12px 22px; border: 1px solid var(--ink); border-radius: 2px; background: var(--ink); color: var(--white); font-size: 14px; font-weight: 500; line-height: 1.4; transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease; }
.button-link.secondary { background: transparent; color: var(--ink); border-color: #a49789; }
.cv-intro .button-link { background: var(--nude); color: var(--black); border-color: var(--nude); }
.cv-intro .button-link.secondary { background: transparent; color: var(--paper); border-color: #8c8074; }
.cv-intro :focus-visible { outline-color: var(--nude); }
.text-link, .inline-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding-block: 8px; border-bottom: 1px solid currentColor; font-size: 14px; font-weight: 500; line-height: 1.5; }
.text-link > span[aria-hidden], .card-link > span[aria-hidden] { flex: none; transition: transform 180ms var(--ease); }
.cv-skills { padding-block: 38px 46px; background: var(--white); border-bottom: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: minmax(140px, .42fr) minmax(0, 1.58fr); gap: 36px; align-items: start; margin-bottom: 34px; }
.section-heading > .eyebrow { padding-top: 8px; color: var(--accent); }
.section-heading h2 em { color: var(--accent); }
.section-heading p { max-width: 65ch; color: var(--muted); margin-top: 14px; }
.cv-skills .section-heading { grid-template-columns: 1fr; gap: 8px; margin-bottom: 24px; }
.cv-skills .section-heading h2 { font-size: clamp(30px, 3vw, 40px); }
.cv-skills .section-heading .eyebrow { padding-top: 0; }
.skills-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 30px; }
.skill-group { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding-top: 18px; border-top: 2px solid var(--nude); }
.skill-group h3 { font: 600 17px/1.35 var(--sans); letter-spacing: -.01em; }
.skill-list { margin: 13px 0 15px; padding: 0; list-style: none; color: var(--muted); font-size: 16px; line-height: 1.5; }
.skill-list li + li { margin-top: 6px; }
.skill-group .text-link { margin-top: auto; font-size: 14px; color: var(--ink); }
.related-links { display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 18px 0 0; padding: 0; list-style: none; }
.related-links li { margin: 0; }
.skill-group .related-links { margin-top: auto; }

/* Full CV: quiet index, readable measure and clearly separated roles. */
.cv-grid { display: grid; grid-template-columns: minmax(180px, .3fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 88px); padding-block: var(--section-space); align-items: start; }
.cv-sidebar { position: sticky; top: calc(var(--header-offset) + 28px); min-width: 0; }
.cv-sidebar > .eyebrow { color: var(--accent); margin-bottom: 14px; }
.section-nav { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.section-nav > .eyebrow { padding-block: 16px 8px; color: var(--accent); font-size: 12px; }
.section-nav a { display: block; padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.45; transition: padding 180ms var(--ease), color 180ms ease; }
.section-nav a[data-active="true"], .section-nav a[aria-current="location"] { color: var(--accent); padding-left: 12px; border-left: 2px solid var(--accent); font-weight: 600; }
.fact-list { margin-top: 28px; font-size: 14px; }
dl.fact-list > div { padding-block: 10px; }
.fact-list dt { color: var(--muted); font-size: 13px; }
.fact-list dd { margin: 3px 0 0; }
ul.fact-list { list-style: none; padding: 0; }
.cv-sidebar p { font-size: 14px; color: var(--muted); margin-top: 20px; }
.cv-content { min-width: 0; }
.cv-section + .cv-section { margin-top: 48px; padding-top: 42px; border-top: 1px solid var(--line); }
.cv-section > h2 { margin-bottom: 28px; }
.cv-section > .eyebrow { margin-bottom: 12px; color: var(--accent); }
.cv-section > p { max-width: 72ch; margin-block: 15px; color: var(--muted); }
.experience-item + .experience-item { margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--line); }
.experience-item h3, .entry-title { font: 600 clamp(19px, 2vw, 23px)/1.35 var(--sans); letter-spacing: -.02em; }
.experience-item .entry-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; }
.experience-item > .entry-meta, .education-item > .entry-meta { margin-top: 0; margin-bottom: 8px; }
.entry-meta > p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--muted); }
.entry-meta > span, .entry-meta > time { min-width: 0; }
.experience-item p { margin-top: 14px; max-width: 72ch; }
.experience-item ul { margin-top: 16px; margin-bottom: 0; max-width: 72ch; }
.experience-item li { color: var(--muted); padding-left: 3px; }
.experience-item li::marker { color: var(--accent); }
.experience-item .text-link { margin-top: 16px; }
.experience-item .related-links .text-link { margin-top: 0; }
.entry-context { color: var(--muted); }
.tag-list, .tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 16px 0 0; padding: 0; }
.tag-list > li, .tags > li, .tag-list > span { padding: 6px 11px; margin: 0; border: 1px solid #c3b3a3; border-radius: 3px; font-size: 13px; line-height: 1.5; color: #5c4d40; }
.software-grid, .education-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.education-grid h3, .software-grid h3 { font: 600 18px/1.4 var(--sans); }
.education-grid p, .software-grid p { margin-top: 8px; color: var(--muted); }
.education-item { padding-block: 22px; border-top: 1px solid var(--line); }
.education-item .entry-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.education-item .entry-title { font-size: 20px; }
.tools-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.tool-group h3 { font: 600 17px/1.4 var(--sans); letter-spacing: 0; }
.interests { padding-top: 18px; }

/* Work hub and individual products: the work leads, each card has a destination. */
.work-section, .discipline-section, .projects-section { padding-block: var(--section-space); }
.discipline-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding-block: 40px var(--section-space); }
.discipline-card { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 28px; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--nude); }
.discipline-card > .eyebrow { color: var(--accent); margin-bottom: 14px; }
.discipline-card h2 { font-size: clamp(30px, 3.2vw, 42px); }
.discipline-card h2 a { display: inline-block; padding-block: 2px; }
.discipline-card > p { max-width: 52ch; margin-top: 16px; color: var(--muted); }
.discipline-card-media { position: relative; display: block; width: 100%; aspect-ratio: 1.7; margin-bottom: 24px; padding: 20px; overflow: hidden; background: var(--nude-light); }
.discipline-card-media img { width: 100%; height: 100%; object-fit: contain; }
.discipline-card-media > span { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--white); color: var(--ink); font-size: 20px; }
.discipline-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; width: 100%; }
.discipline-card-body > .eyebrow { margin-bottom: 12px; color: var(--accent); }
.discipline-card-body > p:not(.eyebrow) { margin-top: 16px; color: var(--muted); }
.discipline-card-body > .text-link { margin-top: 18px; }
.discipline-card-body > .discipline-links { margin-top: 24px; }
.discipline-links { display: flex; flex-direction: column; width: 100%; margin: 24px 0 0; padding: 0; list-style: none; }
.discipline-links li { margin: 0; border-top: 1px solid var(--line); }
.discipline-links a, .discipline-links > a { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 48px; padding: 11px 0; font-size: 15px; font-weight: 500; }
.discipline-links > a { border-top: 1px solid var(--line); }
.discipline-links .text-link { width: 100%; border-bottom: 0; font-weight: 400; }
.discipline-card > .text-link { margin-top: 24px; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 28px; }
.project-card { min-width: 0; }
.project-card-media, .card-art { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1.25; overflow: hidden; padding: clamp(22px, 3vw, 40px); background: #e9e2d8; }
.project-card-media img, .card-art img { width: 100%; height: 100%; object-fit: contain; transition: transform 400ms var(--ease); }
.project-card-body, .card-copy { padding-top: 20px; }
.project-card-body > .eyebrow, .card-copy > .eyebrow { color: var(--accent); margin-bottom: 9px; }
.project-card-body h2, .project-card-body h3, .card-copy h3 { font-size: clamp(29px, 3vw, 39px); }
.project-card-body p, .card-copy p { margin-top: 12px; max-width: 58ch; font-size: 16px; color: var(--muted); }
.card-link, .card-action { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 44px; padding: 8px 0; margin-top: 13px; font-size: 14px; font-weight: 500; border-bottom: 1px solid #a99582; }
.card-arrow { position: absolute; right: 16px; bottom: 16px; display: grid; place-items: center; width: 42px; height: 42px; background: var(--white); border: 1px solid #00000012; border-radius: 50%; font-size: 22px; }
.product-card .project-card-media, .product-card .card-art { background: #e5e8e7; }
.brand-card .project-card-media, .brand-card .card-art { background: #e6d9cc; }
.motion-card .project-card-media, .motion-card .card-art, .image-card .project-card-media, .image-card .card-art { padding: 0; }
.motion-card img, .image-card img { object-fit: cover; }
.project-card.featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; background: var(--black); color: var(--white); }
.featured .project-card-body, .featured .card-copy { padding: clamp(24px, 4vw, 48px); }
.featured .project-card-body p, .featured .card-copy p { color: #d0c4b8; }
.featured .eyebrow { color: var(--nude); }
.featured .project-card-media, .featured .card-art { height: 100%; min-height: 320px; }

/* Existing case-study content shares the same tighter rhythm. */
.case-hero { padding-block: 32px 48px; background: var(--black); color: var(--white); }
.back-link { display: inline-flex; gap: 10px; align-items: center; min-height: 44px; padding-block: 9px; margin-bottom: 22px; color: #d0c4b8; font-size: 14px; }
.case-hero .eyebrow { color: var(--nude); }
.case-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 44px; align-items: end; margin-block: 18px 34px; }
.case-heading h1 { font-size: clamp(48px, 6.8vw, 88px); line-height: 1.03; }
.case-heading h1 em { color: var(--nude); }
.case-heading > p { max-width: 34ch; padding-bottom: 4px; font-size: clamp(19px, 2vw, 25px); line-height: 1.5; color: #d4c8bc; }
.case-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; margin: 0; padding-top: 22px; border-top: 1px solid var(--dark-line); }
.case-meta > div { min-width: 0; }
.case-meta dt { margin-bottom: 6px; color: #bdb0a2; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.case-meta dd { margin: 0; font-size: 15px; line-height: 1.5; }
.case-cover { padding-top: 32px; }
.case-cover > .art { margin: 0; }
.case-cover .art-link { min-height: 0; padding: clamp(18px, 3vw, 38px); }
.case-cover .wide img { max-height: 400px; width: 100%; object-fit: contain; }
.case-cover .cover-poster img { max-height: 480px; width: auto; }
.case-section { padding-block: var(--section-space); border-bottom: 1px solid var(--line); }
.story-grid { display: grid; grid-template-columns: minmax(56px, .2fr) minmax(0, 1.8fr); gap: 42px; }
.section-number { font: 32px/1.2 var(--serif); color: var(--accent); }
.story { min-width: 0; }
.story h2 { max-width: 820px; margin-bottom: 24px; }
.story > p { max-width: 74ch; margin-bottom: 18px; color: var(--muted); font-size: 17px; line-height: 1.7; }
.story > p.lead { max-width: 65ch; font-size: clamp(20px, 2vw, 25px); line-height: 1.5; color: var(--ink); }
.role-panel { margin-top: 28px; padding: 24px 28px; background: var(--nude-light); border-left: 2px solid var(--accent); }
.role-panel .eyebrow { margin-bottom: 10px; color: #6b4f39; }
.role-panel p { max-width: 72ch; font-size: 17px; line-height: 1.6; }
.role-panel p.small { margin-top: 10px; font-size: 14px; color: #6d5b4c; }
.project-timeline { list-style: none; margin: 30px 0 0; padding: 0; border-top: 1px solid var(--line); }
.project-timeline li { display: grid; grid-template-columns: 135px minmax(0, 1fr); gap: 28px; margin: 0; padding-block: 24px; border-bottom: 1px solid var(--line); }
.project-timeline time { padding-top: 4px; font-size: 14px; color: var(--muted); }
.project-timeline h3 { margin-bottom: 9px; font-size: 27px; }
.project-timeline p { font-size: 16px; line-height: 1.65; color: var(--muted); }
.gallery { display: grid; gap: 26px; margin-block: 30px; }
.gallery.two { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.art { min-width: 0; margin-block: 28px; }
.gallery > .art { margin: 0; }
.art-link { position: relative; display: flex; align-items: center; justify-content: center; padding: 24px; overflow: hidden; background: #e9e2d8; }
.art-link img { width: 100%; max-height: 560px; object-fit: contain; }
.art-open { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 15px; padding: 8px 12px; border: 1px solid #00000016; background: var(--white); color: var(--ink); font-size: 13px; line-height: 1.4; transition: background-color 180ms ease; }
.art figcaption, .asset-caption { padding-top: 12px; font-size: 13px; line-height: 1.55; color: var(--muted); }
.wide .art-link { padding: 22px; }
.wide img { width: 100%; max-height: none; }
.portrait-single { max-width: 620px; margin-inline: auto; }
.portrait-single img { max-height: 680px; width: auto; }
.long-art .art-link { max-height: 600px; align-items: flex-start; }
.long-art img { max-height: none; object-fit: contain; object-position: top; }
.long-art .art-open { z-index: 2; }
.long-art .art-link::after { position: absolute; content: ""; left: 0; right: 0; bottom: 0; height: 70px; background: linear-gradient(transparent, #e9e2d8); pointer-events: none; }
.decision-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 30px; }
.decision-grid > div { padding-top: 18px; border-top: 2px solid var(--nude); }
.decision-grid h3 { margin-bottom: 12px; font-size: 25px; }
.decision-grid p { font-size: 16px; line-height: 1.65; color: var(--muted); }
.itinerary { list-style: none; margin: 26px 0 0; padding: 0; border-top: 1px solid var(--line); }
.itinerary li { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 18px; padding-block: 14px; margin: 0; border-bottom: 1px solid var(--line); }
.itinerary time { font-size: 14px; color: var(--muted); }
.event-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin-top: 28px; }
.event-list > div { padding-block: 20px; border-top: 1px solid var(--line); }
.event-list h3 { font-size: 25px; }
.event-list p { margin-top: 8px; font-size: 15px; color: var(--muted); }
.takeaway { margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); }
.supporting-art { margin-block: 30px; border-block: 1px solid var(--line); }
.supporting-art summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 16px; }
.supporting-art summary::-webkit-details-marker { display: none; }
.supporting-art[open] summary > span { transform: rotate(45deg); }
.next-case { padding-block: 48px; background: var(--black); color: var(--white); }
.next-case .eyebrow { margin-bottom: 18px; color: var(--nude); }
.next-case a { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.next-case h2 { font-size: clamp(32px, 4.5vw, 60px); }
.next-case a > span { flex: none; color: var(--nude); font-size: 40px; }

/* Media is deliberate and user initiated. */
.video-shell { margin-bottom: 10px; }
.video-launch { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; padding: 0; border: 0; background: #171715; color: var(--white); }
.video-launch > img { width: 100%; height: 100%; object-fit: cover; }
.video-play { position: absolute; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 12px; padding: 13px 20px; border-radius: 3px; background: var(--white); color: var(--ink); font-size: 14px; font-weight: 500; line-height: 1.4; }
.video-play > span { font-size: 15px; }
.video-shell video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #171715; }
.video-meta { display: flex; justify-content: space-between; gap: 16px; padding-block: 14px; color: var(--muted); font-size: 14px; }
.video-meta a, .video-error a { text-decoration: underline; text-underline-offset: 4px; }
.video-error { padding: 14px; background: var(--nude-light); font-size: 14px; }
.event-reserve { display: grid; grid-template-columns: 1.4fr .7fr; gap: 16px; margin-top: 28px; }
.reserve-main { display: flex; flex-direction: column; justify-content: space-between; min-height: 250px; padding: 24px; border: 1px solid #cbbcaa; background: #e9ddd0; }
.reserve-main .eyebrow { color: #74604f; }
.reserve-word { padding-block: 22px; color: #8c745f; font: 44px/1.06 var(--serif); letter-spacing: -.035em; }
.reserve-main p, .reserve-side > span:last-child { color: #6b5848; font-size: 14px; }
.reserve-side { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 14px; min-height: 160px; padding: 20px; border: 1px solid #cbbcaa; background: #efe6dc; text-align: center; }
.reserve-symbol { color: #8b725d; font-size: 40px; line-height: 1; }

/* Contact and shared footer. */
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding-block: 40px var(--section-space); }
.contact-page .contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding-bottom: 36px; font-style: normal; }
.contact-card { min-width: 0; padding: 28px; border: 1px solid var(--line); background: var(--white); }
.contact-card .eyebrow { margin-bottom: 12px; color: var(--accent); }
.contact-card h2 { font-size: clamp(28px, 3vw, 38px); }
.contact-card p { max-width: 50ch; margin-top: 14px; color: var(--muted); }
.contact-card .text-link { margin-top: 20px; overflow-wrap: anywhere; }
.contact-value { display: block; margin-block: 12px 24px; overflow-wrap: anywhere; font: clamp(21px, 2.1vw, 28px)/1.3 var(--serif); letter-spacing: -.025em; }
.contact-action { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; padding-block: 8px; border-bottom: 1px solid #aa9582; font-size: 14px; line-height: 1.5; }
.contact-location { padding-block: 28px var(--section-space); border-top: 1px solid var(--line); }
.contact-location > .eyebrow { margin-bottom: 12px; color: var(--accent); }
.contact-location p + p { margin-top: 6px; }
.contact-location p:last-child { color: var(--muted); font-size: 14px; }
.contact { padding-block: 48px; background: var(--nude-light); }
.contact .contact-grid { padding-block: 0; align-items: end; gap: 48px; }
.contact h2 { margin-top: 18px; font-size: clamp(38px, 5vw, 66px); }
.contact-detail > p { max-width: 45ch; color: #5d4f43; }
.contact-detail .text-link { margin-top: 18px; }
.contact-detail .location { margin-top: 18px; font-size: 14px; }
.footer, .site-footer { padding-block: 24px; background: var(--black); color: #c9bbad; border-top: 1px solid var(--dark-line); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; font-size: 13px; line-height: 1.5; }
.footer-inner a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; text-decoration: underline; text-underline-offset: 4px; }

/* Native dialog provides keyboard focus containment and Escape dismissal. */
.viewer { width: min(96vw, 1500px); height: 94svh; max-height: 94svh; padding: 0; margin: auto; border: 1px solid #5b4f44; background: #171411; color: var(--white); }
.viewer::backdrop { background: #000000d9; }
.viewer[open] { display: flex; flex-direction: column; }
.viewer-toolbar, .viewer-bottom { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 24px; padding: 12px 20px; }
.viewer-toolbar { border-bottom: 1px solid var(--dark-line); }
.viewer-toolbar p { max-width: 68ch; font-size: 14px; line-height: 1.5; }
.viewer-toolbar > div { display: flex; align-items: center; gap: 16px; }
.viewer button, .viewer a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: inherit; font-size: 14px; white-space: nowrap; }
.viewer button { padding: 8px 12px; border: 1px solid #ffffff40; border-radius: 2px; background: transparent; }
.viewer a { text-decoration: underline; text-underline-offset: 4px; }
.viewer button:disabled { opacity: .35; cursor: default; }
.viewer :focus-visible { outline-color: var(--nude); }
.viewer-stage { display: flex; flex: 1; align-items: center; justify-content: center; min-height: 0; overflow: auto; padding: 20px; background: #28231e; }
.viewer-stage img { width: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.viewer-bottom { border-top: 1px solid var(--dark-line); font-size: 13px; }
body.viewer-open { overflow: hidden; }

/* Subtle movement follows interaction; nothing essential depends on it. */
@media (hover: hover) {
  .primary-nav .nav-link:hover, .nav-links > a:hover { color: var(--white); border-color: #ffffff40; }
  .primary-nav .nav-link[aria-current="page"]:hover, .nav-links > a[aria-current="page"]:hover { color: var(--black); background: var(--nude); border-color: var(--nude); }
  .button-link:hover { background: #45372d; border-color: #45372d; color: var(--white); }
  .button-link.secondary:hover { background: var(--nude-light); color: var(--ink); border-color: #a49789; }
  .cv-intro .button-link:hover { background: var(--paper); color: var(--black); border-color: var(--paper); }
  .cv-intro .button-link.secondary:hover { background: #ffffff0d; color: var(--white); border-color: var(--nude); }
  .project-card:hover .project-card-media img, .project-card:hover .card-art img { transform: scale(1.025); }
  .text-link:hover, .inline-link:hover, .card-link:hover, .back-link:hover { color: var(--accent); }
  .cv-intro .text-link:hover, .case-hero .back-link:hover { color: var(--nude); }
  .text-link:hover > span[aria-hidden], .card-link:hover > span[aria-hidden] { transform: translateX(3px); }
  .discipline-links a:hover, .discipline-card h2 a:hover { color: var(--accent); }
  a.contact-card:hover { background: var(--nude-light); }
  .cv-jump-links a:hover { color: var(--white); text-decoration-color: var(--nude); }
  .art-link:hover .art-open { background: var(--nude); }
  .viewer button:not(:disabled):hover { background: #ffffff12; }
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .motion-ready .reveal-pending { opacity: 0; transform: translateY(12px); }
  .motion-ready .reveal-visible { opacity: 1; transform: none; transition: opacity 500ms var(--ease), transform 500ms var(--ease); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal-pending { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 1000px) {
  .skills-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cv-grid { grid-template-columns: 170px minmax(0, 1fr); gap: 36px; }
  .case-heading { gap: 32px; }
  .case-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .story-grid { grid-template-columns: 52px minmax(0, 1fr); gap: 26px; }
  .decision-grid { grid-template-columns: 1fr; gap: 22px; }
  .decision-grid > div { display: grid; grid-template-columns: minmax(160px, .65fr) minmax(0, 1fr); gap: 24px; }
  .decision-grid h3 { margin: 0; }
}
@media (max-width: 760px) {
  :root { --header-height: 72px; }
  .header-inner, .nav { gap: 14px; }
  .brand { gap: 10px; font-size: 13px; }
  .brand-mark { font-size: 29px; }
  .primary-nav .nav-link, .nav-links > a { padding-inline: 12px; }
  .section-heading { grid-template-columns: 1fr; gap: 12px; margin-bottom: 28px; }
  .section-heading > .eyebrow { padding-top: 0; }
  .cv-grid { grid-template-columns: 1fr; gap: 34px; }
  .cv-sidebar { position: static; }
  .section-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
  .section-nav > .eyebrow { grid-column: 1 / -1; }
  .cv-sidebar .fact-list { display: flex; flex-wrap: wrap; gap: 12px 26px; margin-top: 20px; }
  .cv-sidebar > p { max-width: 60ch; }
  .discipline-card { padding: 23px; }
  .discipline-grid { gap: 20px; }
  .project-grid { gap: 36px 22px; }
  .project-card.featured { grid-template-columns: 1fr; }
  .featured .project-card-media, .featured .card-art { min-height: 0; }
  .case-heading { grid-template-columns: 1fr; gap: 22px; }
  .case-heading > p { max-width: 52ch; }
  .case-heading h1 br { display: none; }
  .story-grid { grid-template-columns: 1fr; gap: 12px; }
  .section-number { font-size: 24px; }
  .role-panel { padding: 22px; }
  .project-timeline li { grid-template-columns: 115px minmax(0, 1fr); gap: 22px; }
  .gallery, .gallery.two { gap: 22px; }
  .art-link, .wide .art-link { padding: 18px; }
  .art-open { right: 8px; bottom: 8px; font-size: 12px; padding: 7px 9px; }
  .contact .contact-grid { gap: 32px; }
  .contact-page .contact-grid { grid-template-columns: 1fr; gap: 18px; }
  .reserve-main { min-height: 220px; }
  .reserve-word { font-size: 38px; }
  .viewer { width: 100vw; height: 100svh; max-height: 100svh; border: 0; }
  .viewer-toolbar, .viewer-bottom { padding: 10px 12px; gap: 12px; }
  .viewer-toolbar { align-items: flex-start; }
  .viewer-toolbar p { font-size: 13px; }
  .viewer-toolbar > div { gap: 8px; }
  .viewer-stage { padding: 12px; }
}
@media (max-width: 540px) {
  :root { --header-height: 104px; }
  .header-inner, .nav { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 4px; padding-block: 6px 8px; }
  .brand { justify-content: center; min-height: 34px; gap: 10px; font-size: 14px; }
  .brand-mark { font-size: 25px; }
  .primary-nav, .nav-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .primary-nav .nav-link, .nav-links > a { min-height: 44px; padding: 9px 5px; font-size: 14px; }
  h1 { font-size: clamp(43px, 11vw, 59px); }
  .page-intro, .cv-intro { padding-block: 34px 38px; }
  .page-intro .eyebrow { font-size: 12px; margin-bottom: 14px; }
  .page-intro .lead { margin-top: 18px; }
  .intro-actions { margin-top: 24px; gap: 10px; }
  .button-link { padding-inline: 17px; }
  .cv-skills { padding-block: 30px 36px; }
  .skills-grid { grid-template-columns: 1fr; gap: 22px; }
  .skill-group { padding-top: 14px; }
  .skill-list { margin-block: 10px 10px; }
  .cv-section + .cv-section { margin-top: 34px; padding-top: 30px; }
  .cv-section > h2 { margin-bottom: 23px; }
  .software-grid, .education-grid, .tools-grid { grid-template-columns: 1fr; gap: 24px; }
  .discipline-grid, .project-grid, .contact-grid { grid-template-columns: 1fr; }
  .discipline-grid, .contact-grid { padding-top: 28px; }
  .discipline-card { padding: 24px; }
  .project-card-media, .card-art { aspect-ratio: 1.25; }
  .case-hero { padding-block: 22px 34px; }
  .back-link { margin-bottom: 15px; }
  .case-heading { margin-top: 16px; margin-bottom: 28px; }
  .case-heading h1 { font-size: clamp(44px, 10.8vw, 58px); }
  .case-meta { gap: 22px 16px; }
  .case-meta dt { font-size: 12px; }
  .case-meta dd { font-size: 14px; }
  .case-cover { padding-top: 22px; }
  .case-cover .cover-poster img { max-height: 410px; }
  .story h2 { margin-bottom: 20px; }
  .story > p { font-size: 16px; }
  .story > p.lead { font-size: 20px; }
  .project-timeline li { grid-template-columns: 1fr; gap: 8px; padding-block: 22px; }
  .project-timeline h3 { font-size: 25px; }
  .gallery.two, .event-list { grid-template-columns: 1fr; }
  .decision-grid > div { display: block; }
  .decision-grid h3 { margin-bottom: 10px; }
  .itinerary li { grid-template-columns: 90px minmax(0, 1fr); gap: 15px; }
  .long-art .art-link { max-height: 460px; }
  .video-play { right: 10px; bottom: 10px; padding: 10px 13px; font-size: 13px; }
  .video-meta { flex-direction: column; gap: 8px; }
  .event-reserve { grid-template-columns: 1fr; gap: 12px; }
  .reserve-main { min-height: 230px; }
  .reserve-side { min-height: 120px; }
  .contact .contact-grid { grid-template-columns: 1fr; gap: 26px; }
  .contact-card { padding: 24px; }
  .footer-inner { align-items: flex-start; }
  .footer-inner > span { width: 100%; }
  .footer-inner > p { width: 100%; }
  .viewer-toolbar { flex-wrap: wrap; }
  .viewer-toolbar p { width: 100%; }
  .viewer-toolbar > div { width: 100%; justify-content: space-between; }
  .viewer-stage { padding: 8px; }
  .viewer-bottom button { padding-inline: 9px; }
}

@media print {
  :root { --ink: #000; --muted: #333; --paper: #fff; }
  body { font-size: 11pt; background: #fff; }
  .site-header, .skip-link, .intro-actions, .cv-jump-links, .cv-sidebar, .footer, .site-footer, .viewer, .next-case { display: none !important; }
  .cv-intro, .cv-skills { color: #000; background: #fff; }
  .cv-intro .lead, .cv-intro .eyebrow { color: #333; }
  .shell { max-width: none; padding-inline: 0; }
  .page-intro, .cv-skills, .cv-grid { padding-block: 18pt; }
  .cv-grid { display: block; }
  .skills-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cv-section, .experience-item, .skill-group { break-inside: avoid; }
  .reveal-pending { opacity: 1 !important; transform: none !important; }
  h1 { font-size: 32pt; }
  h2 { font-size: 22pt; }
  a { text-decoration: underline; }
}

/* Case and collection integration; shared visual tokens come from style.css. */
.breadcrumb{padding-block:16px;font-size:13px;color:var(--muted)}.breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;margin:0;padding:0}.breadcrumb li+li{margin:0}.breadcrumb li+li:before{content:'/';margin-right:12px;color:#9d8c7b}.breadcrumb a:hover{text-decoration:underline;text-underline-offset:4px}.case-intro{background:var(--black);color:var(--paper);padding-top:34px}.case-intro .eyebrow{color:var(--nude)}.case-intro .lead{color:#d6cdc3;max-width:760px}.case-intro h1{font-size:clamp(43px,6vw,80px)}.case-intro .case-meta{margin-top:32px}.timeline-date{font-size:14px;color:var(--muted);padding-top:5px}.case-return{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-block:40px 65px}.case-return .eyebrow{width:100%}.collection-note{padding-block:0 64px}.collection-note h2{margin-block:15px}.collection-note>p:last-child{max-width:760px;color:var(--muted)}.work-collection{padding-block:36px 64px}.work-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 30px}.work-card{min-width:0}.work-card-media{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:1.5;background:#e9e2d8;overflow:hidden;padding:20px}.work-card-media img{width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.work-card-body{padding-top:20px}.work-card-body .eyebrow{font-size:12px;color:var(--accent);margin-bottom:8px}.work-card-body h2{font-size:clamp(27px,3vw,38px);margin-bottom:12px}.work-card-body>p{color:var(--muted);max-width:54ch}.work-card-body .text-link{margin-top:12px}.card-open{position:absolute;right:15px;bottom:15px;border-radius:50%;background:var(--white);width:42px;height:42px;display:grid;place-items:center;font-size:22px}.work-card.product-card .work-card-media{background:#ede9e2;padding:0}.work-card-media:focus-visible{outline-offset:5px}.packaging-viewer{font-family:var(--sans);font-size:14px;line-height:1.5;border-radius:0;background:var(--white)}.pv-stage{height:530px}.pv-models:empty{display:none}.pv-product{font-family:var(--sans)}.pv-source-link{text-decoration:underline}.case-cover .packaging-viewer .pv-credit{font-size:12px}.case-cover .pv-top{padding:22px 28px}.case-cover .pv-tools button{min-height:44px}.case-cover .art img{background:transparent}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.work-card-media:hover img{transform:scale(1.025)}}
@media(max-width:640px){.work-card-grid{grid-template-columns:1fr;gap:35px}.work-collection{padding-block:26px 45px}.work-card-media{aspect-ratio:1.35}.work-card-body h2{font-size:30px}.pv-stage{height:360px}.pv-top{padding:18px}.pv-credit,.pv-hint{padding-inline:18px}.case-return{padding-block:32px 48px}.breadcrumb{font-size:12px}.case-intro .case-meta{margin-top:24px}}
@media print{.breadcrumb,.case-return,.video-launch,.packaging-viewer{display:none}.work-card-grid{display:block}.work-card{break-inside:avoid}}
.work-page .page-intro,.category-page .page-intro{padding-block:32px 36px}.work-page .page-intro h1,.category-page .page-intro h1{font-size:clamp(43px,5vw,67px)}.work-shortcuts{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}.work-shortcuts a{display:inline-flex;align-items:center;gap:18px;min-height:44px;border-bottom:1px solid #b5a18e;font-size:14px}.work-page .discipline-card-media{aspect-ratio:1.9}.work-page .discipline-card{padding:24px}.work-page .discipline-card-body h2{font-size:34px}
@media(max-width:540px){.work-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.work-shortcuts a{font-size:13px}.work-page .discipline-card{padding:18px}}
@media(max-width:540px){.primary-nav .nav-link{font-size:13px;white-space:nowrap}}
.contact-more{padding-block:0 60px}.contact-more h2{margin-top:12px}.supporting-art{border-block:1px solid var(--line);margin-top:25px}.supporting-art summary{padding-block:18px;cursor:pointer;font-weight:500}.supporting-art .art{margin-top:10px}
.project-documents{margin-block:22px 35px}.document-link{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;border-block:1px solid var(--line)}.document-link+.document-link{border-top:0}.document-link strong{font-size:18px}.document-link p{font-size:13px;color:var(--muted);margin:6px 0 0}.document-link .button-link{flex-shrink:0;font-size:14px}.publication-pages .art-link{padding:18px;background:#e5e1dc}.publication-pages img{max-height:640px}.publication-reader{margin-top:30px;border-block:1px solid var(--line)}.publication-reader summary{padding:22px 4px;cursor:pointer;font-weight:500}.publication-reader[open] summary{border-bottom:1px solid var(--line)}.results-note{border-left:3px solid var(--nude);padding:8px 0 8px 22px;margin-top:30px}.results-note p{font-size:14px;margin-top:8px}.academic-portfolio{border-top:1px solid var(--line);padding-top:28px;margin-top:30px}.academic-portfolio h3{font-size:27px}.academic-portfolio p{margin-block:14px}.publication-card .work-card-media{background:#e5e1dc}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:900px){.discipline-grid .discipline-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.discipline-grid .discipline-card:last-child:nth-child(odd) .discipline-card-media{margin-bottom:0}}
@media(max-width:640px){.document-link{align-items:flex-start;flex-direction:column;gap:18px}.document-link .button-link{width:100%;justify-content:center}.publication-pages .art-link{padding:12px}.publication-reader summary{font-size:16px}.academic-portfolio h3{font-size:24px}}
.work-card-media.spread-preview{gap:14px;align-items:stretch}.work-card-media.spread-preview img{width:calc(50% - 7px);height:100%;object-fit:contain}
.decision-grid.four-decisions{grid-template-columns:repeat(2,minmax(0,1fr))}.decision-grid.four-decisions>div{display:block}
.gallery.single-artwork{grid-template-columns:1fr;max-width:900px;margin-inline:auto}
@media(max-width:760px){.decision-grid.four-decisions{grid-template-columns:1fr}}

/* Compact case navigation and optional supporting evidence. */
.case-outline{margin-top:1.5rem;max-width:54rem;border-block:1px solid var(--line,#d6cec6);padding:.6rem 0}
.case-outline summary,.supporting-evidence>summary{cursor:pointer;min-height:44px;display:list-item;padding:.65rem 0;font-size:.95rem;font-weight:500}
.case-outline nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.1rem 1.5rem;padding:.4rem 0 .8rem}
.case-outline nav a{display:block;padding:.6rem 0;font-size:.95rem;line-height:1.5;text-decoration:underline;text-underline-offset:.2em}
.supporting-evidence{border-block:1px solid var(--line,#d6cec6);margin:1.5rem 0;padding:.5rem 0}
.supporting-evidence[open]>summary{margin-bottom:1rem}
.case-return>.text-link{display:inline-flex;align-items:center;min-height:44px;margin:.75rem 0 .75rem 1rem}
@media(max-width:600px){.case-outline nav{grid-template-columns:1fr}.case-return>.text-link{margin-left:0}}

.film-access{margin-block:1.5rem 3rem}.film-transcript{max-width:60rem}.film-transcript p{font-size:1rem;line-height:1.7;max-width:68ch}.film-transcript .event-transcript-time{display:inline-block;min-width:3.3rem;font-variant-numeric:tabular-nums;color:var(--muted,#665f58)}.film-transcript .event-transcript-note{font-size:.9rem;color:var(--muted,#665f58)}

.video-caption-toggle{display:block;min-height:44px;padding:.6rem .9rem;margin:.75rem 0 0;border:1px solid #aca298;border-radius:4px;color:#26211c;background:#f8f5f0;font:inherit;font-size:.9rem;cursor:pointer}.video-caption-toggle[aria-pressed=true]{background:#26211c;color:#fff}.video-caption-toggle:focus-visible{outline:3px solid #897456;outline-offset:3px}

/* Draw link arrows as monochrome strokes so phones cannot substitute emoji. */
.link-arrow { display:inline-block; position:relative; width:.9em; height:.9em; margin-left:.2em; flex:none; vertical-align:-.04em; color:inherit; }
.link-arrow::before { content:""; position:absolute; width:.82em; height:1.5px; left:0; top:.48em; background:currentColor; transform:rotate(-45deg); }
.link-arrow::after { content:""; position:absolute; width:.5em; height:.5em; right:.08em; top:.1em; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; }
.link-arrow-up { transform:rotate(-45deg); }
a.text-link:hover, a.text-link:focus-visible { text-decoration:underline; text-underline-offset:.25em; }
.br-original::after { content:""; display:inline-block; width:.65em; height:.65em; margin-left:.5em; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; }
.text-link:hover > .link-arrow-up { transform:translateY(-3px) rotate(-45deg); }

.brochure-card{display:grid;grid-template-columns:minmax(150px,.65fr) 1.35fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(1.3rem,4vw,3rem);margin:2rem 0;background:#e9e3da;border:1px solid #c7beb4}.brochure-card .brochure-cover{display:block;max-width:270px;margin:auto;transform:rotate(-3deg);box-shadow:7px 8px 0 #d4cec6,10px 16px 28px #18140e25;transition:transform .25s}.brochure-card .brochure-cover:hover{transform:rotate(0)}.brochure-card img{display:block;width:100%;height:auto}.brochure-card h3{font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:400;line-height:1.15;margin:.7rem 0}.brochure-card p{font-size:1rem;line-height:1.7}.brochure-card .button-link{font-size:1rem;margin-top:.5rem}.communication-paths{display:grid;gap:0;margin-top:2rem}.communication-path{display:grid;grid-template-columns:130px 1fr;gap:2rem;padding:2rem 0;border-top:1px solid #c7beb4;align-items:center}.communication-path:last-child{border-bottom:1px solid #c7beb4}.communication-path img{width:100%;max-height:185px;object-fit:contain;box-shadow:3px 4px 12px #0002}.communication-path h3{font-size:1.4rem;margin:0 0 .6rem}.communication-path p{font-size:1rem;margin:.7rem 0;line-height:1.7}.brochure-open{overflow:hidden}.brochure-reader{width:min(1440px,calc(100vw - 32px));height:calc(100dvh - 32px);max-width:none;max-height:none;padding:0;border:1px solid #c6bcae;background:#f6f3ef;color:#181714;overflow:hidden;box-sizing:border-box}.brochure-reader[open]{display:flex;flex-direction:column}.brochure-reader::backdrop{background:#131210c9}.br-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid #c7beb4}.br-header h2{font-family:Georgia,serif;font-size:clamp(1.2rem,2vw,1.65rem);font-weight:400;margin:.25rem 0 0;line-height:1.2}.br-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.09em;color:#685e51;margin:0}.brochure-reader button,.brochure-reader select{font:inherit;font-size:1rem;min-height:42px;background:#fffcf7;color:#181714;border:1px solid #b6aa9b;padding:.5rem .8rem;border-radius:3px;cursor:pointer}.brochure-reader button:hover{background:#e4ddd2}.brochure-reader button:disabled{opacity:.38;cursor:default}.brochure-reader :focus-visible{outline:3px solid #ac7737;outline-offset:2px}.br-close{flex:none}.br-toolbar{display:flex;align-items:center;gap:1.3rem;padding:.75rem 1.5rem;flex-wrap:wrap}.br-toolbar label{font-size:.9rem;display:flex;align-items:center;gap:.5rem}.br-zoom{display:flex;align-items:center;gap:.5rem}.br-scale{font-size:.9rem;min-width:3rem;text-align:center}.br-original{font-size:.9rem;margin-left:auto}.br-viewport{flex:1;min-height:160px;overflow:auto;padding:0;background:#dcd5ca;overscroll-behavior:contain;touch-action:pan-x pan-y;perspective:1800px}.br-book{position:relative;display:flex;width:max-content;margin:20px auto;gap:0;isolation:isolate}.br-page{height:var(--br-page-height,400px);position:relative;flex:none;background:white;box-shadow:4px 6px 16px #261f1238}.br-page img{display:block;width:auto;height:100%;max-width:none;object-fit:contain;user-select:none}.is-spread .br-page:first-child::after{content:'';position:absolute;inset:0 0 0 auto;width:20px;background:linear-gradient(90deg,transparent,#0002);pointer-events:none}.is-spread .br-page:last-child::after{content:'';position:absolute;inset:0 auto 0 0;width:16px;background:linear-gradient(90deg,#0002,transparent);pointer-events:none}.turn-next{animation:brochure-next .45s ease-out;transform-origin:left center}.turn-prev{animation:brochure-prev .45s ease-out;transform-origin:right center}@keyframes brochure-next{from{transform:rotateY(-14deg);opacity:.55}to{transform:rotateY(0);opacity:1}}@keyframes brochure-prev{from{transform:rotateY(14deg);opacity:.55}to{transform:rotateY(0);opacity:1}}.br-footer{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1.5rem;border-top:1px solid #c7beb4}.br-count{font-size:1rem;margin:0;text-align:center}.br-access{padding:0 1.5rem .8rem;max-height:28vh;overflow:auto}.br-hint{font-size:.85rem;margin:0 0 .5rem;color:#665d52}.br-access summary{font-size:.9rem;cursor:pointer}.br-text p{white-space:pre-wrap;font-size:1rem;line-height:1.7}.br-error{position:absolute;inset:1rem;background:white;padding:1rem}.br-toolbar [hidden]{display:none}.launch-lemon-swabsticks>img{background:#f5f1e9}.refined-products .work-card-media[href="lemon-swabsticks.html"]{background:#ece7dd}
@media(max-width:760px){.brochure-card{grid-template-columns:1fr}.brochure-card .brochure-cover{max-width:200px}.communication-path{grid-template-columns:90px 1fr;gap:1.3rem}.brochure-reader{width:100vw;height:100dvh;border:0;margin:0;max-height:100dvh}.br-header{padding:.8rem 1rem}.br-kicker{display:none}.br-toolbar{gap:.6rem;padding:.6rem 1rem}.br-toolbar label:nth-of-type(2){display:none}.br-fit{display:none}.br-original{margin-left:0;font-size:.85rem}.br-footer{padding:.7rem 1rem}.br-count{font-size:.9rem}.br-access{padding:0 1rem .7rem}.br-hint{display:none}.br-zoom{gap:.2rem}.brochure-reader button,.brochure-reader select{min-height:44px;padding:.4rem .6rem}.br-toolbar label{gap:.4rem}.brochure-reader .br-page{box-shadow:2px 3px 12px #261f1238}}
@media(prefers-reduced-motion:reduce){.turn-next,.turn-prev{animation:none}.brochure-cover{transition:none!important;transform:none!important}}
.communication-path{grid-template-columns:minmax(200px,.7fr) 1.3fr}.communication-proof{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:1rem}.communication-proof img:first-child{box-shadow:none}.communication-proof img{max-height:220px}.communication-path .text-link{font-size:1rem}@media(max-width:760px){.communication-path{grid-template-columns:1fr}.communication-proof{width:100%;max-width:300px}.communication-proof img{max-height:200px}}
.brochure-card h2{font-family:Georgia,serif;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:400;line-height:1.15;margin:.7rem 0}
.communication-proof a{display:block}.communication-proof a:first-child img{box-shadow:none}.communication-proof a:last-child img{box-shadow:3px 4px 12px #0002}

/* Keep every reader control reachable on short screens and at browser zoom. */
.brochure-reader{overflow-y:auto;overscroll-behavior:contain}
.br-header,.br-toolbar,.br-footer,.br-access{flex-shrink:0}
.br-viewport{min-height:80px}
.br-access{min-height:2.5rem}
.br-access summary{min-height:32px;padding-block:4px}
.br-original{display:inline-flex;align-items:center;min-height:44px}
@media(max-height:480px){.br-header{padding-block:.5rem}.br-toolbar{padding-block:.4rem}.br-footer{padding-block:.4rem}.br-access{max-height:35dvh}.br-header h2{font-size:1.15rem}.br-kicker,.br-hint{display:none}}

.brochure-card .brochure-cover{width:100%}

.family-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:28px;padding:18px 0;border-top:1px solid #d8d0c8;border-bottom:1px solid #d8d0c8}.family-nav a{font-size:.9rem;text-underline-offset:5px}.family-nav a:focus-visible{outline:2px solid currentColor;outline-offset:5px}.case-section{scroll-margin-top:16px}

/* Event films use the same quiet framing as the artwork galleries. */
.event-film{margin-block:32px 40px;min-width:0}
.event-film-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px}
.event-film-heading h3{font-size:clamp(20px,2.2vw,27px);line-height:1.3;margin:0}
.event-film-heading>span{flex-shrink:0;font-size:13px;color:var(--muted)}
.event-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#151515;color:var(--white);border:1px solid var(--line)}
.event-film video:focus-visible,.event-film-overview summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.event-film figcaption,.event-media-credit{font-size:13px;line-height:1.6;color:var(--muted);padding-top:12px}
.event-film-overview{border-bottom:1px solid var(--line);margin-top:14px}
.event-film-overview summary{cursor:pointer;padding:12px 0;font-size:14px;min-height:44px}
.event-film-overview p{font-size:14px;line-height:1.7;margin:0 0 18px}
.event-archive-context{border-top:1px solid var(--line)}
@media(max-width:640px){.event-film-heading{display:block}.event-film-heading>span{display:block;margin-top:7px}.event-film{margin-block:24px 30px}}

.africa-event-gallery .event-tote-photo .art-link img{aspect-ratio:4/3}

.event-transcript-time{display:inline-block;min-width:3.8em;font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.event-film-transcript p{margin-block:0 14px}.event-film-transcript .event-transcript-note{color:var(--muted);margin-bottom:20px}

/* Actual event photography fills its frame; design artwork keeps its existing mat. */
.work-card-media.event-photo-card,
.discipline-card-media.event-photo-card { padding: 0; }
.event-photo-card img { object-fit: cover; object-position: var(--photo-position, 50% 50%); }
.event-photo .art-link { padding: 0; }
.event-photo .art-link img { display: block; width: 100%; height: auto; max-height: none; }
.event-hero .art-link img { aspect-ratio: 16 / 9; object-fit: cover; object-position: var(--photo-position, 50% 50%); }
.event-photo figcaption { font-size: 14px; line-height: 1.65; max-width: 85ch; }
.event-photo-grid { gap: 32px 26px; }
.event-photo-wide { grid-column: 1 / -1; }
.event-photo-grid .art-open { font-size: 12px; }
@media (max-width: 640px) {
 .event-hero .art-link img { aspect-ratio: 4 / 3; }
 .event-photo-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
 .event-photo .art-open { font-size: 12px; padding: 8px 10px; }
}

/* October 2026 audit: restrained glass surfaces, readable evidence, clear destinations. */
/* Header clearance belongs to the scroll container, not both offsets. */
html { scroll-padding-top: calc(var(--header-offset) + 16px); }
[id] { scroll-margin-top: 16px; }
.site-header { background: #191613; }
.work-page, .category-page { background: radial-gradient(ellipse 950px 720px at 0 450px, #d8bda37a, transparent 78%), radial-gradient(ellipse 880px 820px at 100% 1000px, #cad3c76b, transparent 78%), var(--paper); }
.work-page .page-intro { border-bottom: 0; padding-bottom: 22px; }
.work-page .page-intro .lead { max-width: 720px; }
.work-areas { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; padding-block: 12px 70px; }
.area-card { grid-column: span 2; min-width: 0; display: flex; flex-direction: column; border: 1px solid #c9bdaf; border-radius: 16px; background: #fffcf7; box-shadow: 0 6px 24px #44332109, inset 0 1px 0 #fff; transition: transform 220ms var(--ease), border-color 180ms, box-shadow 220ms, background 180ms; }
.area-card:nth-child(-n+2) { grid-column: span 3; }
.area-visual { display: block; position: relative; aspect-ratio: 1.72; overflow: hidden; margin: 9px 9px 0; border-radius: 10px; background: #eae4dc; }
.area-card:nth-child(-n+2) .area-visual { aspect-ratio: 2.1; }
.area-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms var(--ease); }
.area-visual.product-still { background: #ede9e2; padding: 0; }
.area-visual.product-still img { object-fit: contain; }
.area-visual.brand-still { background: linear-gradient(145deg, #d7dbe3, #b5bdce); }
.area-visual.brand-still img { position: absolute; object-fit: contain; height: auto; width: 72%; border: 1px solid #ffffffc7; box-shadow: 0 9px 20px #161b3633; }
.area-visual.brand-still img:first-child { top: 8%; right: 5%; transform: rotate(5deg); }
.area-visual.brand-still img:last-child { bottom: 10%; left: 5%; transform: rotate(-5deg); }
.area-body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.area-body .eyebrow { font-size: 11px; color: #73533b; margin-bottom: 10px; }
.area-body h2 { font-size: clamp(27px, 2.6vw, 37px); letter-spacing: -.025em; line-height: 1.12; margin: 0; }
.area-body p:not(.eyebrow) { margin: 13px 0 22px; color: #5f554c; font-size: 15px; line-height: 1.55; }
.area-cta { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: auto; padding-top: 14px; border-top: 1px solid #bdb0a27a; font-size: 13px; font-weight: 500; }
.area-arrow { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #fffaf1; border: 1px solid #c3b4a4; font-size: 19px; transition: background 180ms, color 180ms, transform 220ms; }
.area-card:focus-visible { outline: 3px solid #6f503b; outline-offset: 5px; border-color: #886345; box-shadow: 0 12px 32px #4433211c; }
.area-card:focus-visible .area-arrow { background: #332a23; color: #fff; }
.category-switcher { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 24px; padding: 10px; border: 1px solid #c9bdaf; border-radius: 14px; background: #fffcf7; box-shadow: inset 0 1px 0 #fff, 0 3px 14px #44332105; width: fit-content; max-width: 100%; }
.category-switcher a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border-radius: 8px; font-size: 13px; line-height: 1.35; border: 1px solid transparent; transition: background 160ms, border-color 160ms; }
.category-switcher a[aria-current=page] { background: #332a23; color: #fffaf2; }
.category-switcher a:focus-visible { outline-offset: 2px; }
.events-intro-grid > .category-switcher { grid-column: 1/-1; margin-top: 0; }
.events-intro-grid { row-gap: 24px; }
.research-intro-note { max-width: 780px; margin-top: 14px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.case-intro { padding-block: 30px 36px; }
.case-intro h1 { font-size: clamp(40px, 5.2vw, 72px); }
.case-intro .lead { margin-top: 18px; font-size: clamp(18px, 1.7vw, 22px); }
.case-intro .case-meta { margin-top: 24px; }
.case-intro .case-outline { margin-top: 18px; }
.case-intro :focus-visible { outline-color: #d8c1ad; }
.category-page .work-card-body h2, .category-page .work-card-body h3 { font-size: clamp(27px, 3vw, 38px); margin-bottom: 12px; }
.category-page .work-card-media { border-radius: 10px; }
.work-card-link { display: flex; flex-direction: column; height: 100%; padding: 10px; border: 1px solid #d3c9bd; border-radius: 14px; background: #fffcf7; transition: border-color 180ms, box-shadow 180ms; }
.work-card-link .work-card-body { padding: 20px 12px 12px; display: flex; flex-direction: column; flex: 1; }
.work-card-link .work-card-body > .text-link { align-self: flex-start; margin-top: auto; padding-top: 18px; }
.work-card-link .work-card-body > p:last-of-type { margin-bottom: 10px; }
.work-card-link:focus-visible { outline: 3px solid #6f503b; outline-offset: 5px; border-color: #886345; }
.film-card .work-card-media { padding: 0; aspect-ratio: 16/9; }
.film-card .work-card-media img { object-fit: cover; }
.research-photo.work-card-media { padding: 0; background: #eee9e1; }
.research-photo.work-card-media img { object-fit: contain; }
.research-tile.work-card-media, .research-photo.work-card-media { min-height: 250px; }
.research-tile .card-open { display: none; }
.concept-tag { position: absolute; bottom: 14px; left: 14px; max-width: calc(100% - 82px); padding: 6px 9px; font-size: 11px; font-weight: 500; background: #fffcf7f2; border: 1px solid #d0c2b4; border-radius: 4px; color: #332a23; }
.concept-presentation .art-link { padding: 0; background: #eee9e1; border-radius: 12px; overflow: hidden; }
.concept-presentation .art-link img { width: 100%; max-height: 750px; object-fit: contain; }
.concept-presentation figcaption { max-width: 82ch; line-height: 1.6; }
.presentation-note { margin-top: 18px; padding: 18px 22px; border-left: 2px solid #886345; background: #ebe0d54d; color: #5f554c; font-size: 14px; line-height: 1.65; }
.presentation-note a { text-decoration: underline; text-underline-offset: 3px; }
.research-diagram { display: flex; flex-direction: column; justify-content: center; gap: 18px; width: 100%; align-self: stretch; padding: clamp(18px, 3vw, 34px); background: #ebe7e1; }
.research-diagram .diagram-label { font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #675748; }
.research-diagram .diagram-title { font: 400 clamp(24px, 3vw, 36px)/1.1 var(--serif); color: #29231f; max-width: 17ch; }
.diagram-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.diagram-steps span { display: block; padding: 10px; border: 1px solid #bbaea0; background: #fffcf7; font-size: 13px; color: #3c322a; }
.diagram-steps b { color: #85654b; font-size: 11px; margin-right: 7px; }
.research-tile.work-card-media { padding: 0; }
.research-board { border: 1px solid #c6b8a7; background: linear-gradient(145deg, #f0e5d7, #ece9e3); border-radius: 12px; padding: clamp(22px, 4vw, 48px); }
.research-board > .eyebrow { color: #73533b; margin-bottom: 14px; }
.research-board h2 { max-width: 750px; font-size: clamp(30px, 4vw, 48px); }
.research-board > p { margin-top: 18px; max-width: 78ch; color: #5f554c; }
.research-board ol { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.research-board li { margin: 0; padding: 22px 18px; border: 1px solid #c9bdaf; border-radius: 8px; background: #fffcf7; }
.research-board li > span { color: #73533b; font-size: 12px; font-weight: 600; }
.research-board h3 { font-size: 25px; margin-top: 14px; }
.research-board li p { margin-top: 14px; color: #5f554c; font-size: 14px; line-height: 1.6; }
.research-board .board-footnote { font-size: 13px; border-top: 1px solid #c5b8a7; padding-top: 18px; }
.research-board .text-link { margin-top: 10px; }
.contact-section { background: radial-gradient(ellipse at 15% 25%, #e4cfba8c, transparent 60%); }
.contact-card { border-radius: 12px; box-shadow: inset 0 1px 0 #fff, 0 5px 20px #44332107; }
@supports ((backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))) {
  .site-header { background: #191613dc; -webkit-backdrop-filter: blur(22px) saturate(115%); backdrop-filter: blur(22px) saturate(115%); border-bottom-color: #ffffff24; }
  .area-card, .work-card-link, .category-switcher, .contact-card { background: linear-gradient(135deg, #ffffffb8, #fffaf26b); -webkit-backdrop-filter: blur(22px) saturate(115%); backdrop-filter: blur(22px) saturate(115%); border-color: #fffdf4; box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 #d2c2b17a, 0 0 0 1px #9b816129, 0 10px 28px #5d493112; }
}
@media (hover: hover) {
  .work-card-link:hover { border-color: #bd9675; box-shadow: inset 0 1px 0 #fff, 0 12px 30px #44332124; }
  .work-card-link:hover .card-open { background: #332a23; color: #fff; }
  .area-card:hover { background: linear-gradient(135deg, #ffffffe6, #fffaf28c); border-color: #bd9675; box-shadow: inset 0 1px 0 #fff, 0 14px 32px #44332126; }
  .area-card:hover .area-arrow { background: #332a23; color: #fff; }
  .category-switcher a:not([aria-current]):hover { background: #e9dccd; border-color: #bda790; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .work-card-link:hover .work-card-media img { transform: scale(1.025); }
  .area-card:hover { transform: translateY(-4px); }
  .area-card:hover .area-visual:not(.brand-still) img { transform: scale(1.035); }
  .area-card:hover .area-arrow { transform: rotate(8deg); }
  .area-card:hover .brand-still img:first-child { transform: translateY(-3px) rotate(7deg); }
  .area-card:hover .brand-still img:last-child { transform: translateY(-3px) rotate(-3deg); }
}
@media (max-width: 1000px) {
  .work-areas { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .area-card, .area-card:nth-child(-n+2) { grid-column: auto; }
  .area-card:last-child { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; }
  .area-card:last-child .area-visual { margin: 9px; aspect-ratio: auto; min-height: 230px; }
  .area-card:nth-child(-n+2) .area-visual { aspect-ratio: 1.72; }
  .research-board ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .work-areas { grid-template-columns: 1fr; gap: 20px; padding-bottom: 45px; }
  .area-card:last-child { grid-column: auto; display: flex; }
  .area-card:last-child .area-visual { margin: 9px 9px 0; aspect-ratio: 1.72; min-height: 0; }
  .area-body { padding: 20px; }
  .area-body h2 { font-size: 31px; }
  .area-body p:not(.eyebrow) { margin-bottom: 16px; }
  .category-switcher { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 4px; padding: 7px; }
  .category-switcher a { padding-inline: 8px; font-size: 12px; justify-content: flex-start; }
  .research-board ol { grid-template-columns: 1fr; }
  .research-board li { padding: 18px; }
  .research-board h3 { margin-top: 6px; }
  .research-board li p { margin-top: 8px; }
  .research-diagram { gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .area-card, .area-visual img, .area-arrow, .category-switcher a { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .area-card, .work-card-link, .category-switcher, .contact-card { background: #fffcf7; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .site-header { background: #191613; backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media (forced-colors: active) {
  .area-card, .work-card-link, .category-switcher, .contact-card, .research-board, .research-board li { background: Canvas; border: 1px solid CanvasText; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .category-switcher a[aria-current=page] { border: 2px solid LinkText; }
}
@media print {
  .area-card, .work-card-link, .category-switcher, .contact-card, .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
  .category-switcher { display: none; }
  .work-areas { display: block; }
  .area-card { break-inside: avoid; margin-bottom: 20px; }
}

/* Newly curated identity, publication and packaging cases. */
.case-jump-nav { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.case-jump-nav a { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; border:1px solid currentColor; border-radius:30px; font-size:13px; text-decoration:none; transition:background .2s ease,color .2s ease; }
.case-intro .case-jump-nav a { color:#eadbc9; border-color:#6c6155; }
.case-jump-nav a:hover { background:#eadbc9; color:#191610; }
.case-source-links { display:flex; gap:20px; flex-wrap:wrap; margin-top:26px; }
.collection-heading { padding:5px 0 28px; max-width:760px; }
.collection-heading h2 { margin:8px 0 14px; font-size:clamp(30px,3.5vw,44px); }
.collection-heading p:last-child { color:var(--muted); }
.publication-pair { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.publication-pair .art { margin:0; }
.publication-pair .art-link { padding:clamp(20px,3vw,36px); background:#e7e2dc; }
.publication-pair .art-link img { max-height:600px; width:auto; box-shadow:0 8px 22px #25201914; }
.cannula-showcase { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(24px,5vw,70px); padding-block:44px; }
.cannula-image { border-radius:14px; background:#fff; overflow:hidden; padding:25px; }
.cannula-image img { width:100%; height:480px; object-fit:contain; }
.cannula-intro h2 { font-size:clamp(34px,4vw,53px); line-height:1.08; margin:16px 0 24px; }
.cannula-intro p:not(.eyebrow) { max-width:38ch; color:var(--muted); }
.cannula-intro .button-link { margin-top:24px; }
.cannula-card .work-card-media { background:#fff; }
.logo-section { padding-block:40px 20px; }
.logo-section-intro { max-width:64ch; margin-bottom:32px; color:var(--muted); }
.logo-collection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:42px 28px; }
.logo-project { min-width:0; display:flex; flex-direction:column; }
.logo-project .logo-art { margin:0; }
.logo-art .art-link { padding:clamp(24px,4vw,58px); min-height:255px; border:1px solid #dedbd5; background:#fff; border-radius:12px; }
.logo-art .art-link img { width:100%; max-height:140px; object-fit:contain; }
.logo-art figcaption { display:none; }
.logo-art .art-open { font-size:11px; padding:6px 10px; }
.logo-copy { padding:24px 4px 0; }
.logo-copy h2 { font-size:32px; margin-bottom:12px; }
.logo-copy p { color:var(--muted); font-size:16px; line-height:1.65; max-width:54ch; }
.logo-copy .text-link { margin-top:12px; font-size:14px; }
.logo-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.logo-pair .art-link { padding:28px 20px 45px; height:255px; }
.logo-overview-card .work-card-media { background:#fff; gap:24px; padding:40px; }
.logo-overview-card .work-card-media img { width:45%; height:140px; }
.alcohol-card .work-card-media { gap:24px; background:#e6e3df; padding:32px; }
.alcohol-card .work-card-media img:first-child { width:56%; transform:rotate(-5deg); }
.alcohol-card .work-card-media img:last-of-type { width:37%; max-height:230px; transform:rotate(5deg); }
.pouch-art .art-link, .carton-face-art .art-link { min-height:380px; }
.pouch-art img { max-height:340px; }
@media (max-width:760px) {
 .cannula-showcase { grid-template-columns:1fr; gap:26px; }
 .cannula-image img { height:370px; }
 .publication-pair { gap:18px; }
 .logo-art .art-link { padding:28px 22px 50px; }
 .logo-pair { gap:8px; }
 .logo-pair .art-link { padding:18px 12px 50px; }
 .logo-pair .art-open { font-size:10px; right:4px; left:4px; justify-content:center; gap:5px; }
}
@media (max-width:640px) {
 .logo-collection { grid-template-columns:1fr; gap:32px; }
 .logo-art .art-link { min-height:220px; }
 .logo-pair .art-link { height:220px; }
 .publication-pair { grid-template-columns:1fr; }
 .publication-pair .art-link img { max-height:470px; }
 .pouch-art .art-link,.carton-face-art .art-link { min-height:250px; }
 .case-jump-nav { gap:8px; }
 .case-jump-nav a { font-size:12px; padding:10px 13px; }
}
@media (prefers-reduced-motion:reduce) { .case-jump-nav a { transition:none; } }
.featured-publication { grid-column:1 / -1; }
.featured-publication .work-card-link { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(22px,4vw,50px); }
.featured-publication .work-card-body { padding:24px 26px 24px 0; }
@media(max-width:640px) { .featured-publication .work-card-link { display:block; } .featured-publication .work-card-body { padding:20px 7px 7px; } }
.logo-portfolio .viewer-stage { background:#fff; padding:clamp(24px,5vw,70px); }
.logo-portfolio .viewer-stage img { max-width:100%; max-height:100%; }
/* Source mapped renders already include their own framing and studio ground. */
.work-card.product-card .work-card-media { aspect-ratio: 4/3; }
.refined-products .work-card .cover-face-masks img,
.refined-products .work-card .cover-iv-securement-dressings img { padding: 0; background: #ede9e2; }
.curated-image img[src*="packaging-covers/"] { padding: 0; background: #ede9e2; }

/* Shared semantic type scale. Keep source artwork and the identity mark independent. */
:root {
  --type-display: 4rem;
  --type-section: 2.5rem;
  --type-title: 1.75rem;
  --type-lead: 1.25rem;
  --type-body: 1rem;
  --type-small: .875rem;
  --type-label: .75rem;
}
@media (max-width: 640px) {
  :root { --type-display: 2.5rem; --type-section: 2rem; --type-title: 1.5rem; }
}
@media screen {
  body { font-size: var(--type-body); }
  h1, .page-intro h1, .cv-intro h1, .case-intro h1, .case-heading h1,
  .work-page .page-intro h1, .category-page .page-intro h1, .refined-product .page-intro h1, .events-heading h1 { font-size: var(--type-display); }
  h2, .cv-skills .section-heading h2, .collection-heading h2, .cannula-intro h2,
  .research-board h2, .contact h2, .next-case h2 { font-size: var(--type-section); }
  h3, .area-body h2, .work-card-body h2, .work-card-body h3,
  .category-page .work-card-body h2, .category-page .work-card-body h3,
  .project-card-body h2, .project-card-body h3, .card-copy h3,
  .discipline-card h2, .work-page .discipline-card-body h2, .contact-card h2,
  .logo-copy h2, .project-timeline h3, .decision-grid h3, .event-list h3,
  .academic-portfolio h3, .gallery-introduction h3, .research-board h3,
  .research-diagram .diagram-title, .launch-copy h3,
  .decision-study .evidence-metrics dd, .brochure-card h2, .brochure-card h3,
  .communication-path h3, .event-film-heading h3 { font-size: var(--type-title); }
  .lead, .cv-intro .lead, .case-intro .lead, .story > p.lead, .case-heading > p,
  .contact-value, .entry-title, .experience-item h3, .education-item .entry-title,
  .education-grid h3, .software-grid h3, .decision-study h3, .br-header h2,
  .events-introduction .lead { font-size: var(--type-lead); }
  h4, .story > p, .role-panel p, .area-body p:not(.eyebrow),
  .skill-group h3, .tool-group h3, .project-summary dd, .design-result p,
  .event-list p, .discipline-links a, .case-meta dd,
  .collection-heading p, .logo-copy p, .events-connection, .pv-product { font-size: var(--type-body); }
  .small, .entry-meta, .meta, .intro-meta, .intro-facts, .family-date,
  .breadcrumb, .brand, .primary-nav .nav-link, .nav-links > a,
  .button-link, .text-link, .inline-link, .area-cta, .category-switcher a,
  .case-jump-nav a, .family-nav a, .section-nav a, .cv-jump-links a,
  .case-outline summary, .supporting-evidence > summary, .case-outline nav a,
  .work-shortcuts a, .contact-action, .card-link, .card-action,
  .art figcaption, .curated-image figcaption, .asset-caption, .art-open,
  .curated-grid.blades .art-open, .curated-grid.blades figcaption,
  .logo-art .art-open, .logo-pair .art-open, .family-support .art figcaption,
  .research-intro-note, .presentation-note, .diagram-steps span,
  .research-board li p, .research-board .board-footnote,
  .role-panel p.small, .document-link p, .results-note p,
  .tag-list > li, .tags > li, .tag-list > span, .fact-list dt,
  .launch-study figcaption, .footer-inner, .viewer-toolbar p, .viewer-bottom,
  .video-play, .video-meta, .video-caption-toggle, .film-transcript .event-transcript-note,
  .pv-dimension, .pv-hint, .pv-credit, .refined-product .pv-dimension, .refined-product .pv-hint, .refined-product .pv-credit,
  .refined-product .pv-models button, .case-cover .packaging-viewer .pv-credit,
  .brochure-card .button-link, .communication-path .text-link,
  .brochure-reader button, .brochure-reader select, .br-toolbar label, .br-scale,
  .br-original, .br-count, .br-hint, .br-access summary,
  .unite-document > span, .unite-case-nav, .melomed-credit, .melomed-film-note,
  .melomed-section-nav a, .event-film-heading > span,
  .event-film figcaption, .event-media-credit, .event-jump a,
  .booth-status, .booth-credit { font-size: var(--type-small); }
  .family-card-range { font-size: var(--type-small) !important; }
  .eyebrow, .page-intro .eyebrow, .area-body .eyebrow, .work-card-body .eyebrow,
  .section-nav > .eyebrow, .project-summary dt, .case-meta dt,
  .research-diagram .diagram-label, .diagram-steps b, .research-board li > span,
  .concept-tag, .launch-copy .eyebrow, .design-result h3,
  .pv-eyebrow, .refined-product .pv-eyebrow, .pv-stage-label, .br-kicker { font-size: var(--type-label); }
  .document-link strong { font-size: var(--type-body); }
  .section-number { font-size: var(--type-title); }
  .art-open { gap: 8px; }
}

/* Contribution comes first; original project evidence and shared type scale stay intact. */
.work-curated .page-intro { padding-bottom: 36px; }
.work-curated .page-intro .lead { max-width: 760px; }
.work-curated .category-switcher { margin-top: 28px; }
.work-curated .collection-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; max-width: none; padding: 0; margin-bottom: 28px; }
.work-curated .collection-heading .eyebrow { font-size: var(--type-label); }
.work-curated .collection-heading h2 { margin: 10px 0 0; }
.work-curated .collection-heading > p { max-width: 40ch; color: var(--muted); font-size: var(--type-body); }
.work-highlights { padding-block: 32px 62px; }
.highlight-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.highlight-card { display: flex; flex-direction: column; border: 1px solid #d4c7b8; border-radius: 16px; overflow: hidden; background: linear-gradient(130deg,#ffffffd9,#f0e6dba6); box-shadow: inset 0 1px 0 #fff,0 10px 28px #3c281308; backdrop-filter: blur(20px); transition: border-color 200ms,box-shadow 200ms; }
.highlight-visual { aspect-ratio: 1.35; overflow: hidden; background: #e9e5de; }
.highlight-visual img { width: 100%; height: 100%; object-fit: cover; }
.highlight-visual.pack img { object-fit: contain; }
.highlight-visual.publication { padding: 24px; background: #cbd8d8; }
.highlight-visual.publication img { object-fit: contain; filter: drop-shadow(0 8px 10px #283b3b30); }
.highlight-visual.event img { object-position: center; }
.highlight-body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.highlight-body h3 { font-family: var(--serif); font-size: var(--type-title); line-height: 1.17; margin: 12px 0 16px; letter-spacing: -.035em; }
.highlight-body > p:not(.eyebrow) { font-size: var(--type-body); line-height: 1.65; color: var(--muted); margin-bottom: 24px; }
.highlight-project { display: flex; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid var(--line); margin-top: auto; font-size: var(--type-small); font-weight: 600; }
.practice-collection { padding-block: 20px 70px; border-top: 1px solid var(--line); }
.practice-collection .collection-heading { margin-top: 30px; }
.practice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.practice-card { display: grid; grid-template-columns: 145px 1fr; gap: 24px; padding: 20px; border: 1px solid #d0c1b0; border-radius: 14px; background: linear-gradient(120deg,#ffffffcc,#ede2d78f); box-shadow: inset 0 1px 0 #fff,0 5px 20px #4e311008; backdrop-filter: blur(20px); min-width: 0; transition: border-color 200ms,box-shadow 200ms; }
.practice-card .area-visual { aspect-ratio: 1; height: auto; align-self: start; border-radius: 8px; overflow: hidden; background: #e8e4dc; }
.practice-card .area-visual img { position: static; display: block; width: 100%; height: 100%; object-fit: cover; transform: none; filter: none; max-width: none; }
.practice-card .area-visual.product-still img { object-fit: contain; }
.practice-card .area-visual.brand-still img { object-fit: contain; background: #e5e8ef; }
.practice-card .area-body { padding: 0; min-width: 0; }
.practice-card h3 { font: 500 var(--type-lead)/1.3 var(--sans); margin-bottom: 12px; letter-spacing: -.025em; }
.practice-card .area-body > p:not(.eyebrow) { color: var(--muted); font-size: var(--type-small); line-height: 1.6; }
.practice-card .area-cta { display: flex; justify-content: space-between; margin-top: 16px; font-size: var(--type-small); }
.practice-card .area-body .eyebrow { margin: 14px 0 0; color: var(--muted); font-size: var(--type-label); }
.practice-card:last-child { grid-column: 1/-1; width: 100%; }
.practice-card:last-child .area-body > p:not(.eyebrow) { max-width: 62ch; }
.contribution-collection .work-card-body > :is(h2,h3) { margin-top: 0; margin-bottom: 12px; }
.contribution-collection .work-card-body > p:not([class]) { color: var(--ink); }
.contribution-collection .work-card-body > .eyebrow { margin-top: 20px; margin-bottom: 12px; color: var(--muted); font-size: var(--type-label); }
.contribution-collection .priority-card { grid-column: 1/-1; }
.contribution-collection .priority-card > .work-card-link { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 20px; }
.contribution-collection .priority-card .work-card-body { padding: 28px; }
.contribution-collection .priority-card .work-card-media { aspect-ratio: 1.5; height: auto; width: 100%; min-width: 0; }
.contribution-collection .priority-card .work-card-body > h2 { font-size: var(--type-section); }
.contribution-collection #annual-programme { margin-top: 36px; border-top: 1px solid var(--line); }
.contribution-collection :is(#annual-programme,#event-projects,#identity,#communication,#image-craft) { scroll-margin-top: 16px; }
.identity-composition { padding: 32px; display: grid; grid-template-rows: 1.3fr 1fr; background: #fffefa; }
.identity-composition-main { display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 16px 20px 28px; border-bottom: 1px solid var(--line); }
.identity-composition-main img { width: 100%; height: auto; }
.identity-composition-main span { text-align: center; color: var(--muted); font-size: var(--type-small); }
.identity-composition-pair { display: flex; align-items: center; gap: 32px; padding-top: 24px; }
.identity-composition-pair img { width: calc(50% - 16px); height: auto; max-height: 75px; object-fit: contain; }
.contribution-intro .lead { max-width: 820px; }
@media (hover:hover) {
 .highlight-card:hover,.practice-card:hover { border-color: #967458; box-shadow: inset 0 1px 0 #fff,0 12px 32px #4e31101a; }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .highlight-card,.practice-card { transition: transform 220ms,border-color 200ms,box-shadow 200ms; }
 .highlight-card:hover,.practice-card:hover { transform: translateY(-3px); }
}
.highlight-card:focus-visible,.practice-card:focus-visible { outline: 3px solid var(--ink); outline-offset: 5px; }
@media (max-width:1000px) {
 .highlight-grid { gap: 16px; }
 .highlight-body { padding: 20px; }
 .practice-card { grid-template-columns: 100px 1fr; gap: 20px; }
}
@media (max-width:760px) {
 .work-curated .collection-heading { display: block; }
 .work-curated .collection-heading > p { margin-top: 18px; max-width: 60ch; }
 .highlight-grid { grid-template-columns: 1fr; gap: 24px; }
 .highlight-card { display: grid; grid-template-columns: .85fr 1fr; }
 .highlight-visual { aspect-ratio: auto; height: 100%; min-height: 250px; }
 .highlight-body { padding: 22px; }
 .practice-grid { grid-template-columns: 1fr; }
 .practice-card { grid-template-columns: 130px 1fr; }
 .practice-card:last-child { max-width: none; }
 .contribution-collection .priority-card > .work-card-link { grid-template-columns: minmax(0,1fr); gap: 0; }
 .contribution-collection .priority-card .research-tile { aspect-ratio: auto; }
 .contribution-collection .priority-card .work-card-body { padding: 24px 14px 18px; }
}
@media (max-width:500px) {
 .highlight-card { display: flex; }
 .highlight-visual { aspect-ratio: 1.5; min-height: 0; }
 .highlight-body { padding: 24px; }
 .practice-card { grid-template-columns: 84px 1fr; padding: 18px; gap: 16px; }
 .work-highlights { padding-top: 22px; padding-bottom: 44px; }
 .identity-composition { padding: 22px; }
 .identity-composition-main { padding: 12px 8px 20px; gap: 20px; }
 .identity-composition-pair { gap: 18px; }
 .identity-composition-pair img { width: calc(50% - 9px); }
}
@media (prefers-reduced-motion:reduce) { .highlight-card,.practice-card { transition: none; } }
@media (forced-colors:active) { .highlight-card,.practice-card { border: 1px solid CanvasText; } }

/* Shared visual language: warm canvas, curved outlines and quiet, solid surfaces.
   CSS only: no extra images, downloads, scroll listeners or continuous motion. */
:root {
  --portfolio-canvas: #eee7de;
  --portfolio-surface: #fffcf6;
  --portfolio-edge: #c9b49d;
  --portfolio-dark: #24211d;
  --portfolio-radius: 28px;
  --portfolio-glow: 0 0 20px #bb936616, inset 0 1px 0 #fff;
}
.page-main:not(.home-page) {
  background: radial-gradient(ellipse 850px 660px at 0 180px,#d4b69430,transparent 75%),
    radial-gradient(ellipse 850px 850px at 100% 1000px,#cfb6921c,transparent 75%),var(--portfolio-canvas);
}
/* Opaque surfaces avoid recomputing background blur while scrolling. */
.site-header { background: var(--portfolio-dark); backdrop-filter: none; -webkit-backdrop-filter: none; }
.primary-nav .nav-link { border-radius: 10px; }
.button-link { border-radius: 12px; }
.page-main :is(.area-card,.work-card-link,.category-switcher,.contact-card,.highlight-card,.practice-card,.event-year-tab) {
  backdrop-filter: none; -webkit-backdrop-filter: none;
}
.page-main :is(.work-card-link,.contact-card,.area-card,.highlight-card,.practice-card) {
  background: var(--portfolio-surface); border: 1px solid var(--portfolio-edge);
  border-radius: var(--portfolio-radius); box-shadow: var(--portfolio-glow);
}
.page-main :is(.work-card-media,.brand-preview,.area-visual) { border-radius: 18px; }
.page-main .category-switcher { background: var(--portfolio-surface); border-color: var(--portfolio-edge); border-radius: 18px; box-shadow: var(--portfolio-glow); }
.page-main .category-switcher a { border-radius: 10px; }
.page-main .category-switcher a[aria-current=page] { background: var(--portfolio-dark); }
/* Curved introduction edges echo the homepage. Artwork retains its own colours. */
.page-main:not(.home-page) > :is(.page-intro,.events-opening) {
  position: relative; isolation: isolate; overflow: hidden;
  border-bottom: 1px solid var(--portfolio-edge); border-radius: 0 0 38px 38px;
  box-shadow: 0 8px 24px #a77b4c12;
}
.page-main:not(.home-page) > :is(.page-intro,.events-opening)::before {
  content: ''; position: absolute; z-index: -1; pointer-events: none;
  width: 740px; height: 700px; top: -450px; right: -230px;
  border: 1px solid #b98c605c; border-radius: 46% 54% 66% 34% / 42% 40% 60% 58%;
  box-shadow: 0 0 22px #bc926b24,inset 0 0 22px #bc926b16;
}
.page-main > .case-intro { background: var(--portfolio-dark); }
.page-main > .case-intro::before { border-color: #d2a98770; }
/* Group each case-study chapter without changing the media inside it. */
.page-main > .case-section { padding-block: 22px; border-bottom: 0; }
.page-main > .case-section > .shell {
  width: calc(100% - 2 * var(--pad)); max-width: calc(var(--max) - 2 * var(--pad));
  padding: clamp(24px,3vw,42px); background: var(--portfolio-surface);
  border: 1px solid var(--portfolio-edge); border-radius: var(--portfolio-radius);
  box-shadow: var(--portfolio-glow);
}
.page-main :is(.role-panel,.design-result,.brand-conclusion,.presentation-note) { border-radius: 0 18px 18px 0; }
.page-main :is(.art-link,.brand-evidence .art-link,.packaging-viewer,.research-board,.brand-publication,.brochure-card,.event-results-number) { border-radius: 20px; }
.page-main :is(.video-launch,.video-shell video,.event-film video) { border-radius: 20px; }
.page-main video:fullscreen { border-radius: 0; }
.page-main .event-impact-grid { border-radius: var(--portfolio-radius); border-color: #8a7056; background: var(--portfolio-dark); box-shadow: 0 0 24px #b38c5c1c; }
.page-main .event-year-tab { background: var(--portfolio-surface); border-color: var(--portfolio-edge); border-radius: 18px; }
.page-main .event-year-tab[aria-selected=true] { background: var(--portfolio-dark); color: #f8f3eb; }
.page-main .case-return { padding-block: 32px 48px; }
.page-main .case-return .button-link { background: var(--portfolio-dark); }
.site-footer { background: var(--portfolio-dark); }
@media (hover:hover) {
  .page-main :is(.work-card-link,.contact-card,.area-card,.highlight-card,.practice-card):hover { background: #fffdf9; border-color: #967458; box-shadow: var(--portfolio-glow); }
}
/* One explicit introduction treatment across collections, cases and contact. */
.page-main > .portfolio-hero {
  --ink: #f8f3eb; --muted: #d6cabc; --accent: #dfbd9b; --line: #776451; --focus: #f0d2b2;
  background: var(--portfolio-dark); color: var(--ink); padding-block: 36px 40px;
}
.page-main > .portfolio-hero.has-breadcrumb { padding-top: 0; }
.portfolio-hero > .breadcrumb { padding-block: 18px 26px; color: #c9b9a7; }
.portfolio-hero .breadcrumb li + li::before { color: #b79c80; }
.portfolio-hero h1 em { color: #dfbd9b; }
.portfolio-hero :is(.eyebrow,.events-heading .eyebrow) { color: var(--accent); }
.portfolio-hero :is(.lead,.research-intro-note,.event-impact-footnote) { color: var(--muted); }
.portfolio-hero .button-link { background: #e6cfb4; border-color: #e6cfb4; color: #24211d; }
.portfolio-hero .button-link:hover { background: #f4e3ce; }
.portfolio-hero :focus-visible { outline-color: #f0d2b2; }
.portfolio-hero .section-proof { margin-top: 26px; }
.portfolio-hero .section-proof-item strong { color: #edcfad; }
.portfolio-hero .brand-section-nav a { border-color: #a78d71; }
.portfolio-hero .event-impact-grid { background: #302920; }
.collection-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 24px 48px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.collection-summary > p { display: flex; align-items: center; gap: 20px; }
.collection-summary strong { font: 400 3.4rem/1 var(--serif); color: #edcfad; }
.collection-summary span { font-size: var(--type-small); }
.collection-summary small { color: var(--muted); font-size: .78rem; }
.collection-summary .button-link { margin-left: auto; }
/* Collections and contextual blocks now have the same visible boundaries as case chapters. */
.page-main > .portfolio-chapter {
  width: calc(100% - 2 * var(--pad)); max-width: calc(var(--max) - 2 * var(--pad));
  margin-block: 32px; padding: clamp(24px,3vw,42px);
  background: var(--portfolio-surface); border: 1px solid var(--portfolio-edge);
  border-radius: var(--portfolio-radius); box-shadow: var(--portfolio-glow);
}
.portfolio-chapter .work-card-grid { gap: 28px; }
.portfolio-chapter .work-card-link { background: #f3ede5; border-color: #ded0c0; box-shadow: none; }
.portfolio-chapter .work-card-body { padding: 22px 16px 16px; }
.portfolio-chapter .work-card-body h3 { font-size: var(--type-title); margin-bottom: 12px; }
/* All packaging previews share one source-rendered studio surface and frame. */
.page-main img.packaging-cover { background: #ede9e2; }
.work-card.product-card .packaging-cover-media { aspect-ratio: 4/3; padding: 0; background: #ede9e2; }
.work-card.product-card .packaging-cover-media img { display: block; padding: 0; object-fit: contain; }
.collection-heading { max-width: 780px; margin-bottom: 30px; }
.collection-heading .eyebrow { color: var(--accent); margin-bottom: 12px; }
.collection-heading h2 { margin-bottom: 16px; }
.collection-heading > p:last-child { color: var(--muted); max-width: 68ch; }
.project-overview-title { font-size: var(--type-title); margin-bottom: 10px; }
.family-overview .family-date { margin-bottom: 0; }
.family-overview .project-summary { margin-top: 20px; }
.family-overview .family-nav { margin-top: 24px; padding-bottom: 0; border-bottom: 0; }
.project-guide { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.project-guide article { border-top: 1px solid var(--portfolio-edge); padding-top: 20px; }
.project-guide .eyebrow { color: var(--accent); margin-bottom: 12px; }
.project-guide h3 { font-size: var(--type-title); margin-bottom: 14px; }
.project-guide p { color: var(--muted); font-size: var(--type-small); }
.page-main > .collection-next { background: #e8dccd; }
.collection-next h2 { font-size: var(--type-title); margin-top: 12px; }
.collection-next .category-switcher { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding: 0; background: transparent; border: 0; box-shadow: none; }
.collection-next .category-switcher a { background: var(--portfolio-surface); border: 1px solid #c7b198; padding: 12px 18px; white-space: normal; }
.collection-next .category-switcher a:hover { background: #24211d; color: #fff6e8; }
.page-main > .portfolio-chapter[id] { scroll-margin-top: 16px; }
@media (max-width:760px) {
  .project-guide { grid-template-columns: 1fr; gap: 24px; }
  .collection-summary .button-link { margin-left: 0; }
}
@media (max-width:640px) {
  :root { --portfolio-radius: 24px; }
  .page-main > .portfolio-hero { padding-block: 28px 32px; }
  .page-main > .portfolio-hero.has-breadcrumb { padding-top: 0; }
  .portfolio-hero > .breadcrumb { padding-block: 16px 24px; }
  .page-main > .portfolio-chapter { width: calc(100% - 24px); max-width: none; padding: 24px 20px; margin-block: 24px; }
  .portfolio-chapter .work-card-grid { gap: 24px; }
  .portfolio-chapter .work-card-body { padding-inline: 12px; }
  .collection-heading { margin-bottom: 24px; }
  .collection-next .category-switcher { display: grid; grid-template-columns: 1fr; }
  .collection-next .category-switcher a { text-align: left; }
  .collection-summary { gap: 20px; }
  .collection-summary > p { align-items: flex-start; gap: 16px; }
  .page-main:not(.home-page) > :is(.page-intro,.events-opening) { border-radius: 0 0 28px 28px; }
  .page-main > .case-section { padding-block: 14px; }
  .page-main > .case-section > .shell { width: calc(100% - 24px); max-width: none; padding: 24px 20px; }
  .page-main :is(.work-card-media,.brand-preview,.area-visual,.art-link,.brand-evidence .art-link,.packaging-viewer) { border-radius: 16px; }
}
@media (forced-colors:active) {
  .page-main > .portfolio-hero { --ink: CanvasText; --muted: CanvasText; --accent: CanvasText; --line: CanvasText; background: Canvas; color: CanvasText; }
  .portfolio-hero :is(.breadcrumb,h1 em,.section-proof-item strong,.button-link),.collection-summary strong { color: CanvasText; }
  .page-main > .portfolio-chapter { background: Canvas; color: CanvasText; border-color: CanvasText; box-shadow: none; }
  .page-main:not(.home-page),.site-header,.site-footer { background: Canvas; color: CanvasText; }
  .page-main:not(.home-page) > :is(.page-intro,.events-opening)::before { display: none; }
  .page-main :is(.work-card-link,.contact-card,.area-card,.highlight-card,.practice-card,.category-switcher,.event-impact-grid,.event-year-tab),.page-main > .case-section > .shell { background: Canvas; color: CanvasText; border-color: CanvasText; box-shadow: none; }
}
@media print {
  .page-main > .portfolio-hero { --ink: black; --muted: black; --accent: black; --line: black; background: white; color: black; }
  .portfolio-hero :is(.breadcrumb,h1 em,.section-proof-item strong),.collection-summary strong { color: black; }
  .page-main > .portfolio-chapter { width: 100%; max-width: none; background: white; padding: 16pt 0; border: 0; border-radius: 0; box-shadow: none; }
  .collection-next { display: none; }
  .page-main:not(.home-page) { background: white; }
  .page-main:not(.home-page) > :is(.page-intro,.events-opening)::before { display: none; }
  .page-main > .case-section > .shell { width: 100%; max-width: none; padding: 0; border: 0; border-radius: 0; background: white; box-shadow: none; }
  .page-main :is(.work-card-link,.contact-card,.area-card,.highlight-card,.practice-card,.category-switcher) { box-shadow: none; }
}
