/* HAQ / Foundation. Fluid values share a 4px spacing rhythm. */
:root {
  color-scheme: light;
  --color-charcoal: #292823;
  --color-ivory: #f3f0e8;
  --color-stone: #e2dfd6;
  --color-stone-grey: #626259;
  --color-bronze: #795c3e;
  --color-bronze-light: #c9b28f;
  --color-line: #c9c5b9;
  --color-dark-muted: #c3c0b5;
  --paper: var(--color-ivory);
  --ink: var(--color-charcoal);
  --dark: var(--color-charcoal);
  --gold: var(--color-bronze);
  --line: var(--color-line);
  --muted: var(--color-stone-grey);
  --font-display: Georgia, 'Times New Roman', serif;
  --font-body: 'DM Sans', sans-serif;
  --font-ui: Manrope, 'DM Sans', sans-serif;
  --text-label: 0.6875rem;
  --text-small: 0.8125rem;
  --text-body: clamp(0.9375rem, 0.9rem + 0.16vw, 1.0625rem);
  --text-lead: clamp(1.125rem, 1rem + 0.5vw, 1.5rem);
  --text-h3: clamp(1.625rem, 1.25rem + 1.1vw, 2.5rem);
  --text-h2: clamp(2.5rem, 1.5rem + 3.5vw, 5.25rem);
  --text-h1: clamp(3.5rem, 2rem + 5.4vw, 8.25rem);
  --text-hero: clamp(5rem, 2rem + 10.5vw, 12.5rem);
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 8rem;
  --gutter: clamp(1.25rem, 5vw, 6rem);
  --container: 90rem;
  --edge: max(var(--gutter), calc((100vw - var(--container)) / 2));
  --section-space: clamp(4.5rem, 8vw, 8rem);
  --grid-gap: clamp(1.5rem, 3.2vw, 3rem);
  --header-height: 5.5rem;
  --control-height: 3.25rem;
  --ease: cubic-bezier(.22,.68,.22,1);
  --motion-fast: 180ms;
  --motion-ui: 240ms;
  --motion-card: 380ms;
  --motion-reveal: 640ms;
  --motion-hero: 760ms;
  --motion-page: 220ms;
}

@media (max-width: 1199px) {
  :root { --header-height: 5rem; }
}
@media (max-width: 600px) {
  :root { --header-height: 4.5rem; --gutter: 1.25rem; --text-h1: clamp(2.8rem, 11.5vw, 4.25rem); --text-h2: clamp(2.25rem, 9vw, 3.25rem); }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1.5rem); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: var(--text-body); -webkit-font-smoothing: antialiased; }
body.locked { overflow: hidden; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; color: inherit; border: 0; background: none; }
button:disabled { cursor: default; opacity: .5; }
a { color: inherit; text-decoration: none; }
a, button, summary { touch-action: manipulation; }
:focus-visible { outline: 2px solid var(--color-bronze); outline-offset: 5px; }
[hidden] { display: none !important; }
img { display: block; width: 100%; height: auto; }
svg { display: block; width: 24px; height: 24px; flex-shrink: 0; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; letter-spacing: -.045em; line-height: 1.04; text-wrap: balance; }
h1 { font-size: var(--text-h1); }
h2 { font-size: var(--text-h2); }
h3 { font-size: var(--text-h3); }
h1 em, h2 em { font-weight: 400; color: var(--gold); }
p { line-height: 1.8; text-wrap: pretty; }
small { font-size: var(--text-small); }
address { font-style: normal; }
::selection { background: var(--color-bronze-light); color: var(--ink); }
.container { margin-inline: var(--edge); }
.section { padding: var(--section-space) var(--edge); }
.section-heading > p { max-width: 36rem; margin-top: var(--space-6); color: var(--muted); }
.eyebrow { display: flex; align-items: center; gap: .75rem; font-family: var(--font-ui); font-size: var(--text-label); font-weight: 500; letter-spacing: .13em; line-height: 1.6; margin-bottom: var(--space-6); }
.eyebrow > span { width: 5px; height: 5px; background: currentColor; flex-shrink: 0; }
.gold { color: var(--gold); }
.skip { position: fixed; left: 1rem; top: -6rem; z-index: 500; background: var(--paper); color: var(--ink); padding: 1rem; }
.skip:focus { top: 1rem; }
.no-script { padding: 1.5rem var(--edge); }
.read-progress { position: fixed; left: 0; top: 0; height: 2px; background: var(--color-bronze-light); z-index: 250; width: 100%; transform: scaleX(0); transform-origin: left; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--control-height); padding: 0 0 0 1.4rem; background: var(--ink); color: var(--paper); border: 1px solid var(--ink); font-family: var(--font-ui); font-size: var(--text-small); line-height: 1.3; transition: background var(--motion-ui), color var(--motion-ui); }
.button i { min-width: var(--control-height); height: var(--control-height); display: grid; place-items: center; border-left: 1px solid currentColor; }
.button svg { width: 20px; height: 20px; transition: transform var(--motion-ui) var(--ease); }
.button:hover { background: var(--color-bronze); border-color: var(--color-bronze); }
.button:hover svg { transform: translate(2px,-2px); }
.button.cream { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.button.cream:hover { background: var(--color-bronze-light); border-color: var(--color-bronze-light); }
.button.outline { background: transparent; color: var(--ink); }
.button.outline:hover { background: var(--color-stone); }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; font-family: var(--font-ui); font-size: var(--text-small); line-height: 1.5; padding-block: .75rem; border-bottom: 1px solid var(--color-bronze); min-height: 44px; }
.text-link svg { width: 19px; height: 19px; transition: transform var(--motion-ui); }
.text-link:hover svg { transform: translate(3px,-3px); }
.reveal { opacity: 1; }
.js.motion-ready .reveal { opacity: 0; transform: translateY(16px); transition: opacity var(--motion-reveal) var(--ease), transform var(--motion-reveal) var(--ease); }
.js.motion-ready .reveal.visible { opacity: 1; transform: none; }
.page-intro { padding-top: calc(var(--header-height) + var(--section-space)); padding-bottom: clamp(3rem, 6vw, 6rem); }
.page-intro .eyebrow { color: var(--muted); }
.page-title-row { display: flex; align-items: end; justify-content: space-between; gap: var(--space-7); }
.page-title-row > p, .page-title-row > div > p { color: var(--muted); max-width: 23rem; font-size: var(--text-body); }
.page-title-row > div { text-align: right; }
.large-index { display: block; font-family: var(--font-display); font-size: clamp(5rem, 8vw, 7.5rem); color: var(--gold); line-height: 1; margin-bottom: 1rem; }

.site-header { position: fixed; inset: 0 0 auto; height: var(--header-height); padding-inline: var(--edge); z-index: 100; display: grid; grid-template-columns: 180px 1fr 124px; align-items: center; column-gap: 2rem; border-bottom: 1px solid var(--line); background: var(--paper); color: var(--ink); transition: background var(--motion-ui), color var(--motion-ui), box-shadow var(--motion-ui); }
.site-header.over-hero { background: transparent; color: var(--paper); border-color: #f3f0e833; }
.site-header.scrolled { background: #f3f0e8f5; color: var(--ink); border-color: var(--line); backdrop-filter: blur(18px); box-shadow: 0 3px 20px #29282308; }
.brand { display: flex; align-items: center; justify-self: start; width: 180px; min-height: 44px; color: #0e0e0e; }
.identity-logo { display: block; flex: none; height: auto; }
.brand .identity-logo--horizontal { width: 180px; aspect-ratio: 600 / 148; }
.brand .identity-logo--compact { display: none; }
.over-hero:not(.scrolled) .brand, .site-header.menu-open .brand { color: #d4b483; }
.main-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 1.8vw, 2rem); height: 100%; font-family: var(--font-ui); font-size: .75rem; }
.main-nav a { display: flex; align-items: center; position: relative; height: 100%; white-space: nowrap; }
.main-nav a::after { content: ''; height: 1px; position: absolute; left: 0; right: 0; bottom: 1.4rem; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform var(--motion-ui); }
.main-nav a:hover::after, .main-nav a[aria-current]::after { transform: scaleX(1); }
.header-cta { height: 44px; align-self: center; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 0 .85rem 0 1rem; border: 1px solid currentColor; font-family: var(--font-ui); font-size: .75rem; line-height: 1; white-space: nowrap; transition: background var(--motion-ui), color var(--motion-ui), border-color var(--motion-ui); }
.header-cta i { display: grid; place-items: center; width: 18px; }
.header-cta svg { width: 18px; height: 18px; }
.header-cta:hover { background: var(--color-bronze-light); color: var(--ink); border-color: var(--color-bronze-light); }
.menu-toggle, .mobile-menu { display: none; }
.closing { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-7); background: var(--color-stone); padding-bottom: var(--space-6); }
.closing h2 { font-size: clamp(2.5rem, 4.8vw, 4.75rem); }
.round-link { display: grid; place-items: center; width: clamp(5rem, 9vw, 8rem); height: clamp(5rem, 9vw, 8rem); border-radius: 50%; border: 1px solid var(--gold); transition: background var(--motion-ui), transform var(--motion-ui); }
.round-link svg { width: 36px; height: 36px; }
.round-link:hover { background: var(--paper); transform: rotate(45deg); }
.closing-bottom { flex-basis: 100%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: var(--space-6); padding-top: var(--space-6); border-top: 1px solid #9b9281; font-size: var(--text-small); }
.closing-bottom > span { font-family: var(--font-ui); font-size: var(--text-label); letter-spacing: .1em; }
.site-footer { background: var(--ink); color: var(--paper); padding: var(--space-8) var(--edge) var(--space-5); }
.footer-brand { display: flex; align-items: center; gap: 2rem; padding-bottom: var(--space-7); border-bottom: 1px solid #5a584f; color: #d4b483; }
.footer-brand > .identity-logo { width: clamp(280px, 44vw, 560px); max-width: calc(100% - 4rem); aspect-ratio: 1000 / 720; }
.footer-brand > i { margin-left: auto; align-self: center; }
.footer-brand > i svg { width: clamp(2rem, 6vw, 6rem); height: auto; }
.footer-grid { display: grid; grid-template-columns: 1fr .8fr 1.4fr 1fr; gap: var(--grid-gap); padding-block: var(--space-7); font-size: var(--text-small); line-height: 1.8; }
.footer-grid > p { font-family: var(--font-display); font-style: italic; font-size: 1.75rem; line-height: 1.35; color: var(--color-bronze-light); }
.footer-grid nav, .footer-grid > div { display: flex; flex-direction: column; align-items: start; gap: .5rem; }
.footer-grid nav a { min-height: 30px; display: inline-flex; align-items: center; }
.footer-grid > div { gap: 1.5rem; }
.footer-grid address { color: var(--color-dark-muted); }
.download-note { display: block; color: var(--color-dark-muted); font-size: .75rem; }
.footer-base { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding-top: 1rem; border-top: 1px solid #5a584f; font-size: var(--text-label); color: var(--color-dark-muted); }
.footer-base > span:nth-child(2) { letter-spacing: .08em; }
.footer-base button, .footer-base a { min-height: 44px; display: inline-flex; align-items: center; }
.site-footer :focus-visible, .over-hero:not(.scrolled) :focus-visible, .mobile-menu :focus-visible, .model-story :focus-visible { outline-color: var(--color-bronze-light); }
.site-footer a:hover { color: var(--color-bronze-light); }

@media (max-width: 1199px) {
  .site-header { grid-template-columns: 1fr 124px 44px; column-gap: 1.5rem; }
  .main-nav { display: none; }
  .menu-toggle { display: flex; position: relative; z-index: 103; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 0; }
  .menu-toggle > span { width: 26px; height: 1px; background: currentColor; transition: transform var(--motion-ui); }
  .menu-toggle[aria-expanded=true] > span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] > span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .site-header.menu-open { background: var(--ink); color: var(--paper); border-color: #59574e; }
  .mobile-menu { display: flex; flex-direction: column; gap: 2rem; position: fixed; inset: var(--header-height) 0 0; z-index: 99; background: var(--ink); color: var(--paper); padding: clamp(1rem, 3vh, 3rem) var(--edge) 2rem; overflow-y: auto; transform: translateY(-110%); visibility: hidden; transition: transform var(--motion-card) var(--ease), visibility var(--motion-card); }
  .mobile-menu.open { transform: none; visibility: visible; }
  .mobile-menu-links { width: min(100%, 52rem); }
  .mobile-menu-links > a { display: flex; align-items: center; gap: 1.5rem; min-height: 48px; padding-block: .7rem; border-bottom: 1px solid #59574e; font-family: var(--font-display); font-size: clamp(1.75rem, 4.4vh, 3.5rem); line-height: 1.1; }
  .mobile-menu-links sup { font-family: var(--font-ui); font-size: var(--text-label); color: var(--color-bronze-light); }
  .mobile-menu-links a > span { margin-left: auto; font-family: var(--font-body); font-size: 1.5rem; }
  .mobile-menu-links a[aria-current] { color: var(--color-bronze-light); }
  .mobile-menu-bottom { margin-top: auto; display: flex; align-items: end; justify-content: space-between; gap: 1rem; font-size: var(--text-small); color: var(--color-dark-muted); }
  .mobile-menu-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .site-header { grid-template-columns: 1fr 44px; }
  .header-cta { display: none; }
  .brand { width: 185px; }
  .brand .identity-logo--horizontal { display: none; }
  .brand .identity-logo--compact { display: block; width: 185px; aspect-ratio: 580 / 154; }
  .mobile-menu-bottom { align-items: start; flex-direction: column; gap: .25rem; }
  .closing { gap: 2rem; }
  .closing-bottom { align-items: start; flex-direction: column; overflow-wrap: anywhere; }
  .footer-brand { gap: .5rem; padding-bottom: 1.5rem; }
  .footer-brand > .identity-logo { width: 100%; max-width: calc(100% - 2rem); }
  .footer-brand > i svg { width: 24px; }
  .footer-grid { gap: 2rem 1rem; font-size: .8125rem; }
  .footer-grid > p { font-size: 1.5rem; }
  .footer-grid nav a { min-height: 44px; }
  .footer-base { flex-wrap: wrap; gap: .5rem 1rem; }
  .footer-base > span:first-child { width: 100%; }
  .footer-base > span:nth-child(2) { display: none; }
  .footer-base a { margin-left: auto; }
}

/* Phase 3 / cinematic editorial homepage. Built on the shared Phase 2 tokens. */
.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; }
.cinematic-hero { position: relative; height: 100svh; min-height: 760px; max-height: 1200px; isolation: isolate; overflow: hidden; background: var(--ink); color: var(--paper); }
.cinematic-media { position: absolute; inset: 0; z-index: -2; }
.cinematic-image { width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; transform: scale(1.025); }
.cinematic-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #191b16cc, #191b1652 60%, #191b161c), linear-gradient(0deg, #141610ed, transparent 47%, #1416108c); }
.cinematic-inner { height: 100%; padding: calc(var(--header-height) + 2rem) var(--edge) 1.5rem; display: flex; flex-direction: column; }
.cinematic-topline { display: flex; justify-content: space-between; align-items: start; gap: 2rem; }
.cinematic-topline .eyebrow { margin: 0; }
.cinematic-topline > span { font-family: var(--font-ui); font-size: var(--text-label); line-height: 1.8; letter-spacing: .08em; text-align: right; }
.cinematic-title { margin-block: auto; padding: 2.5rem 0 1.75rem; }
.cinematic-title h1 { font-size: clamp(4rem, 8.5vw, 8.5rem); line-height: 1.02; letter-spacing: -.045em; }
.cinematic-title h1 > span { display: block; overflow: clip; padding-bottom: .06em; margin-bottom: -.06em; }
.cinematic-title h1 > span > * { display: inline-block; }
.cinematic-title h1 em { color: #dfc9a8; }
.cinematic-title > p { font-size: clamp(1rem, 1.3vw, 1.25rem); color: var(--paper); margin-top: 1.75rem; }
.cinematic-actions { display: flex; align-items: center; gap: 2rem; margin-top: 1.5rem; }
.hero-contact { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; padding: .75rem 0; border-bottom: 1px solid #f3f0e880; font-family: var(--font-ui); font-size: var(--text-small); transition: color var(--motion-ui), border-color var(--motion-ui); }
.hero-contact:is(:hover,:focus-visible) { color: #dfc9a8; border-color: currentColor; }
.hero-contact svg { width: 18px; height: 18px; transition: transform var(--motion-ui); }
.hero-contact:hover svg { transform: translate(3px,-3px); }
.cinematic-bottom { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 1px solid #f3f0e845; padding-top: 1.25rem; }
.cinematic-scroll { display: inline-flex; align-items: center; gap: 2rem; min-height: 44px; font-family: var(--font-ui); font-size: var(--text-label); letter-spacing: .08em; }
.cinematic-scroll > span { font-size: 1.25rem; }
.hero-project-credit { display: block; max-width: 29rem; line-height: 1.7; }
.hero-project-credit > span { display: flex; align-items: center; gap: 1rem; font-size: var(--text-small); }
.hero-project-credit svg { width: 16px; height: 16px; }
.hero-project-credit small { display: block; font-size: .75rem; color: #dedbd2; }
.cinematic-hero :focus-visible { outline-color: var(--color-bronze-light); }
.js:not(.motion-off) .cinematic-title h1 > span > * { animation: headline-enter var(--motion-hero) var(--ease) both; }
.js:not(.motion-off) .cinematic-title h1 > span:nth-child(2) > * { animation-delay: 60ms; }
.js:not(.motion-off) .cinematic-title h1 > span:nth-child(3) > * { animation-delay: 120ms; }
.js:not(.motion-off) .cinematic-media { animation: image-settle var(--motion-hero) var(--ease); }
@keyframes headline-enter { from { opacity: 0; transform: translateY(.22em); } to { opacity: 1; transform: none; } }
@keyframes image-settle { from { transform: scale(1.025); } to { transform: scale(1); } }
.home-section-top { display: flex; align-items: end; justify-content: space-between; gap: 4rem; margin-bottom: 3.5rem; }
.home-section-top > p { max-width: 24rem; color: var(--muted); }
.home-section-top > .text-link { flex-shrink: 0; }
.home-philosophy { display: grid; grid-template-columns: 1.05fr 1fr; gap: 3.5rem 9%; }
.philosophy-lead { grid-column: 1 / -1; }
.philosophy-lead h2 { max-width: 60rem; }
.philosophy-image img { aspect-ratio: 1.15; object-fit: cover; }
.philosophy-image figcaption, .sector-feature figcaption { display: flex; flex-direction: column; gap: .3rem; padding-top: 1rem; font-size: var(--text-label); line-height: 1.6; color: var(--muted); }
.philosophy-image figcaption > span:first-child, .sector-feature figcaption > span:first-child { color: var(--ink); letter-spacing: .06em; margin-bottom: .3rem; }
.philosophy-copy { padding-top: 1.25rem; }
.home-lead { font-family: var(--font-display); font-size: clamp(1.75rem, 2.6vw, 2.75rem); letter-spacing: -.025em; line-height: 1.35; }
.philosophy-copy > p:not(.home-lead) { margin-top: 1.5rem; color: var(--muted); }
.philosophy-values { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 2rem 0 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); font-family: var(--font-ui); font-size: var(--text-label); letter-spacing: .05em; color: var(--gold); }
.home-statistics { border-block: 1px solid var(--line); padding: 2rem 0 3rem; margin-bottom: var(--section-space); }
.statistics-heading { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.statistics-heading .eyebrow { margin: 0; }
.statistics-heading > a { font-size: var(--text-label); color: var(--muted); padding-block: .75rem; min-height: 44px; }
.statistics-grid { display: grid; grid-template-columns: repeat(4,1fr); margin: 2.5rem 0 0; }
.statistics-grid > div { display: flex; flex-direction: column-reverse; gap: 1rem; border-left: 1px solid var(--line); padding-inline: 2rem; }
.statistics-grid > div:first-child { padding-left: 0; border: 0; }
.statistics-grid dd { margin: 0; }
.stat-number { display: block; font-family: var(--font-display); font-size: clamp(3.75rem, 6vw, 6rem); line-height: 1.05; letter-spacing: -.055em; font-variant-numeric: tabular-nums; }
.statistics-grid dt { font-size: var(--text-label); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); line-height: 1.6; }
.home-expertise { background: var(--color-stone); }
.pillar-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; }
.pillar { display: flex; flex-direction: column; border-top: 1px solid #a49d8d; padding-top: 1.5rem; }
.pillar-number { font-family: var(--font-ui); font-size: var(--text-label); color: var(--gold); }
.pillar h3 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.13; margin: 2.5rem 0 1.25rem; }
.pillar > p { font-size: var(--text-small); color: var(--muted); margin-bottom: 2.5rem; }
.pillar > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid #bcb5a5; }
.pillar > div > span { font-size: var(--text-label); line-height: 1.7; color: var(--muted); }
.pillar svg { width: 20px; height: 20px; transition: transform var(--motion-ui); }
.pillar:hover svg { transform: translate(3px,-3px); }
.home-projects .portfolio-grid { gap: 4rem 3.5rem; }
.home-projects .project-card:nth-child(even) { margin-top: 6rem; }
.home-projects .project-info h3 { font-size: clamp(1.75rem, 3vw, 3rem); }
.card-credits { display: grid; gap: .4rem; border-top: 1px solid var(--line); padding-top: 1rem; margin: 1.25rem 0 0; font-size: .75rem; line-height: 1.6; color: var(--muted); }
.card-credits > div { display: grid; grid-template-columns: 100px 1fr; gap: .5rem; }
.card-credits dt { color: var(--gold); }
.card-credits dd { margin: 0; line-height: 1.6; }
.home-process { background: var(--ink); color: var(--paper); }
.home-process h2 em { color: var(--color-bronze-light); }
.home-process .home-section-top > p, .home-process-steps p { color: var(--color-dark-muted); }
.home-process-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; list-style: none; padding: 0; margin: 0; }
.home-process-steps li { border-top: 1px solid #6d6a5f; padding-top: 1.5rem; }
.home-process-steps li > span { color: var(--color-bronze-light); font-size: var(--text-label); font-family: var(--font-ui); }
.home-process-steps h3 { font-size: 1.75rem; line-height: 1.15; margin: 2rem 0 1rem; }
.home-process-steps p { font-size: var(--text-small); }
.process-follow { display: flex; align-items: end; justify-content: space-between; gap: 3rem; margin-top: 3rem; }
.process-follow > p { max-width: 40rem; color: var(--color-dark-muted); font-size: var(--text-small); }
.home-process .text-link { border-color: var(--color-bronze-light); flex-shrink: 0; }
.home-process :focus-visible { outline-color: var(--color-bronze-light); }
.home-model-disclosure { margin-top: 3rem; border-block: 1px solid #6d6a5f; }
.home-model-disclosure > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.5rem; font-family: var(--font-display); font-size: 1.75rem; line-height: 1.3; }
.home-model-disclosure > summary::-webkit-details-marker { display: none; }
.home-model-disclosure small { display: block; font-family: var(--font-ui); font-size: .625rem; letter-spacing: .09em; color: var(--color-bronze-light); margin-bottom: .5rem; }
.model-open-icon { font-family: var(--font-ui); font-size: 1.5rem; font-weight: 400; }
.home-model-disclosure[open] .model-open-icon { transform: rotate(45deg); }
.model-disclosure-note { font-size: var(--text-small); color: var(--color-dark-muted); max-width: 44rem; margin: 0 0 1.5rem; }
.home-model-disclosure .model-story { margin-inline: calc(-1 * var(--edge)); }
.home-model-disclosure .model-heading h2 { font-size: clamp(2.5rem,4vw,4.5rem); }
.home-sectors { padding-bottom: 0; }
.sector-composition { display: grid; grid-template-columns: 1fr 1.05fr; gap: 8%; align-items: center; }
.sector-feature img { aspect-ratio: .9; object-fit: cover; }
.home-sector-list > a { display: flex; align-items: center; gap: 1rem; padding-block: 1.5rem; border-top: 1px solid var(--line); }
.home-sector-list > a:last-child { border-bottom: 1px solid var(--line); }
.sector-number { font-size: var(--text-label); color: var(--gold); align-self: start; padding-top: .4rem; }
.home-sector-list h3 { flex: 1; font-size: clamp(1.5rem, 2.6vw, 2.5rem); line-height: 1.15; }
.sector-project-count { font-size: var(--text-label); color: var(--muted); white-space: nowrap; }
.home-sector-list svg { width: 18px; height: 18px; }
.craft-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.craft-item:nth-child(2) { margin-top: 3rem; }
.craft-item:nth-child(3) { margin-top: 6rem; }
.craft-photo { position: relative; overflow: hidden; padding: 0; display: block; width: 100%; }
.craft-photo img { aspect-ratio: .85; object-fit: cover; transition: transform var(--motion-card) var(--ease); }
.craft-item:nth-child(2) img { object-position: 60% center; }
.craft-photo:hover img { transform: scale(1.035); }
.craft-photo > span { display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: absolute; bottom: .75rem; left: .75rem; right: .75rem; padding: .7rem .8rem; background: var(--paper); font-size: var(--text-label); text-align: left; }
.craft-photo svg { width: 18px; height: 18px; }
.craft-heading { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.craft-heading > span { font-size: var(--text-label); color: var(--gold); }
.craft-heading h3 { font-size: 2rem; }
.craft-item > p { font-size: var(--text-small); color: var(--muted); margin: .75rem 0; }
.craft-credit { display: block; font-size: var(--text-label); color: var(--gold); line-height: 1.7; padding-block: .5rem; }
.home-craft > .text-link { margin-top: 2.5rem; }
.home-collaborations { background: var(--color-stone); }
.collaboration-group { border-top: 1px solid #b8b1a2; padding-top: 1.5rem; margin-top: 2.5rem; }
.collaboration-group > h3 { font-family: var(--font-ui); font-size: var(--text-label); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); }
.client-names { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem 3rem; padding-block: 1.5rem; }
.client-names > a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 60px; padding-block: 1rem; font-family: var(--font-display); font-size: clamp(1.4rem,2.2vw,2rem); letter-spacing: -.03em; }
.client-names svg { width: 16px; height: 16px; }
.collaborator-names { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; padding-block: 2rem; }
.collaborator-names > a { font-size: var(--text-body); }
.collaborator-names span { display: block; margin-top: .6rem; font-size: var(--text-label); color: var(--muted); }
.home-consultation { background: #33342c; color: var(--paper); position: relative; }
.home-consultation h2 { font-size: clamp(3rem,5.5vw,6rem); }
.home-consultation h2 em { color: var(--color-bronze-light); }
.home-consultation > div:first-child > p { margin-top: 1.5rem; color: var(--color-dark-muted); }
.consultation-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
.home-consultation .text-link { border-color: var(--color-bronze-light); }
.consultation-aside { border-left: 1px solid #858575; padding-left: 2rem; max-width: 27rem; }
.consultation-aside .eyebrow { font-size: .625rem; color: var(--color-dark-muted); }
.consultation-aside > p { font-family: var(--font-display); font-size: 2.5rem; line-height: 1.2; }
.consultation-aside em { color: var(--color-bronze-light); }
.home-consultation .closing-bottom { border-color: #858575; color: var(--color-dark-muted); }
.home-consultation :focus-visible { outline-color: var(--color-bronze-light); }
/* These components emit no public markup until approved records exist. */
.people-grid, .construction-grid, .home-insights-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--grid-gap); margin-top: 3rem; }
.people-grid img { aspect-ratio: .8; object-fit: cover; margin-bottom: 1.5rem; }
.people-grid .eyebrow { margin-bottom: .75rem; }
.people-grid h3 { font-size: 2rem; }
.people-grid p, .home-insights-grid p { margin-top: 1rem; color: var(--muted); }
.construction-grid img, .home-insights-grid img { aspect-ratio: 1.4; object-fit: cover; }
.construction-grid figcaption { font-size: var(--text-small); margin-top: 1rem; line-height: 1.6; }
.construction-grid figcaption > span { color: var(--gold); }
.construction-grid figcaption p { margin-block: .5rem; }
.home-testimonials { background: var(--color-stone); }
.testimonial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-top: 3rem; }
.testimonial-grid blockquote { margin: 0; font-family: var(--font-display); font-size: var(--text-lead); }
.testimonial-grid figcaption { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .4rem; font-size: var(--text-small); }
.testimonial-grid figcaption strong { font-weight: 500; }
.testimonial-grid figcaption span { color: var(--muted); }
.home-insights-grid { margin-top: 0; }
.home-insights-grid .eyebrow { margin-block: 1.5rem 1rem; }
.home-insights-grid h3 { font-size: 2rem; }
.home-insights-grid .text-link { margin-top: 1rem; }
@media (max-width: 1100px) {
  .home-section-top { gap: 2rem; }
  .home-section-top > p { max-width: 20rem; }
  .home-philosophy { gap: 3rem 6%; }
  .pillar-grid, .home-process-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.5rem; }
  .pillar h3 { margin-top: 1.5rem; }
  .home-projects .portfolio-grid { gap: 3rem 2rem; }
  .sector-composition { gap: 5%; }
  .sector-project-count { display: none; }
  .craft-grid { gap: 1.25rem; }
  .craft-heading h3 { font-size: 1.75rem; }
  .client-names { gap: 1rem 2rem; }
  .consultation-aside { max-width: 20rem; }
}
@media (max-width: 800px) {
  .cinematic-hero { min-height: 760px; }
  .cinematic-inner { padding-top: calc(var(--header-height) + 1.5rem); }
  .cinematic-title h1 { font-size: clamp(3.25rem, 10vw, 5rem); }
  .cinematic-topline > span { display: none; }
  .cinematic-title { padding-block: 3rem; }
  .home-section-top { align-items: start; flex-direction: column; gap: 1.5rem; margin-bottom: 2.5rem; }
  .home-section-top > p { max-width: 38rem; }
  .home-philosophy { grid-template-columns: 1fr; gap: 2.5rem; }
  .philosophy-image img { aspect-ratio: 1.3; }
  .philosophy-copy { padding: 0; }
  .statistics-heading { align-items: start; flex-direction: column; gap: .5rem; }
  .statistics-grid > div { padding-inline: 1.25rem; }
  .statistics-grid dt { font-size: .625rem; }
  .stat-number { font-size: 3.5rem; }
  .home-projects .project-card:nth-child(even) { margin-top: 3rem; }
  .card-credits > div { grid-template-columns: 80px 1fr; }
  .process-follow { align-items: start; flex-direction: column; gap: 1rem; }
  .sector-composition { grid-template-columns: 1fr; gap: 2.5rem; }
  .sector-feature img { aspect-ratio: 1.3; }
  .sector-project-count { display: block; }
  .client-names { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .collaborator-names { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .consultation-aside { display: none; }
}
@media (max-width: 600px) {
  .cinematic-hero { height: 100svh; min-height: 740px; max-height: none; }
  .cinematic-image { object-position: 64% 50%; }
  .cinematic-hero::after { background: linear-gradient(90deg,#191b16c4,#191b1652), linear-gradient(0deg,#141610ed,transparent 55%,#14161085); }
  .cinematic-title h1 { font-size: clamp(2.85rem,11.8vw,4.5rem); line-height: 1.08; letter-spacing: -.055em; }
  .cinematic-title { padding-block: 2rem; }
  .cinematic-title > p { max-width: 18rem; font-size: 1rem; margin-top: 1.5rem; }
  .cinematic-actions { flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.5rem; }
  .cinematic-actions .button { min-height: 48px; font-size: .75rem; }
  .cinematic-actions .button i { min-width: 48px; height: 48px; }
  .hero-contact { font-size: .75rem; }
  .cinematic-bottom { gap: 1rem; align-items: start; flex-direction: column-reverse; padding-top: 1rem; }
  .hero-project-credit > span { font-size: .75rem; }
  .hero-project-credit small { font-size: .6875rem; }
  .cinematic-scroll { min-height: 44px; font-size: .625rem; gap: 1.5rem; }
  .cinematic-topline .eyebrow { font-size: .625rem; }
  .home-philosophy { gap: 2rem; }
  .philosophy-image img { aspect-ratio: 1.05; }
  .philosophy-values { gap: .75rem 1rem; font-size: .625rem; }
  .statistics-grid { grid-template-columns: 1fr 1fr; gap: 2rem 0; margin-top: 1.5rem; }
  .statistics-grid > div:nth-child(3) { padding-left: 0; border: 0; }
  .statistics-grid > div:nth-child(even) { padding-right: 0; }
  .stat-number { font-size: 3.75rem; }
  .statistics-heading .eyebrow { font-size: .625rem; }
  .pillar-grid { grid-template-columns: 1fr; gap: 2rem; }
  .pillar { display: grid; grid-template-columns: 24px 1fr; gap: 0 1rem; padding-top: 1.25rem; }
  .pillar-number { padding-top: .5rem; }
  .pillar h3 { margin: 0; font-size: 2rem; }
  .pillar > p { grid-column: 2; margin: 1rem 0; }
  .pillar > div { grid-column: 2; }
  .home-projects .portfolio-grid { gap: 3rem; }
  .home-projects .project-card:nth-child(even) { margin-top: 0; }
  .card-credits > div { grid-template-columns: 94px 1fr; }
  .home-process-steps { grid-template-columns: 1fr; gap: 1.5rem; }
  .home-process-steps li { display: grid; grid-template-columns: 24px 1fr; gap: 0 1rem; }
  .home-process-steps li > span { padding-top: .4rem; }
  .home-process-steps h3 { margin: 0 0 .75rem; font-size: 1.875rem; }
  .home-process-steps p { grid-column: 2; }
  .home-model-disclosure > summary { font-size: 1.5rem; gap: 1rem; }
  .home-model-disclosure small { font-size: .625rem; line-height: 1.6; }
  .home-sector-list > a { gap: .75rem; }
  .home-sector-list h3 { font-size: 1.7rem; }
  .sector-project-count { font-size: .625rem; }
  .craft-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .craft-item:nth-child(2), .craft-item:nth-child(3) { margin-top: 0; }
  .craft-photo img { aspect-ratio: 1.15; }
  .craft-heading h3 { font-size: 2rem; }
  .client-names { grid-template-columns: 1fr; gap: 0; padding-block: 1rem; }
  .client-names > a { font-size: 1.75rem; padding-block: .75rem; }
  .collaborator-names { gap: 2rem 1rem; }
  .collaborator-names > a { font-size: .875rem; }
  .collaborator-names span { font-size: .625rem; }
  .home-consultation { gap: 1.5rem; }
  .home-consultation h2 { font-size: clamp(2.75rem,11vw,4rem); }
  .home-consultation > div:first-child > p br { display: none; }
  .home-consultation .closing-bottom { margin-top: 1.5rem; }
  .people-grid, .construction-grid, .testimonial-grid, .home-insights-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 360px) {
  .cinematic-title h1 { font-size: 2.85rem; }
  .cinematic-actions { gap: .5rem; }
  .cinematic-title { padding-block: 1.5rem; }
  .home-sector-list h3 { font-size: 1.45rem; }
  .sector-project-count { display: none; }
}
.motion-off .cinematic-title h1 > span > *, .motion-off .cinematic-media { animation: none !important; opacity: 1; transform: none; }
.motion-off .cinematic-image { transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  .cinematic-title h1 > span > *, .cinematic-media { animation: none !important; opacity: 1; transform: none; }
  .cinematic-image { transform: none !important; }
}

/* Public identity positioning stays legible at every viewport. */
.cinematic-topline .hero-positioning { max-width:30rem; text-wrap:balance; }
.hero-positioning-compact { display:none; }
@media (max-width:800px) {
  .cinematic-topline { flex-direction:column; gap:.6rem; }
  .cinematic-topline .hero-positioning { display:block; max-width:29rem; text-align:left; font-size:.75rem; letter-spacing:.025em; }
  .hero-positioning-full { display:none; }
  .hero-positioning-compact { display:inline; }
}

/* Collection and case-study templates. */
.portfolio-section { padding-top: 0; }
.portfolio-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; border-block: 1px solid var(--line); padding-block: 1rem; margin-bottom: var(--space-7); }
.filters { display: flex; gap: .25rem; flex-wrap: wrap; }
.filters button { min-height: 44px; padding: .75rem 1rem; font-size: var(--text-small); border: 1px solid transparent; transition: background var(--motion-ui), color var(--motion-ui); }
.filters button.active { background: var(--ink); color: var(--paper); }
.filters button:not(.active):hover { border-color: var(--line); }
#project-count { font-size: var(--text-label); letter-spacing: .06em; color: var(--muted); }
.portfolio-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-8) var(--grid-gap); }
.project-card:nth-child(even) { margin-top: 5rem; }
.project-picture { position: relative; overflow: hidden; background: var(--color-stone); }
.project-picture > a { display: block; overflow: hidden; }
.project-picture img { aspect-ratio: 1.08; object-fit: cover; filter: saturate(.85); transition: transform var(--motion-card) var(--ease), filter var(--motion-card); }
.project-card:nth-child(4n + 2) img, .project-card:nth-child(4n + 3) img { aspect-ratio: .88; }
.project-picture:hover img { transform: scale(1.035); filter: saturate(1); }
.picture-index, .photo-count { position: absolute; color: var(--paper); font-family: var(--font-ui); font-size: .625rem; letter-spacing: .08em; background: #292823db; padding: .5rem .65rem; }
.picture-index { left: 1rem; top: 1rem; }
.photo-count { left: 1rem; bottom: 1rem; }
.quick-view { position: absolute; bottom: 1rem; right: 1rem; display: flex; align-items: center; gap: 1rem; min-height: 44px; background: var(--paper); padding: .6rem 1rem; font-family: var(--font-ui); font-size: .75rem; }
.quick-view > span { font-size: 1.25rem; }
.quick-view:hover { background: var(--color-bronze-light); }
.project-info { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; }
.project-info small { display: block; text-transform: uppercase; font-size: var(--text-label); letter-spacing: .06em; color: var(--gold); }
.project-info h3 { margin: .75rem 0; font-size: clamp(1.75rem, 2.8vw, 2.75rem); }
.project-info p { font-size: var(--text-small); color: var(--muted); }
.project-info p > span { margin-inline: .4rem; }
.project-info i { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); flex-shrink: 0; display: grid; place-items: center; }
.project-info svg { width: 18px; height: 18px; }
.portfolio-foot { border-top: 1px solid var(--line); margin-top: var(--space-8); padding-top: var(--space-6); display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-size: var(--text-small); }
.project-hero { position: relative; height: 90svh; min-height: 650px; max-height: 1000px; overflow: hidden; background: var(--ink); color: var(--paper); }
.project-hero-photo { position: absolute; inset: 0; }
.project-hero-photo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.75) saturate(.8); }
.project-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#18191380, transparent 40%, #181913ed); }
.project-hero-content { position: absolute; inset: calc(var(--header-height) + 2.5rem) var(--edge) 3rem; display: flex; flex-direction: column; align-items: start; justify-content: end; }
.back-link { position: absolute; left: 0; top: 0; font-size: var(--text-label); letter-spacing: .09em; padding-block: .75rem; border-bottom: 1px solid #dcd6c9; }
.project-hero .eyebrow { font-size: var(--text-label); margin-bottom: 1.5rem; }
.project-hero h1 { max-width: 65rem; margin-bottom: 1.5rem; }
.project-hero-content > div { display: flex; justify-content: space-between; align-items: center; gap: 2rem; width: 100%; }
.project-hero-content > div > p { font-size: var(--text-lead); font-family: var(--font-display); font-style: italic; color: #e9deca; }
.project-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; }
.project-overview h2 { font-size: clamp(2.5rem, 4.5vw, 4.5rem); }
.project-overview p { color: var(--muted); }
.project-overview dl { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding-top: 2rem; border-top: 1px solid var(--line); margin: 2rem 0 0; }
.project-overview dt { font-size: var(--text-label); color: var(--gold); letter-spacing: .08em; margin-bottom: .5rem; }
.project-overview dd { margin: 0; font-size: var(--text-body); line-height: 1.6; }
.project-editorial { padding-top: 0; }
.editorial-head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.editorial-head > span { font-size: var(--text-label); color: var(--muted); line-height: 1.6; }
.editorial-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-7) var(--grid-gap); }
.editorial-image.wide { grid-column: 1 / -1; }
.editorial-image button { display: block; width: 100%; position: relative; padding: 0; overflow: hidden; }
.editorial-image img { aspect-ratio: 1; object-fit: cover; transition: transform var(--motion-card) var(--ease); }
.editorial-image.wide img { aspect-ratio: 1.8; }
.editorial-image button:hover img { transform: scale(1.025); }
.editorial-image button > span { position: absolute; bottom: 1rem; right: 1rem; padding: .85rem 1rem; background: var(--paper); font-size: var(--text-small); }
.editorial-image figcaption { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; font-size: var(--text-label); line-height: 1.6; color: var(--muted); }
.concept-study { background: var(--color-stone); display: grid; grid-template-columns: 1fr 1.5fr; gap: 8%; align-items: center; }
.concept-study p { max-width: 28rem; margin-top: 1.5rem; color: var(--muted); }
.concept-badge { display: inline-block; margin-top: 1.5rem; padding: .6rem .75rem; border: 1px solid var(--gold); color: var(--gold); font-size: var(--text-label); line-height: 1.6; letter-spacing: .06em; }
.concept-study .concept-disclosure { font-size: var(--text-small); margin-top: .75rem; }
.concept-study > button { position: relative; padding: 0; }
.concept-study > button img { aspect-ratio: 1.2; object-fit: cover; }
.concept-study > button > span { position: absolute; right: 1rem; bottom: 1rem; background: var(--paper); padding: .75rem 1rem; font-size: var(--text-small); }
.next-project { position: relative; height: 65svh; min-height: 380px; max-height: 700px; background: var(--ink); color: var(--paper); }
.next-project > a { display: block; height: 100%; overflow: hidden; }
.next-project img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.4); transition: transform var(--motion-card) var(--ease); }
.next-project a:hover img { transform: scale(1.025); }
.next-project > a > div { position: absolute; inset: 3rem var(--edge); display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.next-project h2 { max-width: 80%; }
.next-project span { position: absolute; top: 0; left: 0; font-size: var(--text-label); letter-spacing: .09em; }
.next-project svg { width: 60px; height: 60px; }
/* Expertise, sector and editorial company templates. */
.service-nav { margin-inline: var(--edge); display: flex; flex-wrap: wrap; gap: 1rem 2rem; padding-block: 1.5rem; border-block: 1px solid var(--line); }
.service-nav a { display: flex; align-items: center; gap: .75rem; font-size: var(--text-small); min-height: 44px; }
.service-nav span { color: var(--gold); font-size: var(--text-label); }
.service-section { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; }
.service-section + .service-section { padding-top: 0; }
.service-section:nth-of-type(odd) .service-photo { order: 2; }
.service-photo { position: relative; }
.service-photo img { aspect-ratio: .95; object-fit: cover; }
.service-photo > span { position: absolute; left: 1.5rem; top: 1rem; font-family: var(--font-display); font-size: 4rem; line-height: 1; color: white; text-shadow: 0 2px 15px #0009; }
.service-image-credit { font-size: var(--text-label); color: var(--muted); margin-top: .75rem; line-height: 1.6; }
.service-section h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.service-section h3 { font-size: 1.5rem; color: var(--gold); margin-top: 1.5rem; line-height: 1.3; }
.service-section p { color: var(--muted); margin-top: 1.25rem; }
.service-section ul, .quality ul { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1.25rem; font-size: var(--text-small); }
.service-section li, .quality li { border-top: 1px solid var(--line); padding-top: .75rem; line-height: 1.65; }
.materials { background: var(--color-stone); }
.material-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--grid-gap); margin-top: 3rem; }
.material-swatch { height: 270px; position: relative; border: 1px solid #29282320; }
.material-swatch > span { position: absolute; left: 1rem; bottom: 1rem; padding: .5rem; font-size: var(--text-label); color: var(--paper); background: var(--ink); }
.timber { background: repeating-linear-gradient(92deg,#8b6946 0 2px,#7c5c3f 3px 4px,#997454 6px 15px); }
.stone { background: linear-gradient(135deg,#b4b2aa,#e1dfd7 45%,#b8b6ad 48%,#d6d4cc 52%,#bbb9b1); }
.metal { background: linear-gradient(120deg,#42433e,#75776b 45%,#44483f); }
.fabric { background: repeating-linear-gradient(0deg,transparent 0 2px,#ffffff20 2px 3px), repeating-linear-gradient(90deg,#8c8979 0 2px,#757363 2px 3px); }
.sector-index { padding-top: 0; }
.sector-row { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8%; align-items: start; padding-block: var(--space-8); border-top: 1px solid var(--line); }
.sector-row:first-child { padding-top: 2rem; }
.sector-row:last-child { padding-bottom: 0; }
.sector-image img { aspect-ratio: 1.15; object-fit: cover; }
.sector-row h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.sector-row p { color: var(--muted); margin-top: 1.25rem; }
.sector-row ul { padding: 0; list-style: none; margin: 2rem 0 0; }
.sector-row li { border-top: 1px solid var(--line); }
.sector-row li a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; }
.sector-row li small { display: block; color: var(--muted); margin-top: .25rem; }
.about-panorama { height: 70svh; min-height: 450px; max-height: 740px; position: relative; overflow: hidden; background: var(--ink); color: var(--paper); }
.about-panorama > img { width: 100%; height: 120%; object-fit: cover; filter: brightness(.55) saturate(.8); }
.about-panorama > div { position: absolute; bottom: 3rem; left: var(--edge); right: var(--edge); }
.about-panorama span { font-size: var(--text-label); letter-spacing: .12em; }
.about-panorama p { font-family: var(--font-display); font-size: clamp(1.75rem,3.5vw,3.5rem); line-height: 1.2; margin-top: 1.25rem; }
.about-story { display: grid; grid-template-columns: 1fr 3fr; gap: 3rem; }
.about-story h2 { font-size: clamp(2.5rem,4.5vw,4.5rem); }
.about-story p { color: var(--muted); max-width: 48rem; margin-top: 1.75rem; }
.values { background: var(--color-stone); }
.values > div:last-child { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--grid-gap); margin-top: 3rem; }
.values article { padding-top: 1rem; border-top: 1px solid #aaa596; }
.values article > span { font-size: var(--text-label); color: var(--gold); }
.values h3 { margin: 2rem 0 1rem; font-size: 1.75rem; }
.values p { font-size: var(--text-small); color: var(--muted); }
.about-partners > p { max-width: 47rem; color: var(--muted); margin-top: 2rem; }
.partner-names { display: grid; grid-template-columns: repeat(3,1fr); gap: 2rem; padding-block: 2rem; border-block: 1px solid var(--line); margin: 3rem 0 1.5rem; }
.partner-names span { font-family: var(--font-display); font-size: 1.75rem; }
.process-detail { display: grid; grid-template-columns: 1fr 4fr; gap: 8%; }
.process-detail article { display: grid; grid-template-columns: 40px 1fr 1.25fr; gap: 1.5rem; border-top: 1px solid var(--line); padding-block: 2rem; }
.process-detail article > span { font-size: var(--text-label); color: var(--gold); padding-top: .5rem; }
.process-detail h2 { font-size: 2.25rem; }
.process-detail p { font-size: var(--text-small); color: var(--muted); }
.quality { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; padding-top: 0; }
.quality img { aspect-ratio: 1; object-fit: cover; }
.quality p { color: var(--muted); margin-top: 2rem; }
/* Enquiry template. This is an email draft, never a false submission state. */
body[data-page=contact] .page-intro h1 { font-size: clamp(3rem, 7.5vw, 7.5rem); }
.contact-page { padding-top: 0; display: grid; grid-template-columns: 1fr 1.45fr; gap: 10%; align-items: start; }
.contact-page aside h2 { font-size: 2.75rem; }
.contact-page aside p { color: var(--muted); margin: 1.5rem 0; }
.contact-page aside > a:not(.text-link) { display: block; font-size: var(--text-body); padding-block: .45rem; overflow-wrap: anywhere; }
.contact-page address { font-size: var(--text-small); line-height: 1.9; color: var(--muted); margin: 1.5rem 0 .5rem; }
.contact-small-image { margin-top: 2.5rem; max-width: 320px; }
.contact-small-image img { aspect-ratio: 1.25; object-fit: cover; }
.inquiry { background: var(--color-stone); padding: clamp(1.25rem,3vw,3rem); min-width: 0; }
.inquiry-steps { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #aaa697; padding-bottom: 1.25rem; margin-bottom: 2rem; font-size: var(--text-label); color: var(--muted); }
.inquiry-steps span { display: flex; align-items: center; gap: .5rem; }
.inquiry-steps b { font-weight: 400; font-size: var(--text-label); }
.inquiry-steps .active { color: var(--ink); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { font-family: var(--font-display); font-size: 2rem; line-height: 1.2; padding: 0 0 1.5rem; max-width: 100%; }
form label { display: block; font-size: var(--text-small); margin-bottom: 1.5rem; line-height: 1.6; }
input, textarea, select { display: block; width: 100%; border: 0; border-bottom: 1px solid #7b776c; border-radius: 0; background: transparent; color: var(--ink); padding: .8rem 0; margin-top: .3rem; min-height: 48px; font-size: 1rem; line-height: 1.5; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { color: #626259; opacity: 1; }
input:focus, textarea:focus, select:focus { outline: 2px solid var(--gold); outline-offset: 4px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.form-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; }
.form-actions > span { font-size: var(--text-label); color: var(--muted); }
.form-actions > button:not(.button) { min-height: 44px; padding: .5rem 0; font-size: var(--text-small); }
.form-explanation { font-size: var(--text-small); color: var(--muted); }
.copy-enquiry { min-height: 44px; margin-top: 1.25rem; padding: .5rem 0; font-size: var(--text-small); border-bottom: 1px solid var(--gold); }
#form-status { margin-top: 1.5rem; font-size: var(--text-small); color: var(--gold); }
#form-status:empty { display: none; }
#inquiry-review { display: grid; grid-template-columns: 85px minmax(0,1fr); gap: 1rem; margin: 0 0 2rem; font-size: var(--text-small); }
#inquiry-review dt { color: var(--muted); }
#inquiry-review dd { margin: 0; overflow-wrap: anywhere; white-space: pre-line; }
.faq { display: grid; grid-template-columns: 1fr 1.5fr; gap: 0 10%; background: var(--color-stone); }
.faq > .eyebrow { grid-column: 1 / -1; }
.faq details { border-top: 1px solid #aaa697; }
.faq details:last-child { border-bottom: 1px solid #aaa697; }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.5rem; list-style: none; cursor: pointer; font-size: var(--text-body); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary > span { font-size: 1.5rem; }
.faq details[open] summary > span { transform: rotate(45deg); }
.faq details > p { padding: 0 1.5rem 1.5rem 0; color: var(--muted); font-size: var(--text-small); }
.insight-collection { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--grid-gap); padding-top: 0; }
.insight-collection img { aspect-ratio: 1.4; object-fit: cover; margin-bottom: 1.5rem; }
.insight-collection h2 { font-size: var(--text-h3); }
.insight-collection p { margin-top: 1rem; color: var(--muted); }
.insight-article { max-width: 58rem; margin-inline: auto; padding-top: 0; }
.insight-article > p { margin-top: 1.5rem; }

@media (max-width: 1100px) {
  .page-title-row { gap: 2rem; }
  .page-title-row > p { max-width: 19rem; }
  .service-section, .contact-page, .project-overview, .concept-study, .quality { gap: 6%; }
  .process-detail, .about-story { display: block; }
  .process-detail > div { margin-top: 2rem; }
  .values > div:last-child { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 800px) {
  .page-title-row { align-items: start; flex-direction: column; }
  .page-title-row > div { text-align: left; display: flex; align-items: center; gap: 1.5rem; }
  .page-title-row > p { max-width: 35rem; }
  .large-index { margin: 0; font-size: 5rem; }
  .project-card:nth-child(even) { margin-top: 2.5rem; }
  .project-info { align-items: end; }
  .project-info i { display: none; }
  .project-info h3 { font-size: 1.875rem; }
  .photo-count { display: none; }
  .project-overview, .concept-study, .service-section, .quality, .contact-page, .sector-row { grid-template-columns: 1fr; gap: 2.5rem; }
  .project-overview h2 { max-width: 30rem; }
  .concept-study > button img { aspect-ratio: 1.5; }
  .service-section:nth-of-type(odd) .service-photo { order: 0; }
  .service-photo img { aspect-ratio: 1.4; }
  .material-grid { grid-template-columns: 1fr 1fr; }
  .material-swatch { height: 230px; }
  .contact-small-image { display: none; }
  .contact-page aside { max-width: 36rem; }
  .faq { display: block; }
  .faq h2 { margin-bottom: 2rem; }
}
@media (max-width: 600px) {
  .insight-collection { grid-template-columns: 1fr; }
  body[data-page=contact] .page-intro h1 { font-size: clamp(2.5rem, 10.5vw, 3.5rem); }
  .page-intro { padding-top: calc(var(--header-height) + 3rem); }
  .page-title-row { gap: 1.5rem; }
  .portfolio-toolbar { gap: 1rem; margin-bottom: 2rem; }
  .filters { gap: .25rem; }
  .filters button { font-size: .75rem; padding: .7rem .85rem; }
  .portfolio-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .project-card:nth-child(even) { margin-top: 0; }
  .project-picture img, .project-card:nth-child(4n + 2) img, .project-card:nth-child(4n + 3) img { aspect-ratio: 1.05; }
  .project-info i { display: grid; }
  .project-info small { font-size: .625rem; }
  .project-info p { font-size: .75rem; }
  .portfolio-foot { align-items: start; flex-direction: column; gap: .75rem; }
  .project-hero { min-height: 680px; height: 90svh; }
  .project-hero-content { inset: calc(var(--header-height) + 1.5rem) var(--edge) 2rem; }
  .project-hero-content > div { flex-direction: column; align-items: start; gap: 1.5rem; }
  .project-hero .eyebrow { font-size: .625rem; }
  .project-hero h1 { font-size: clamp(2.75rem, 12vw, 4.5rem); }
  .project-overview dl { gap: 1.5rem 1rem; }
  .project-overview dd { font-size: .875rem; }
  .editorial-head { display: block; margin-bottom: 2rem; }
  .editorial-head .eyebrow { margin-bottom: .5rem; }
  .editorial-grid { grid-template-columns: 1fr; gap: 2rem; }
  .editorial-image.wide { grid-column: auto; }
  .editorial-image img, .editorial-image.wide img { aspect-ratio: 1.2; }
  .editorial-image figcaption { flex-wrap: wrap; gap: .25rem 1rem; font-size: .625rem; }
  .concept-study > button img { aspect-ratio: 1.15; }
  .next-project { height: 55svh; }
  .next-project > a > div { inset: 2rem var(--edge); gap: 1rem; }
  .next-project h2 { font-size: 2.75rem; }
  .next-project svg { width: 30px; height: 30px; }
  .service-nav { gap: .25rem 1.25rem; }
  .service-nav a { font-size: .75rem; }
  .service-photo img { aspect-ratio: 1.15; }
  .service-section ul, .quality ul { gap: 1rem; }
  .material-grid { gap: 1rem; }
  .material-swatch { height: 180px; }
  .material-swatch > span { left: .5rem; bottom: .5rem; font-size: .625rem; }
  .about-panorama { height: 500px; }
  .about-panorama > div { bottom: 2rem; }
  .values > div:last-child { gap: 2rem 1rem; }
  .values h3 { font-size: 1.5rem; margin-top: 1.5rem; }
  .partner-names { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
  .partner-names span { font-size: 1.4rem; }
  .process-detail article { grid-template-columns: 28px 1fr; gap: 1rem; }
  .process-detail p { grid-column: 2; }
  .process-detail h2 { font-size: 1.875rem; }
  .inquiry-steps { gap: .5rem; }
  .inquiry-steps span { gap: .25rem; }
  .inquiry-steps b { font-size: .625rem; }
  legend { font-size: 1.75rem; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .form-actions .button { gap: .75rem; font-size: .75rem; padding-left: 1rem; }
  .form-actions .button i { min-width: 42px; }
  #inquiry-review { grid-template-columns: 65px minmax(0,1fr); gap: .75rem; }
}

/* Editorial service and sector templates. All selectors are scoped to this family. */
.discipline-hero { padding-top: calc(var(--header-height) + 2rem); padding-bottom: 3.5rem; }
.discipline-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; font-size: .75rem; color: var(--muted); margin-bottom: 3rem; }
.discipline-breadcrumb a { display: inline-flex; align-items: center; min-height: 32px; border-bottom: 1px solid transparent; }
.discipline-breadcrumb a:hover { border-color: currentColor; }
.discipline-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--grid-gap); align-items: center; }
.discipline-hero-copy { padding-block: 1.5rem; }
.discipline-hero-copy h1 { font-size: clamp(3.2rem, 5.7vw, 6rem); max-width: 10em; line-height: 1.03; }
.discipline-hero-copy .eyebrow { color: var(--gold); }
.discipline-hero-copy p:not(.discipline-hero-phrase) { max-width: 30rem; color: var(--muted); margin-block: 1.5rem; }
.discipline-hero-phrase { font-family: var(--font-display); font-size: clamp(1.4rem, 2vw, 2rem); font-style: italic; color: var(--gold); margin-top: 2rem; line-height: 1.35; }
.discipline-hero-copy .text-link { margin-top: 1rem; }
.discipline-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.discipline-hero-image img { aspect-ratio: 4/5; max-height: 680px; }
.discipline-photo figcaption { border-top: 1px solid var(--line); margin-top: .8rem; padding-top: .7rem; display: flex; gap: 1rem; justify-content: space-between; font-size: .6875rem; line-height: 1.65; color: var(--muted); }
.discipline-photo figcaption a { display: flex; align-items: start; gap: .5rem; color: var(--ink); }
.discipline-photo figcaption svg { width: 13px; height: 13px; margin-top: 2px; }
.discipline-photo figcaption > span { text-align: right; max-width: 65%; }
.discipline-jump { padding: 0 var(--edge); border-block: 1px solid var(--line); display: flex; gap: clamp(1rem, 4vw, 4rem); flex-wrap: wrap; background: var(--color-stone); }
.discipline-jump a { display: flex; gap: .7rem; align-items: center; min-height: 64px; font-family: var(--font-ui); font-size: .75rem; }
.discipline-jump a span { color: var(--gold); font-size: .625rem; }
.discipline-jump a:hover { color: var(--gold); }
.discipline-heading h2 { font-size: clamp(2.5rem, 4.2vw, 4.5rem); max-width: 12em; }
.discipline-heading > p { color: var(--muted); max-width: 35rem; margin-top: 1.5rem; }
.discipline-overview, .discipline-index-responsibility { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 8vw, 8rem); }
.discipline-introduction { font-size: var(--text-lead); line-height: 1.8; }
.discipline-responsibility { margin-top: 2.5rem; padding: clamp(1.5rem, 3vw, 3rem); background: var(--color-stone); border-top: 2px solid var(--gold); }
.discipline-responsibility .eyebrow { margin-bottom: 1rem; }
.discipline-responsibility h3 { font-size: 1.8rem; margin-bottom: 1.5rem; }
.discipline-responsibility > div + div { border-top: 1px solid var(--line); margin-top: 1.5rem; padding-top: 1.5rem; }
.discipline-responsibility h4 { font-family: var(--font-ui); font-size: .75rem; font-weight: 600; margin: 0 0 .75rem; }
.discipline-responsibility p { font-size: .875rem; color: var(--muted); }
.discipline-scope { background: var(--color-charcoal); color: var(--paper); }
.discipline-scope .eyebrow, .discipline-scope .discipline-number { color: var(--color-bronze-light); }
.discipline-items { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--grid-gap); margin-top: 3.5rem; }
.discipline-items article { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.discipline-number { font-family: var(--font-ui); font-size: .75rem; color: var(--gold); }
.discipline-items h3 { font-size: clamp(1.7rem,2.6vw,2.5rem); margin: 2rem 0 1.2rem; }
.discipline-items p { color: var(--muted); }
.discipline-scope .discipline-items article { border-color: #5e5c53; }
.discipline-scope .discipline-items p { color: var(--color-dark-muted); }
.discipline-deliverables { display: grid; grid-template-columns: 1fr 1.5fr; gap: var(--grid-gap); margin-top: 4rem; padding-top: 3rem; border-top: 1px solid #5e5c53; }
.discipline-deliverables p { color: var(--color-dark-muted); font-size: .875rem; max-width: 23rem; }
.discipline-deliverables ul, .discipline-approach ol, .discipline-brief ul { list-style: none; padding: 0; margin: 0; }
.discipline-deliverables li { display: flex; align-items: baseline; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #5e5c53; }
.discipline-deliverables li:first-child { padding-top: 0; }
.discipline-deliverables li span { font-size: .625rem; color: var(--color-bronze-light); }
.discipline-approach { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,6vw,6rem); align-items: center; }
.discipline-approach .discipline-photo img { aspect-ratio: 4/5; }
.discipline-approach ol { margin-top: 2.5rem; }
.discipline-approach li { display: flex; gap: 1.5rem; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.discipline-approach li > span { color: var(--gold); font-size: .75rem; padding-top: .35rem; }
.discipline-approach li h3 { font-size: 1.8rem; margin-bottom: .8rem; }
.discipline-approach li p { color: var(--muted); font-size: .9375rem; }
.discipline-technical { background: var(--color-stone); }
.discipline-technical .discipline-heading h2 { max-width: 15em; }
.discipline-section-top { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; }
.discipline-section-top > a { flex-shrink: 0; }
.discipline-project-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem var(--grid-gap); }
.discipline-project-grid.single { grid-template-columns: minmax(0, 54rem); }
.discipline-project-note { font-size: .8125rem; color: var(--muted); border-left: 2px solid var(--gold); padding-left: 1rem; margin-top: 1rem; }
.discipline-faq { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem,6vw,6rem); border-top: 1px solid var(--line); }
.discipline-faq details { border-top: 1px solid var(--line); }
.discipline-faq details:last-child { border-bottom: 1px solid var(--line); }
.discipline-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 0; min-height: 64px; cursor: pointer; list-style: none; font-size: 1rem; line-height: 1.5; }
.discipline-faq summary::-webkit-details-marker { display: none; }
.discipline-faq summary > span { color: var(--gold); font-size: 1.5rem; transition: transform var(--motion-ui); }
.discipline-faq details[open] summary > span { transform: rotate(45deg); }
.discipline-faq details p { color: var(--muted); padding: 0 2rem 1.5rem 0; font-size: .9375rem; }
.discipline-next { border-top: 1px solid var(--line); padding-block: 3rem; }
.discipline-next a { display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-family: var(--font-display); font-size: clamp(1.8rem,3vw,3rem); line-height: 1.2; }
.discipline-next a:hover { color: var(--gold); }
.discipline-next .eyebrow { margin-bottom: 1rem; }
.discipline-consultation { display: flex; justify-content: space-between; align-items: end; gap: 3rem; background: var(--dark); color: var(--paper); border-bottom: 1px solid #5e5c53; }
.discipline-consultation h2 em, .discipline-consultation .eyebrow { color: var(--color-bronze-light); }
.discipline-consultation p { color: var(--color-dark-muted); max-width: 35rem; margin-top: 2rem; }
.discipline-consultation > div:last-child { display: flex; flex-direction: column; gap: 1.5rem; flex-shrink: 0; }
.discipline-consultation .text-link { border-color: var(--color-bronze-light); }
.discipline-pdf { font-size: .625rem; }
.discipline-consultation :focus-visible { outline-color: var(--color-bronze-light); }
.discipline-sector-note { border-top: 1px solid var(--line); margin-top: 2.5rem; padding-top: 2rem; }
.discipline-sector-note p { color: var(--muted); font-size: .9375rem; }
.discipline-brief ul { margin-top: 2rem; }
.discipline-brief li { font-size: 1rem; }
.discipline-service-links { background: var(--color-stone); }
.discipline-service-links > div:last-child { margin-top: 3rem; }
.discipline-service-links a { display: grid; grid-template-columns: 3rem 1fr 24px; align-items: baseline; gap: 2rem; padding-block: 2rem; border-top: 1px solid var(--line); }
.discipline-service-links a h3 { font-size: clamp(1.8rem,3vw,3rem); }
.discipline-service-links a p { margin-top: 1rem; max-width: 42rem; color: var(--muted); }
.discipline-service-links a:hover h3 { color: var(--gold); }
.discipline-index-lead { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: center; padding-top: 0; }
.discipline-index-lead h2 { font-size: clamp(2.3rem,3.7vw,4rem); }
.discipline-index-lead p { color: var(--muted); margin: 2rem 0; max-width: 30rem; }
.discipline-index-nav { margin: 0 var(--edge); display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--grid-gap); border-top: 1px solid var(--line); }
.discipline-index-nav a { display: flex; gap: 1.2rem; align-items: center; padding-block: 1.2rem; border-bottom: 1px solid var(--line); font-size: .9375rem; }
.discipline-index-nav a > span { font-size: .6875rem; color: var(--gold); }
.discipline-index-nav a svg { margin-left: auto; width: 18px; }
.discipline-index-nav a:hover { color: var(--gold); }
.discipline-directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4rem var(--grid-gap); margin-top: 3rem; }
.discipline-directory-card { scroll-margin-top: calc(var(--header-height) + 2rem); }
.discipline-directory-image { display: block; position: relative; overflow: hidden; background: var(--color-stone); }
.discipline-directory-image img { aspect-ratio: 4/3; object-fit: cover; transition: transform var(--motion-card) var(--ease); }
.discipline-directory-image:hover img { transform: scale(1.035); }
.discipline-directory-image > span { position: absolute; top: 1rem; left: 1rem; padding: .6rem; background: var(--paper); font-family: var(--font-ui); font-size: .75rem; }
.discipline-directory-image > svg { position: absolute; bottom: 0; right: 0; width: 54px; height: 54px; padding: 15px; background: var(--paper); }
.discipline-directory-credit { font-size: .6875rem; color: var(--muted); margin-top: .8rem; line-height: 1.7; }
.discipline-directory-card h3 { margin: 1.5rem 0 1rem; font-size: clamp(1.8rem,3vw,3rem); }
.discipline-directory-card p { max-width: 32rem; color: var(--muted); margin-bottom: 1.3rem; }
.discipline-index-responsibility { background: var(--color-stone); }
.discipline-index-responsibility p { margin-bottom: 1.5rem; }
.discipline-sector-directory { padding-top: 1rem; }
.discipline-sector-row { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem,6vw,6rem); align-items: center; padding-block: 4rem; border-top: 1px solid var(--line); }
.discipline-sector-row:nth-child(even) { grid-template-columns: 1fr 1.15fr; }
.discipline-sector-row:nth-child(even) > div:first-child { order: 2; }
.discipline-sector-row h2 { font-size: clamp(2.5rem,4.3vw,4.5rem); margin-bottom: 1.5rem; }
.discipline-sector-row p { color: var(--muted); }
.discipline-sector-row .discipline-sector-preview { font-size: .75rem; color: var(--gold); margin-top: 1.5rem; }
.discipline-sector-row .text-link { margin-top: 1.5rem; }
.discipline-sector-projects { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.discipline-sector-projects a { display: flex; align-items: center; gap: .5rem; font-size: .6875rem; min-height: 32px; }
.discipline-sector-projects svg { width: 12px; height: 12px; }
@media (max-width: 1000px) {
  .discipline-hero-copy h1 { font-size: clamp(2.8rem,5.9vw,4.5rem); }
  .discipline-photo figcaption { flex-direction: column; gap: .35rem; }
  .discipline-photo figcaption > span { text-align: left; max-width: none; }
  .discipline-overview, .discipline-index-responsibility { gap: 3rem; grid-template-columns: 1fr 1.2fr; }
  .discipline-consultation { align-items: start; flex-direction: column; }
  .discipline-index-lead { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .discipline-hero { padding-bottom: 2.5rem; }
  .discipline-breadcrumb { margin-bottom: 1.5rem; }
  .discipline-hero-grid, .discipline-overview, .discipline-approach, .discipline-faq, .discipline-index-lead, .discipline-index-responsibility, .discipline-sector-row, .discipline-sector-row:nth-child(even) { grid-template-columns: 1fr; gap: 2.5rem; }
  .discipline-hero-copy h1 { font-size: clamp(2.8rem,9vw,4.8rem); max-width: 11em; }
  .discipline-hero-copy { padding-top: 0; }
  .discipline-hero-image img { aspect-ratio: 6/5; max-height: 500px; }
  .discipline-jump { gap: 0 1.5rem; padding-block: .5rem; }
  .discipline-jump a { min-height: 44px; }
  .discipline-items { grid-template-columns: 1fr; gap: 2rem; margin-top: 2.5rem; }
  .discipline-items h3 { margin: 1rem 0; }
  .discipline-deliverables { grid-template-columns: 1fr; gap: 2rem; }
  .discipline-approach .discipline-photo img { aspect-ratio: 6/5; }
  .discipline-section-top { flex-direction: column; align-items: start; }
  .discipline-service-links a { grid-template-columns: 1.5rem 1fr 20px; gap: 1rem; }
  .discipline-sector-row:nth-child(even) > div:first-child { order: initial; }
  .discipline-sector-row { padding-block: 3rem; }
  .discipline-directory-grid { gap: 3rem 1.5rem; }
  .discipline-directory-card h3 { font-size: 1.8rem; }
  .discipline-directory-card p { font-size: .875rem; }
}
@media (max-width: 520px) {
  .discipline-index-nav, .discipline-directory-grid, .discipline-project-grid { grid-template-columns: 1fr; }
  .discipline-hero-copy h1 { font-size: clamp(2.65rem,10.5vw,3.5rem); overflow-wrap: break-word; }
  .discipline-index-lead { gap: 2rem; }
  .discipline-responsibility { padding: 1.5rem; }
  .discipline-responsibility .eyebrow { font-size: .625rem; }
  .discipline-consultation > div:last-child { width: 100%; }
  .discipline-consultation .text-link { flex-wrap: wrap; gap: .5rem; }
  .discipline-next a { gap: 1rem; }
}
.motion-off .discipline-directory-image:hover img { transform: none; }
@media (prefers-reduced-motion: reduce) { .discipline-directory-image:hover img { transform: none; } }

/* Project journal: native scrolling, authentic imagery and scoped editorial layouts. */
.journal-opening { padding-top: 0; }
.journal-feature { position: relative; display: block; overflow: hidden; background: var(--dark); color: var(--paper); }
.journal-feature > img { width: 100%; height: clamp(380px,57vw,720px); object-fit: cover; transition: transform var(--motion-card) var(--ease); }
.journal-feature::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#151511bb,transparent 85%),linear-gradient(0deg,#15151188,transparent 60%); }
.journal-feature > span { position: absolute; inset: auto 3rem 3rem; z-index:1; }
.journal-feature h2 { font-size: clamp(3rem,6vw,6.5rem); }
.journal-feature h2 em { color: var(--color-bronze-light); }
.journal-feature-link { display:flex; gap:1rem; align-items:center; margin-top:2rem; font-size:.8125rem; }
.journal-feature:hover > img { transform:scale(1.025); }
.journal-feature:focus-visible { outline-offset:6px; }
.journal-opening-note { display:flex; gap:2rem; justify-content:space-between; padding-top:1.5rem; }
.journal-opening-note p { max-width:38rem; color:var(--muted); }
.journal-opening-note > span { font-size:.75rem; line-height:1.8; text-align:right; color:var(--muted); }
.journal-heading { margin-bottom:3rem; }
.journal-heading h2 { font-size:clamp(2.5rem,4.3vw,4.5rem); }
.journal-collection .portfolio-toolbar { margin-bottom:1.5rem; }
.journal-collection .filters button { display:flex; align-items:center; gap:.6rem; }
.journal-collection .filters button > span { font-size:.625rem; }
.journal-tools { display:grid; grid-template-columns:1fr 1fr auto; gap:2rem; align-items:end; margin-bottom:3rem; }
.journal-tools label { display:flex; flex-direction:column; gap:.7rem; font-size:.75rem; }
.journal-tools input,.journal-tools select { width:100%; min-width:0; background:transparent; color:var(--ink); border:0; border-bottom:1px solid var(--line); padding:.8rem 0; min-height:48px; border-radius:0; }
.journal-tools input::placeholder { color:var(--muted); }
.journal-grid { gap:4rem var(--grid-gap); align-items:start; }
.journal-grid .journal-card:nth-child(even) { margin-top:6rem; }
.journal-grid.is-filtered .journal-card { margin-top:0; }
.journal-grid .project-picture img { aspect-ratio:4/3; }
.journal-grid .journal-card:nth-child(3n+2) .project-picture img { aspect-ratio:4/5; }
.journal-grid .project-picture > a { position:relative; }
.journal-grid .journal-hover-image { position:absolute; inset:0; height:100%; width:100%; opacity:0; transition:opacity var(--motion-card) var(--ease); pointer-events:none; }
@media (hover:hover) and (pointer:fine) { .journal-grid a:hover .journal-hover-image.ready,.journal-grid a:focus-visible .journal-hover-image.ready { opacity:1; } }
.journal-grid .journal-contained img { object-fit:contain; background:var(--dark); }
.journal-grid .journal-contained > a { aspect-ratio:4/3; }
.journal-grid .journal-contained a > img:not(.journal-hover-image) { position:absolute; top:50%; width:100%; height:auto; aspect-ratio:auto; transform:translateY(-50%); }
.journal-empty { text-align:center; padding:4rem 1rem; background:var(--color-stone); }
.journal-empty p { margin:1rem 0 2rem; color:var(--muted); }
.case-hero { height:100svh; max-height:none; min-height:680px; }
.case-hero .project-hero-photo img { animation:case-arrival var(--motion-hero) var(--ease) both; }
@keyframes case-arrival { from { transform:scale(1.035); } to { transform:scale(1); } }
.case-hero .project-hero-photo::after { background:linear-gradient(#151511a8,transparent 35%,#151511ed); }
.case-hero .project-hero-content { bottom:3.5rem; }
.case-hero h1 { font-size:clamp(4rem,9vw,10rem); max-width:11em; }
.case-hero :focus-visible { outline-color:var(--color-bronze-light); }
.case-hero-contained .project-hero-photo { left:54%; right:var(--edge); top:50%; bottom:auto; aspect-ratio:16/10; overflow:hidden; transform:translateY(-50%); }
.case-hero-contained .project-hero-photo img { position:absolute; top:50%; width:100%; height:auto; transform:translateY(-50%); filter:none; animation:none; }
.case-hero-contained .project-hero-photo::after { display:none; }
.case-hero-contained .project-hero-content { justify-content:center; }
.case-hero-contained h1 { max-width:6em; }
.case-hero-contained .project-hero-content > div { flex-direction:column; align-items:start; width:45%; }
.case-navigation { display:flex; flex-wrap:wrap; gap:1rem 3rem; padding:.5rem var(--edge); border-bottom:1px solid var(--line); background:var(--color-stone); }
.case-navigation a { display:flex; align-items:center; min-height:48px; font-family:var(--font-ui); font-size:.75rem; }
.case-navigation a:hover { color:var(--gold); }
.case-overview,.case-narrative,.case-role,.case-credits { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,8vw,8rem); }
.case-overview h2,.case-narrative h2,.case-role h2,.case-credits h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); }
.case-introduction { font-size:var(--text-lead); }
.case-facts { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin:2.5rem 0 0; padding-top:2rem; border-top:1px solid var(--line); }
.case-facts dt,.case-credits dt,.case-role dt { color:var(--gold); font-family:var(--font-ui); font-size:.6875rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.7rem; }
.case-facts dd,.case-credits dd,.case-role dd { margin:0; line-height:1.7; }
.case-role { background:var(--dark); color:var(--paper); }
.case-role .eyebrow,.case-role dt,.case-role h2 > span { color:var(--color-bronze-light); }
.case-role p { font-size:var(--text-lead); }
.case-role dl { display:grid; grid-template-columns:1fr 1fr; gap:2rem; border-top:1px solid #5e5c53; padding-top:2rem; margin-top:2rem; }
.case-role .text-link { border-color:var(--color-bronze-light); font-size:.75rem; margin-top:1rem; }
.case-role :focus-visible { outline-color:var(--color-bronze-light); }
.case-details { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,7vw,7rem); align-items:center; }
.case-details figure button { display:block; position:relative; width:100%; padding:0; }
.case-details img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.case-details button > span { position:absolute; bottom:1rem; right:1rem; background:var(--paper); display:flex; align-items:center; gap:1rem; padding:.8rem 1rem; font-size:.75rem; }
.case-details figcaption { font-size:.75rem; color:var(--muted); margin-top:1rem; }
.case-details p { margin-top:1.5rem; color:var(--muted); }
.case-details small { display:block; font-size:.6875rem; color:var(--muted); line-height:1.8; border-top:1px solid var(--line); padding-top:1.5rem; margin-top:2rem; }
.case-details .case-contained img { object-fit:contain; background:var(--dark); }
.case-section-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:3rem; }
.case-section-heading h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); }
.case-section-heading p { font-size:.75rem; color:var(--muted); text-align:right; }
.case-photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem var(--grid-gap); }
.case-photo-grid .case-wide { grid-column:1/-1; }
.case-photo-grid button { display:block; position:relative; width:100%; padding:0; overflow:hidden; background:var(--color-stone); }
.case-photo-grid img { width:100%; aspect-ratio:1.1; object-fit:cover; transition:transform var(--motion-card) var(--ease); }
.case-photo-grid .case-wide img { aspect-ratio:1.8; }
.case-photo-grid button:hover img { transform:scale(1.02); }
.case-photo-grid button > span { position:absolute; right:1rem; bottom:1rem; display:grid; place-items:center; background:var(--paper); width:44px; height:44px; }
.case-photo-grid figcaption { display:flex; gap:1.5rem; font-size:.75rem; line-height:1.7; color:var(--muted); margin-top:1rem; }
.case-photo-grid figcaption > span { flex-shrink:0; color:var(--gold); }
.case-portrait-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.case-portrait-grid .case-wide { grid-column:auto; }
.case-portrait-grid img,.case-portrait-grid .case-wide img { aspect-ratio:9/16; object-fit:contain; background:var(--dark); }
.case-credits { background:var(--color-stone); }
.case-credits dl { margin:0; }
.case-credits dl > div { padding:1.5rem 0; border-top:1px solid var(--line); }
.case-credits dd { font-size:var(--text-lead); }
.case-credits p { font-size:.8125rem; color:var(--muted); margin-top:1.5rem; }
.case-concept { padding-block:2rem; border-bottom:1px solid var(--line); }
.case-concept summary { display:flex; align-items:center; justify-content:space-between; cursor:pointer; list-style:none; gap:1.5rem; min-height:80px; }
.case-concept summary::-webkit-details-marker { display:none; }
.case-concept .eyebrow { margin-bottom:.75rem; }
.case-concept-title { font-family:var(--font-display); font-size:clamp(1.8rem,3vw,3rem); }
.case-concept summary > span:last-child { font-size:2rem; }
.case-concept details > div { display:grid; grid-template-columns:1fr 1.5fr; gap:3rem; padding-block:2rem; }
.case-concept p { color:var(--muted); }
.case-concept button { padding:0; position:relative; }
.case-concept button img { max-height:650px; object-fit:contain; }
.case-concept button > span { display:flex; gap:1rem; align-items:center; padding:1rem; }
.case-related-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--grid-gap); }
.case-related-grid .project-card { margin-top:0; }
.case-related-grid .project-picture img { aspect-ratio:4/3; }
.case-consultation { display:flex; justify-content:space-between; align-items:end; gap:3rem; background:var(--dark); color:var(--paper); border-bottom:1px solid #5e5c53; }
.case-consultation h2 em,.case-consultation .eyebrow { color:var(--color-bronze-light); }
.case-consultation p { color:var(--color-dark-muted); margin-top:1.5rem; }
.case-consultation .button { flex-shrink:0; }
.case-consultation :focus-visible { outline-color:var(--color-bronze-light); }
.case-narrative p + p { margin-top:1.5rem; }
.case-challenges article { display:grid; grid-template-columns:1fr 1fr; gap:3rem; padding-block:2rem; border-bottom:1px solid var(--line); }
.case-challenges h3 { margin-bottom:1rem; }
.case-progress > div,.comparison-pair { display:grid; grid-template-columns:1fr 1fr; gap:var(--grid-gap); margin-top:2rem; }
.case-progress figcaption { margin-top:1rem; font-size:.8125rem; }
.case-comparison > p { margin-top:1.5rem; }
.comparison-pair.interactive { position:relative; display:block; aspect-ratio:16/10; overflow:hidden; }
.comparison-pair.interactive figure { position:absolute; inset:0; }
.comparison-pair.interactive figure:last-child { clip-path:inset(0 calc(100% - var(--after,50%)) 0 0); }
.comparison-pair.interactive img { width:100%; height:100%; object-fit:contain; background:var(--dark); }
.comparison-pair figcaption { position:absolute; bottom:1rem; left:1rem; background:var(--paper); padding:.6rem; }
.comparison-pair figure { position:relative; }
.comparison-pair.interactive figure:first-child figcaption { left:auto; right:1rem; }
.comparison-control { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; padding-top:1.5rem; font-size:.8125rem; }
.comparison-control input { flex:1; min-width:150px; min-height:44px; accent-color:var(--gold); }
.case-video video { width:100%; margin-top:2rem; background:var(--dark); }
.case-video details { margin-top:1.5rem; }
.case-video summary { cursor:pointer; min-height:44px; }
/* Lightbox extensions keep the image contained until a visitor chooses zoom. */
.gallery-viewport { position:absolute; inset:0 0 50px; overflow:auto; overscroll-behavior:contain; }
.gallery-viewport > img { width:100%; height:100%; object-fit:contain; transition:none; }
.gallery-viewport.zoomed > img { width:200%; height:200%; max-width:none; }
.gallery-load-state { position:absolute; inset:20% 15%; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1rem; color:var(--paper); text-align:center; pointer-events:none; }
.gallery-load-state p { font-size:.875rem; }
.gallery-load-state button { background:var(--paper); color:var(--ink); padding:.75rem 1.25rem; min-height:44px; pointer-events:auto; }
.gallery-tools { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1rem; }
.gallery-tools > * { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.5rem .75rem; border:1px solid var(--line); font-size:.75rem; }
.gallery-tools button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.gallery-key-hint { font-size:.625rem !important; margin-top:1rem; }
html:not(.js) .journal-tools,html:not(.js) .journal-collection .filters { display:none; }
@media (max-width:900px) {
  .journal-tools { grid-template-columns:1fr 1fr; }
  .journal-tools > button { width:fit-content; }
  .case-overview,.case-role,.case-credits { gap:3rem; }
  .case-consultation { flex-direction:column; align-items:start; }
  .case-hero h1 { font-size:clamp(3.2rem,9vw,6rem); }
}
@media (max-width:650px) {
  .journal-feature > span { inset:auto 1.5rem 1.5rem; }
  .journal-feature h2 { font-size:3rem; }
  .journal-opening-note { flex-direction:column; gap:1rem; }
  .journal-opening-note > span { text-align:left; }
  .journal-tools,.case-overview,.case-role,.case-credits,.case-details,.case-narrative,.case-concept details > div,.case-challenges article { grid-template-columns:1fr; gap:2rem; }
  .journal-tools { gap:1.25rem; }
  .journal-grid .journal-card:nth-child(even) { margin-top:0; }
  .journal-grid .journal-card .project-picture img { aspect-ratio:4/3; }
  .case-hero { min-height:650px; }
  .case-hero h1 { font-size:clamp(3rem,12vw,5rem); }
  .case-hero .project-hero-content { bottom:2.5rem; }
  .case-hero .project-hero-content > div { align-items:start; flex-direction:column; gap:1.5rem; }
  .case-hero-contained .project-hero-photo { left:var(--edge); top:calc(var(--header-height) + 6rem); transform:none; width:auto; opacity:1; }
  .case-hero-contained .project-hero-content { justify-content:end; }
  .case-hero-contained .project-hero-content > div { width:100%; }
  .case-navigation { gap:0 1.5rem; }
  .case-navigation a { font-size:.6875rem; }
  .case-facts { gap:1.5rem; }
  .case-details img { aspect-ratio:4/3; }
  .case-section-heading { flex-direction:column; align-items:start; gap:1.5rem; }
  .case-section-heading p { text-align:left; }
  .case-photo-grid,.case-related-grid,.case-progress > div,.comparison-pair { grid-template-columns:1fr; }
  .case-photo-grid .case-wide { grid-column:auto; }
  .case-photo-grid img,.case-photo-grid .case-wide img { aspect-ratio:4/3; }
  .case-portrait-grid img,.case-portrait-grid .case-wide img { aspect-ratio:9/16; max-height:650px; }
  .case-photo-grid figcaption { gap:1rem; }
  .case-concept details > div { padding-top:1.5rem; }
}
.motion-off .journal-hover-image { display:none; }
.motion-off .case-hero .project-hero-photo img { animation:none; }
.motion-off .journal-feature:hover > img,.motion-off .case-photo-grid button:hover img { transform:none; }
@media (prefers-reduced-motion:reduce) { .journal-hover-image { display:none; } .case-hero .project-hero-photo img { animation:none; } .journal-feature:hover > img,.case-photo-grid button:hover img { transform:none; } }

.case-area-note { margin-top:1.5rem; font-size:var(--text-small); color:var(--muted); }

/* Company profile and people templates share the established editorial palette. */
.company-opening { padding-top:0; padding-bottom:3rem; }
.company-opening .discipline-photo img { aspect-ratio:2; max-height:700px; object-fit:cover; }
.company-opening-caption { display:flex; justify-content:space-between; align-items:start; gap:2rem; margin-top:2rem; }
.company-opening-caption > span { font-size:.6875rem; letter-spacing:.09em; color:var(--muted); }
.company-opening-caption p { font-family:var(--font-display); font-size:clamp(1.7rem,2.5vw,2.6rem); line-height:1.2; }
.company-opening-caption em { color:var(--gold); }
.company-jump { display:flex; flex-wrap:wrap; gap:0 2rem; padding:.75rem var(--edge); border-block:1px solid var(--line); background:var(--color-stone); }
.company-jump a { display:flex; align-items:center; min-height:44px; font-size:.75rem; }
.company-jump a:hover { color:var(--gold); }
.company-story,.company-relationships { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,8vw,8rem); }
.company-story h2,.company-relationships h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); }
.company-story p,.company-relationships p { color:var(--muted); margin-bottom:1.5rem; }
.company-story p:first-child { font-size:var(--text-lead); color:var(--ink); }
.company-purpose { background:var(--dark); color:var(--paper); }
.company-purpose .eyebrow,.company-purpose h2 em,.company-purpose article > span { color:var(--color-bronze-light); }
.company-purpose-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,8vw,8rem); margin:3.5rem 0 2rem; }
.company-purpose article { padding-top:2rem; border-top:1px solid #5e5c53; }
.company-purpose article > span { font-family:var(--font-ui); font-size:.6875rem; letter-spacing:.08em; }
.company-purpose h3 { font-size:clamp(2rem,3vw,3rem); margin:2rem 0 1.5rem; }
.company-purpose p { color:var(--color-dark-muted); max-width:33rem; }
.company-purpose .text-link { border-color:var(--color-bronze-light); }
.company-purpose :focus-visible { outline-color:var(--color-bronze-light); }
.company-section-heading > p { max-width:40rem; color:var(--muted); margin-top:1.5rem; }
.company-section-top { display:flex; justify-content:space-between; align-items:end; gap:3rem; margin-bottom:3rem; }
.company-section-top > p { max-width:26rem; color:var(--muted); font-size:.9375rem; }
.company-philosophy { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.company-philosophy .discipline-photo img { aspect-ratio:4/5; }
.company-philosophy h2 { margin-bottom:2.5rem; }
.company-philosophy article { display:flex; gap:1.5rem; padding-top:1.5rem; margin-top:1.5rem; border-top:1px solid var(--line); }
.company-philosophy article > span { font-size:.6875rem; color:var(--gold); padding-top:.4rem; }
.company-philosophy h3 { font-size:1.8rem; margin-bottom:.8rem; }
.company-philosophy p { color:var(--muted); font-size:.9375rem; }
.company-history { background:var(--color-stone); }
.company-statistics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); margin-bottom:2.5rem; }
.company-statistics > div { padding-top:2rem; border-top:1px solid var(--line); }
.company-statistics strong { display:block; font-family:var(--font-display); font-size:clamp(4.5rem,8vw,8rem); font-weight:400; letter-spacing:-.06em; color:var(--gold); line-height:1; }
.company-statistics h3 { font-family:var(--font-ui); font-size:.875rem; letter-spacing:0; margin:1.5rem 0 .75rem; }
.company-statistics p { color:var(--muted); font-size:.75rem; }
.company-values > div:last-child { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem var(--grid-gap); margin-top:3rem; }
.company-values article { border-top:1px solid var(--line); padding-top:1.5rem; }
.company-values article > span { font-size:.6875rem; color:var(--gold); }
.company-values h3 { font-size:clamp(1.8rem,2.5vw,2.5rem); margin:1.5rem 0 1rem; }
.company-values p { color:var(--muted); }
.company-relationships { border-block:1px solid var(--line); }
.company-relationships p:first-child { font-size:var(--text-lead); color:var(--ink); }
.company-collaboration-list article { display:grid; grid-template-columns:2.5rem 1fr 1.2fr; gap:2rem; padding:2rem 0; border-top:1px solid var(--line); align-items:start; }
.company-collaboration-list article > span { color:var(--gold); font-size:.6875rem; padding-top:.5rem; }
.company-collaboration-list h3 { font-size:clamp(1.8rem,2.8vw,2.8rem); }
.company-collaboration-list a { display:grid; grid-template-columns:1fr 20px; gap:.5rem 1rem; padding-bottom:1rem; }
.company-collaboration-list a + a { padding-top:1rem; border-top:1px solid var(--line); }
.company-collaboration-list a > strong { font-size:.9375rem; font-weight:500; }
.company-collaboration-list a > span { grid-column:1; font-size:.75rem; line-height:1.7; color:var(--muted); }
.company-collaboration-list a > svg { grid-column:2; grid-row:1; width:18px; height:18px; }
.company-collaboration-list a:hover > strong { color:var(--gold); }
.company-project-relationships { background:var(--dark); color:var(--paper); }
.company-project-relationships .eyebrow,.company-project-relationships h2 em { color:var(--color-bronze-light); }
.company-project-relationships .company-section-heading p { color:var(--color-dark-muted); }
.company-project-relationships > div:last-child { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 3rem; margin-top:3rem; }
.company-project-relationships a { display:grid; grid-template-columns:1fr 20px; gap:1rem; border-top:1px solid #5e5c53; padding-block:2rem; }
.company-project-relationships h3 { font-size:clamp(1.7rem,2.2vw,2.4rem); }
.company-project-relationships a > span { grid-column:1; color:var(--color-dark-muted); font-size:.75rem; line-height:1.7; }
.company-project-relationships a > svg { grid-column:2; grid-row:1; width:18px; height:18px; }
.company-project-relationships a:hover h3 { color:var(--color-bronze-light); }
.company-project-relationships :focus-visible { outline-color:var(--color-bronze-light); }
.company-quality-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem var(--grid-gap); }
.company-quality-grid article { border-top:1px solid var(--line); padding-top:1.5rem; }
.company-quality-grid article > span { font-size:.6875rem; color:var(--gold); }
.company-quality-grid h3 { font-size:clamp(1.8rem,2.5vw,2.5rem); margin:1.5rem 0 1rem; }
.company-quality-grid p { color:var(--muted); max-width:34rem; }
.company-quality > .text-link { margin-top:2.5rem; }
.company-download { display:grid; grid-template-columns:.85fr 1fr; gap:clamp(2rem,8vw,8rem); align-items:center; background:var(--color-stone); }
.company-document { background:var(--paper); color:var(--ink); border:1px solid var(--line); box-shadow:12px 16px 0 #29282312; padding:clamp(1.5rem,4vw,4rem); aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:space-between; }
.company-document > span:first-child { font-family:var(--font-ui); font-size:2rem; line-height:1; }
.company-document small { font-size:.625rem; letter-spacing:.2em; }
.company-document > div { font-family:var(--font-display); font-size:clamp(2.5rem,4.5vw,4.5rem); line-height:1.05; letter-spacing:-.05em; }
.company-document em { color:var(--gold); }
.company-document > span:last-child { font-size:.625rem; line-height:1.8; letter-spacing:.06em; }
.company-download p { color:var(--muted); margin-top:1.5rem; }
.company-download dl { display:flex; flex-wrap:wrap; gap:2rem 3rem; border-top:1px solid var(--line); padding-top:1.5rem; margin:2rem 0; }
.company-download dt { font-size:.6875rem; color:var(--gold); margin-bottom:.5rem; }
.company-download dd { margin:0; font-size:.875rem; }
.company-download .text-link { display:flex; width:fit-content; margin-top:1rem; }
.company-consultation { display:flex; align-items:end; justify-content:space-between; gap:3rem; background:var(--dark); color:var(--paper); border-bottom:1px solid #5e5c53; }
.company-consultation .eyebrow,.company-consultation h2 em { color:var(--color-bronze-light); }
.company-consultation p { color:var(--color-dark-muted); margin-top:1.5rem; }
.company-consultation .button { flex-shrink:0; }
.company-consultation :focus-visible { outline-color:var(--color-bronze-light); }
/* Real people only: these components render after content approval. */
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem var(--grid-gap); align-items:start; }
.team-portrait { position:relative; overflow:hidden; background:var(--color-stone); }
.team-portrait img { aspect-ratio:4/5; object-fit:cover; transition:transform var(--motion-card) var(--ease); }
.team-card:hover .team-portrait img,.team-card:focus-within .team-portrait img { transform:scale(1.025); }
.team-portrait > span { position:absolute; bottom:1rem; left:1rem; right:1rem; width:fit-content; font-size:.625rem; line-height:1.7; letter-spacing:.06em; background:var(--paper); padding:.5rem .75rem; }
.team-card-heading { display:flex; gap:1rem; align-items:start; justify-content:space-between; margin-top:1.5rem; }
.team-card-heading p { font-family:var(--font-ui); font-size:.6875rem; color:var(--gold); margin-bottom:.75rem; }
.team-card-heading h3 { font-size:clamp(1.8rem,2.6vw,2.75rem); }
.team-card-heading > span { margin-top:1.8rem; }
.team-card-heading svg { width:18px; height:18px; }
.team-specializations { display:flex; flex-wrap:wrap; gap:.5rem; margin:1.5rem 0; padding:0; list-style:none; }
.team-specializations li { font-size:.6875rem; line-height:1.6; border:1px solid var(--line); padding:.4rem .6rem; }
.team-biography { border-block:1px solid var(--line); }
.team-biography summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; min-height:48px; list-style:none; cursor:pointer; font-size:.8125rem; }
.team-biography summary::-webkit-details-marker { display:none; }
.team-biography summary > span { font-size:1.3rem; color:var(--gold); transition:transform var(--motion-ui); }
.team-biography[open] summary > span { transform:rotate(45deg); }
.team-biography > div { padding-bottom:1.5rem; }
.team-biography p,.team-biography li { color:var(--muted); font-size:.875rem; line-height:1.8; }
.team-biography h4 { font-size:.8125rem; margin:1.5rem 0 .75rem; }
.team-biography ul { padding-left:1.2rem; }
.team-biography small { display:block; font-size:.6875rem; }
.team-biography nav { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1rem; }
.team-biography nav a { font-size:.75rem; border-bottom:1px solid var(--gold); min-height:44px; display:flex; align-items:center; }
.team-department .company-section-heading { margin-bottom:3rem; }
.team-department + .team-department { border-top:1px solid var(--line); }
.team-collaboration-note { background:var(--color-stone); }
.team-collaboration-note p { max-width:40rem; color:var(--muted); margin:2rem 0; }
.team-review-note { border-top:1px solid var(--line); }
.team-review-note > p { max-width:48rem; color:var(--muted); margin-top:2rem; }
.team-review-columns { display:grid; grid-template-columns:1fr 1fr; gap:var(--grid-gap); padding:2rem; margin-top:3rem; background:var(--color-stone); }
.team-review-columns h3 { font-size:1.8rem; }
.team-review-columns ul { padding-left:1.2rem; margin-top:1.5rem; }
.team-review-columns li { padding-block:.5rem; font-size:.875rem; line-height:1.6; }
.company-message { display:grid; grid-template-columns:.8fr 1fr; gap:clamp(2rem,8vw,8rem); align-items:center; background:var(--color-stone); }
.company-message img { aspect-ratio:4/5; object-fit:cover; }
.company-message blockquote { margin:0; font-family:var(--font-display); font-size:clamp(1.8rem,3vw,3rem); }
.company-message blockquote p { line-height:1.45; }
.company-signature { margin-top:2rem; font-size:1rem; }
.company-signature span { display:block; font-size:.75rem; color:var(--muted); }
.company-message .text-link { margin-top:1rem; }
.company-milestones ol { list-style:none; padding:0; margin-top:3rem; }
.company-milestones li { display:grid; grid-template-columns:10rem 1fr; gap:2rem; padding-block:2rem; border-top:1px solid var(--line); }
.company-milestones time { font-size:.8125rem; color:var(--gold); }
.company-milestones p { color:var(--muted); margin-top:1rem; }
.company-culture > div,.company-credentials > div { display:grid; grid-template-columns:1fr 1fr; gap:var(--grid-gap); margin-top:3rem; }
.company-culture img { aspect-ratio:4/3; object-fit:cover; }
.company-culture h3 { margin:1.5rem 0 1rem; }
.company-culture p { color:var(--muted); }
.company-credentials { background:var(--color-stone); }
.company-credentials article { border-top:1px solid var(--line); padding-top:2rem; }
.company-credentials dl { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; }
.company-credentials dt { font-size:.6875rem; color:var(--gold); }
.company-credentials dd { margin:.5rem 0 0; font-size:.9375rem; }
.company-logos > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grid-gap); margin-top:3rem; }
.company-logos img { width:100%; height:100px; object-fit:contain; }
.company-logos figcaption { font-size:.8125rem; text-align:center; margin-top:1rem; }
.company-logos figcaption a { display:block; padding:.75rem; font-size:.75rem; }
@media (max-width:1000px) {
  .company-section-top { flex-direction:column; align-items:start; gap:1.5rem; }
  .company-section-top > p { max-width:40rem; }
  .company-consultation { flex-direction:column; align-items:start; }
  .company-values > div:last-child,.company-project-relationships > div:last-child,.team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .company-collaboration-list article { grid-template-columns:1.5rem 1fr 1.2fr; gap:1rem; }
}
@media (max-width:700px) {
  .company-opening .discipline-photo img { aspect-ratio:4/3; }
  .company-opening-caption { flex-direction:column; gap:1rem; }
  .company-story,.company-purpose-grid,.company-philosophy,.company-relationships,.company-download,.company-message { grid-template-columns:1fr; gap:2.5rem; }
  .company-philosophy .discipline-photo img { aspect-ratio:4/3; }
  .company-statistics { grid-template-columns:1fr; gap:2rem; }
  .company-statistics strong { font-size:5rem; }
  .company-statistics h3 { margin-top:1rem; }
  .company-collaboration-list article { grid-template-columns:1.5rem 1fr; }
  .company-collaboration-list article > div { grid-column:2; margin-top:.5rem; }
  .company-values > div:last-child,.company-project-relationships > div:last-child,.company-quality-grid,.team-grid,.team-review-columns,.company-culture > div,.company-credentials > div { grid-template-columns:1fr; }
  .company-document { max-width:440px; width:100%; }
  .company-document > div { font-size:clamp(2.8rem,10vw,4rem); }
  .company-milestones li { grid-template-columns:1fr; gap:1rem; }
  .company-logos > div { grid-template-columns:1fr 1fr; }
}
.motion-off .team-card:hover .team-portrait img,.motion-off .team-card:focus-within .team-portrait img { transform:none; }
@media (prefers-reduced-motion:reduce) { .team-card:hover .team-portrait img,.team-card:focus-within .team-portrait img { transform:none; } }

.company-story .brand-record-note { font-size:var(--text-small); border-top:1px solid var(--line); padding-top:1.25rem; color:var(--muted); }

.collaboration-themes > p { max-width:48rem; margin-top:2rem; color:var(--muted); }

/* Design-to-delivery editorial layouts. Native anchors and disclosures work without JS. */
.process-opening,.material-intro,.planning-intro,.quality-profile { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; padding-top:0; }
.process-opening h2,.material-intro h2,.planning-intro h2,.quality-profile h2 { font-size:clamp(2.5rem,4.5vw,4.8rem); }
.process-opening p,.material-intro p,.planning-intro p,.quality-profile p { color:var(--muted); margin-top:1.5rem; }
.process-opening .discipline-photo img,.material-intro .discipline-photo img,.planning-intro .discipline-photo img,.quality-profile .discipline-photo img { aspect-ratio:4/5; object-fit:cover; }
.guidance-note { border-left:2px solid var(--gold); padding-left:1rem; color:var(--muted); font-size:.8125rem; line-height:1.8; max-width:42rem; }
.process-journey { display:grid; grid-template-columns:.8fr 1.4fr; gap:clamp(2rem,7vw,7rem); align-items:start; background:var(--color-stone); }
.process-rail { position:sticky; top:calc(var(--header-height) + 2rem); }
.process-position { font-size:.75rem; color:var(--muted); margin:1rem 0 2rem; }
.process-position strong { font-family:var(--font-display); font-size:6rem; font-weight:400; line-height:1; letter-spacing:-.06em; color:var(--gold); }
.process-rail nav { display:grid; border-top:1px solid var(--line); }
.process-rail a { display:flex; align-items:center; gap:1rem; min-height:54px; padding:.8rem 0; font-size:.8125rem; border-bottom:1px solid var(--line); color:var(--muted); transition:color var(--motion-fast); }
.process-rail a span { font-size:.625rem; color:var(--gold); }
.process-rail a[aria-current] { color:var(--ink); font-weight:600; }
.process-step { scroll-margin-top:1rem; min-width:0; }
.process-step + .process-step { margin-top:5rem; padding-top:3rem; border-top:1px solid var(--line); }
.process-step-heading > span { display:block; font-family:var(--font-ui); font-size:.6875rem; color:var(--gold); letter-spacing:.1em; margin-bottom:1.5rem; }
.process-step h2 { font-size:clamp(2.4rem,4.2vw,4.3rem); }
.process-step-heading p { color:var(--muted); margin-top:1.5rem; }
.process-step-heading .process-phrase { font-size:var(--text-lead); color:var(--ink); }
.process-stage-detail { margin-top:2rem; border-top:1px solid var(--line); }
.process-stage-detail summary,.material-record summary,.faq-group summary { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:54px; padding:1rem 0; cursor:pointer; list-style:none; font-size:.8125rem; }
.process-stage-detail summary::-webkit-details-marker,.material-record summary::-webkit-details-marker,.faq-group summary::-webkit-details-marker { display:none; }
.process-stage-detail summary > span,.material-record summary > span,.faq-group summary > span { font-size:1.5rem; color:var(--gold); flex-shrink:0; }
.process-stage-detail[open] summary > span,.material-record details[open] summary > span,.faq-group details[open] summary > span { transform:rotate(45deg); }
.process-stage-inner { padding-top:1.25rem; }
.process-stage-inner h3 { font-size:1.6rem; }
.process-stage-inner ul,.material-record ul,.safety-questions ul { padding-left:1.2rem; color:var(--muted); }
.process-stage-inner li,.material-record li,.safety-questions li { padding-block:.45rem; line-height:1.8; font-size:.9375rem; }
.process-decision { background:var(--dark); color:var(--paper); padding:clamp(1.5rem,3vw,2.5rem); margin:2rem 0; }
.process-decision .eyebrow { color:var(--color-bronze-light); margin-bottom:1rem; }
.process-decision p { font-size:.9375rem; }
.process-stage-inner .discipline-photo img { aspect-ratio:16/10; object-fit:cover; }
.process-image-note,.material-evidence { font-size:.75rem; color:var(--muted); margin-top:1rem; line-height:1.8; }
.resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:3rem; }
.resource-grid > a { display:flex; flex-direction:column; align-items:start; background:var(--paper); padding:clamp(1.5rem,3vw,3rem); transition:background var(--motion-ui); }
.resource-grid > a:hover { background:var(--color-stone); }
.resource-grid > a > span { font-size:.6875rem; color:var(--gold); margin-bottom:2.5rem; }
.resource-grid h3 { font-size:clamp(1.8rem,2.5vw,2.5rem); }
.resource-grid p { color:var(--muted); font-size:.875rem; margin:1.5rem 0 2rem; }
.resource-grid svg { margin-top:auto; }
.process-model-intro { padding-bottom:2rem; }
.process-model-intro p { max-width:44rem; color:var(--muted); margin-top:2rem; }
.learning-cta { display:flex; justify-content:space-between; align-items:end; gap:3rem; color:var(--paper); background:var(--dark); border-bottom:1px solid #5e5c53; }
.learning-cta .eyebrow,.learning-cta h2 em { color:var(--color-bronze-light); }
.learning-cta p { color:var(--color-dark-muted); max-width:38rem; margin-top:1.5rem; }
.learning-cta .button { flex-shrink:0; }
.learning-cta :focus-visible { outline-color:var(--color-bronze-light); }
.material-explorer { background:var(--color-stone); }
.material-filters,.journey-filters,.insight-categories { display:flex; flex-wrap:wrap; gap:.5rem; }
.material-filters button,.journey-filters button,.insight-categories a { border:1px solid var(--line); padding:.7rem 1rem; min-height:44px; font-size:.75rem; transition:background var(--motion-ui),color var(--motion-ui); }
.material-filters button[aria-pressed=true],.journey-filters button[aria-pressed=true],.insight-categories a[aria-current] { background:var(--dark); color:var(--paper); border-color:var(--dark); }
#material-count,#journey-count,#faq-count { font-size:.75rem; color:var(--muted); margin:1.5rem 0 3rem; }
.material-record { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; padding:4rem 0; border-top:1px solid var(--line); }
.material-record:nth-child(even) > div:first-child { order:2; }
.material-record .discipline-photo img { aspect-ratio:4/5; object-fit:cover; }
.material-record h2 { font-size:clamp(2.5rem,4vw,4.5rem); }
.material-record h3 { font-size:1.5rem; margin-top:2rem; }
.material-record p:not(.material-evidence) { color:var(--muted); margin-top:1.5rem; }
.material-record details { border-block:1px solid var(--line); margin-block:1.5rem; }
.material-record details ul { margin-top:0; padding-bottom:1rem; }
.resource-intro { padding-top:0; }
.resource-profile { margin-top:5rem; padding-top:3rem; border-top:1px solid var(--line); }
.resource-profile p { color:var(--muted); max-width:38rem; margin:1.5rem 0; }
.preparation-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,8vw,8rem); align-items:start; padding-top:0; }
.preparation-layout aside { position:sticky; top:calc(var(--header-height) + 2rem); }
.preparation-layout h2 { font-size:clamp(2.8rem,4vw,4rem); }
.preparation-layout .guidance-note { margin-block:2rem; }
.checklist-status { font-size:1.2rem; }
.checklist-storage { font-size:.75rem; color:var(--muted); margin-top:.75rem; }
.preparation-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:1.5rem; }
.preparation-items article { border-top:1px solid var(--line); padding:1.5rem 0 2rem; }
.preparation-items label { display:flex; align-items:center; min-height:44px; gap:1.25rem; font-size:1rem; cursor:pointer; }
.preparation-items input { width:24px; height:24px; flex-shrink:0; accent-color:var(--gold); }
.preparation-items p { margin:1rem 0 0 3rem; color:var(--muted); font-size:.9375rem; }
.planning-sequence { background:var(--dark); color:var(--paper); }
.planning-sequence h2 em,.planning-sequence .eyebrow,.planning-sequence li > span { color:var(--color-bronze-light); }
.planning-sequence :focus-visible { outline-color:var(--color-bronze-light); }
.planning-sequence ol { padding:0; list-style:none; margin-top:3rem; display:grid; grid-template-columns:1fr 1fr; gap:0 4rem; }
.planning-sequence li { border-top:1px solid #5e5c53; padding:2rem 0; display:flex; gap:1.5rem; }
.planning-sequence li > span { font-size:.6875rem; padding-top:.4rem; }
.planning-sequence h3 { font-size:clamp(1.7rem,2.5vw,2.4rem); }
.planning-sequence p { color:var(--color-dark-muted); font-size:.875rem; margin-top:1rem; }
.planning-factors > div,.quality-considerations > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 5rem; margin-top:3rem; }
.planning-factors article,.quality-considerations article { border-top:1px solid var(--line); padding-top:2rem; }
.planning-factors h3,.quality-considerations h2 { font-size:2rem; }
.planning-factors p,.quality-considerations p { color:var(--muted); margin-top:1rem; }
.planning-decisions { padding-top:0; }
.decision-table-wrap { margin-top:3rem; }
.decision-table-wrap table { border-collapse:collapse; width:100%; text-align:left; font-size:.875rem; }
.decision-table-wrap caption { text-align:left; padding-bottom:1rem; color:var(--muted); font-size:.75rem; }
.decision-table-wrap th,.decision-table-wrap td { padding:1.25rem 1rem; border-bottom:1px solid var(--line); line-height:1.7; vertical-align:top; }
.decision-table-wrap thead { background:var(--color-stone); }
.decision-table-wrap tbody th { font-weight:500; width:30%; }
.faq-directory { padding-top:0; }
.faq-search { display:block; max-width:38rem; font-size:.75rem; }
.faq-search input { display:block; width:100%; padding:1rem; min-height:52px; margin-top:.75rem; border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:0; }
.faq-group { display:grid; grid-template-columns:.7fr 1.3fr; gap:3rem; margin:3rem 0; }
.faq-group h2 { font-size:2.5rem; }
.faq-group details { border-top:1px solid var(--line); }
.faq-group summary { font-size:1rem; }
.faq-group details p { color:var(--muted); font-size:.9375rem; padding:0 2rem 1.5rem 0; }
.quality-considerations { background:var(--color-stone); }
.safety-questions > p { max-width:40rem; color:var(--muted); margin-top:2rem; }
.safety-questions ul { max-width:46rem; margin-block:2rem; }
.journey-grid,.insight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4rem var(--grid-gap); }
.journey-grid img { aspect-ratio:4/3; object-fit:cover; }
.journey-grid figcaption { padding-top:1.5rem; }
.journey-grid figcaption span,.journey-grid small { display:block; font-size:.75rem; color:var(--muted); }
.journey-grid figcaption p { margin:.75rem 0; }
.journey-grid figcaption a { display:inline-flex; min-height:44px; align-items:center; border-bottom:1px solid var(--gold); margin-bottom:1rem; }
.insight-categories { padding-inline:var(--edge); }
.insight-card a { display:block; }
.insight-card img { aspect-ratio:4/3; object-fit:cover; transition:filter var(--motion-ui); }
.insight-card a:hover img { filter:brightness(.9); }
.insight-card span { display:block; font-size:.6875rem; color:var(--gold); margin-top:1.5rem; }
.insight-card h2 { font-size:clamp(2rem,3vw,3rem); margin-top:1rem; }
.insight-card p { color:var(--muted); font-size:.9375rem; margin:1.5rem 0; }
.insight-card small { font-size:.75rem; }
.article-lead { padding-top:0; padding-bottom:2rem; }
.article-byline { display:flex; flex-wrap:wrap; gap:1rem 2rem; font-size:.75rem; padding-block:1.5rem; border-top:1px solid var(--line); }
.article-byline a { text-decoration:underline; text-underline-offset:4px; }
.article-lead > img { aspect-ratio:16/9; object-fit:cover; }
.article-image-credit { color:var(--muted); font-size:.75rem; padding-top:1rem; }
.article-layout { display:grid; grid-template-columns:.6fr 1.4fr; gap:clamp(2rem,8vw,8rem); align-items:start; }
.article-layout aside { position:sticky; top:calc(var(--header-height) + 2rem); }
.article-layout nav { display:grid; }
.article-layout nav a { min-height:44px; padding-block:1rem; font-size:.8125rem; border-bottom:1px solid var(--line); }
.article-body { max-width:46rem; min-width:0; }
.article-body h2 { font-size:clamp(2.2rem,3vw,3.2rem); }
.article-body section + section { margin-top:4rem; }
.article-body p { margin-top:1.5rem; color:var(--muted); }
.article-references ul { padding-left:1.2rem; }
.article-references a { display:inline-block; min-height:44px; padding-block:.75rem; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.article-related .insight-grid,.article-projects .case-related-grid { margin-top:3rem; }
.learning-review { border-top:1px solid var(--line); }
.learning-review h2 { font-size:clamp(2.2rem,4vw,4rem); }
.learning-review p { color:var(--muted); max-width:45rem; margin-top:1.5rem; }
.learning-review ul,.learning-review ol { padding-left:1.25rem; line-height:2.2; margin-block:2rem; }
.learning-review .button { margin-top:2rem; }
html:not(.js) .material-filters,html:not(.js) .journey-filters,html:not(.js) .faq-search,html:not(.js) .preparation-actions,html:not(.js) .checklist-status,html:not(.js) .checklist-storage { display:none; }
@media(max-width:1100px) { .resource-grid { grid-template-columns:1fr 1fr; } .learning-cta { flex-direction:column; align-items:start; } }
@media(max-width:800px) {
 .process-opening,.material-intro,.planning-intro,.quality-profile,.process-journey,.material-record,.preparation-layout,.faq-group,.article-layout { grid-template-columns:1fr; gap:2.5rem; }
 .process-rail,.preparation-layout aside,.article-layout aside { position:static; }
 .process-position { display:none; }
 .process-rail nav { grid-template-columns:1fr 1fr; column-gap:1.25rem; }
 .process-rail a { align-items:start; font-size:.75rem; }
 .process-step + .process-step { margin-top:2.5rem; padding-top:2.5rem; }
 .process-step-heading > span { margin-bottom:1rem; }
 .process-stage-detail { margin-top:1.25rem; }
 .process-opening .discipline-photo img,.material-intro .discipline-photo img,.planning-intro .discipline-photo img,.quality-profile .discipline-photo img { aspect-ratio:4/3; }
 .material-record:nth-child(even) > div:first-child { order:0; }
 .material-record .discipline-photo img { aspect-ratio:4/3; }
 .planning-sequence ol,.planning-factors > div,.quality-considerations > div { grid-template-columns:1fr; }
 .faq-group { margin-top:3rem; gap:1.5rem; }
 .article-lead > img { aspect-ratio:4/3; }
}
@media(max-width:550px) {
 .resource-grid,.journey-grid,.insight-grid { grid-template-columns:1fr; }
 .material-filters button,.journey-filters button { padding:.65rem .8rem; }
 .process-step h2 { font-size:2.5rem; }
 .decision-table-wrap th,.decision-table-wrap td { padding:.8rem .5rem; font-size:.8125rem; }
 .decision-table-wrap tbody th { width:34%; }
 .preparation-items label { font-size:.9375rem; }
 .process-rail a { gap:.5rem; }
}
.motion-off .insight-card a:hover img { filter:none; }
@media(prefers-reduced-motion:reduce) { .insight-card a:hover img { filter:none; } }

/* Consultation and private lead workspace use the established editorial system. */
.enquiry-contact-details > a:not(.text-link),.contact-numbers a { display:block; padding-block:.6rem; min-height:44px; overflow-wrap:anywhere; font-size:.9375rem; }
.contact-numbers { color:var(--muted); font-size:.8125rem; }
.contact-numbers summary { cursor:pointer; min-height:44px; padding-block:.7rem; }
.contact-small-image small { display:block; margin-top:.75rem; color:var(--muted); font-size:.6875rem; line-height:1.8; }
.consultation-heading > p { font-size:.8125rem; color:var(--muted); margin-bottom:1.5rem; }
.consultation-form .inquiry-steps { list-style:none; padding:0 0 1.5rem; gap:.5rem; }
.consultation-form .inquiry-steps li { flex:1; min-width:0; }
.consultation-form .inquiry-steps button { display:flex; flex-direction:column; align-items:start; gap:.6rem; width:100%; min-height:60px; padding:0; border-top:2px solid var(--line); padding-top:.7rem; }
.consultation-form .inquiry-steps button[aria-current] { border-color:var(--gold); color:var(--gold); }
.consultation-form .inquiry-steps button:disabled { opacity:1; color:var(--muted); }
.consultation-form .inquiry-steps b { font-size:.6875rem; }
#enquiry-availability { font-size:.75rem; line-height:1.8; margin-bottom:2rem; border-left:2px solid var(--gold); padding-left:1rem; color:var(--muted); }
.consultation-form legend { font-size:clamp(1.9rem,2.5vw,2.8rem); }
.step-intro { font-size:.875rem; color:var(--muted); margin-bottom:2rem; }
.service-options { display:grid; gap:.75rem; }
.consultation-form .service-choice { display:flex; align-items:center; gap:1rem; padding:1.1rem; border:1px solid var(--line); cursor:pointer; margin:0; transition: background var(--motion-ui), border-color var(--motion-ui); }
.consultation-form .service-choice:focus-within { border-color:var(--gold); }
@media (hover:hover) { .consultation-form .service-choice:hover { border-color:var(--gold); } }
.consultation-form .service-choice:has(input:checked) { background:var(--paper); border-color:var(--gold); }
.consultation-form .service-choice input { flex-shrink:0; width:20px; height:20px; min-height:20px; margin:0; accent-color:var(--gold); }
.service-choice > span { display:flex; align-items:center; gap:1.25rem; font-size:.9375rem; }
.service-choice small { color:var(--gold); font-size:.625rem; }
.consultation-form input,.consultation-form select,.consultation-form textarea { border-radius:0; }
.consultation-form .field-error { display:block; color:#923a27; font-size:.75rem; line-height:1.7; margin-top:.5rem; }
.consultation-form .field-error:empty { display:none; }
.consultation-form [aria-invalid=true] { border-color:#923a27; outline-color:#923a27; }
.form-error-summary { border:1px solid #923a27; padding:1rem 1.25rem; margin-bottom:2rem; font-size:.8125rem; }
.form-error-summary p { color:#923a27; }
.form-error-summary ul { padding-left:1rem; margin-bottom:0; }
.form-error-summary button { text-align:left; text-decoration:underline; padding:.6rem 0; min-height:44px; font-size:.8125rem; }
.enquiry-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.consultation-form .upload-area { padding:2rem 1.25rem; border:1px dashed var(--gold); background:var(--paper); text-align:center; display:flex; align-items:center; flex-direction:column; gap:1rem; cursor:pointer; }
.upload-mark { font-size:2.5rem; color:var(--gold); }
.upload-area > span:not(.upload-mark) { font-size:.75rem; color:var(--muted); line-height:1.8; }
.upload-area input { width:100%; font-size:.75rem; padding:1rem 0 0; border:0; }
.upload-area input::file-selector-button { background:var(--dark); color:var(--paper); border:0; min-height:44px; padding:.75rem; margin-right:.75rem; cursor:pointer; }
.reference-file-list { list-style:none; padding:0; font-size:.8125rem; }
.reference-file-list li { display:flex; align-items:center; gap:1rem; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--line); }
.reference-file-list span { overflow-wrap:anywhere; }
.reference-file-list button { min-height:44px; font-size:.75rem; text-decoration:underline; }
.consultation-form .consent-choice { display:flex; align-items:start; gap:1rem; font-size:.8125rem; line-height:1.8; margin:1.5rem 0; }
.consultation-form .consent-choice input { width:22px; height:22px; min-height:22px; margin:2px 0 0; flex-shrink:0; accent-color:var(--gold); }
.consent-choice a { text-decoration:underline; text-underline-offset:3px; }
#enquiry-captcha { margin-top:1.5rem; }
#enquiry-confirmation h2 { font-size:clamp(2.4rem,4vw,4rem); }
#enquiry-confirmation p { margin-top:1.5rem; color:var(--muted); font-size:.9375rem; }
#enquiry-confirmation .confirmation-reference { color:var(--ink); border-block:1px solid var(--line); padding:1rem 0; overflow-wrap:anywhere; font-size:.8125rem; }
#enquiry-confirmation .text-link { margin-top:2rem; }
.enquiry-privacy { max-width:70rem; margin:auto; padding-top:0; }
.enquiry-privacy h2 { font-size:clamp(2rem,3vw,3rem); margin-top:3rem; }
.enquiry-privacy p { color:var(--muted); margin-top:1.5rem; }
/* The private workspace keeps the studio typography at an operational scale. */
.page-intro.admin-intro { padding-top:calc(var(--header-height) + var(--space-7)); padding-bottom:var(--space-7); }
body[data-page=contact] .admin-intro h1 { font-size:clamp(2.5rem,4.5vw,4.5rem); }
.admin-intro .page-title-row { align-items:center; }
.admin-intro .page-title-row > p { max-width:34rem; }
.lead-admin { padding-top:0; }
.lead-admin label { display:block; font-size:.8125rem; line-height:1.8; }
.lead-admin input,.lead-admin select,.lead-admin textarea { display:block; width:100%; min-height:48px; border:1px solid var(--line); background:transparent; padding:.75rem; margin:.5rem 0 1.5rem; border-radius:0; color:var(--ink); }
#admin-login { max-width:32rem; margin-top:2rem; }
#admin-status { margin-block:1.5rem; font-size:.9375rem; }
.admin-toolbar { display:flex; align-items:end; gap:1.5rem; flex-wrap:wrap; margin:2rem 0; }
.admin-toolbar label { margin-bottom:0; }
.admin-toolbar label:first-child { flex:1; min-width:220px; }
.admin-toolbar input,.admin-toolbar select { margin-bottom:0; }
.admin-columns { display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:clamp(2rem,5vw,5rem); }
#lead-count { color:var(--muted); font-size:.75rem; margin-bottom:1rem; }
.lead-row { display:flex; flex-direction:column; width:100%; text-align:left; gap:.6rem; padding:1.5rem 0; border-top:1px solid var(--line); }
.lead-row:hover { background:var(--color-stone); }
.lead-row strong { font-family:var(--font-display); font-size:1.75rem; font-weight:400; }
.lead-row small { font-size:.6875rem; color:var(--muted); overflow-wrap:anywhere; }
.lead-row span { font-size:.8125rem; }
.admin-pagination { display:flex; justify-content:space-between; gap:2rem; margin-top:1rem; }
#lead-detail { min-width:0; background:var(--color-stone); padding:clamp(1.25rem,3vw,3rem); }
#lead-detail h2 { font-size:2.5rem; overflow-wrap:anywhere; }
#lead-id { font-size:.75rem; margin:1rem 0 2rem; overflow-wrap:anywhere; }
#lead-data { display:grid; grid-template-columns:100px minmax(0,1fr); gap:1rem; font-size:.8125rem; line-height:1.8; }
#lead-data dt { color:var(--muted); text-transform:capitalize; }
#lead-data dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
#lead-detail h3 { font-size:1.7rem; margin-top:2rem; }
#lead-detail ul { padding-left:1.2rem; font-size:.8125rem; line-height:1.8; overflow-wrap:anywhere; }
#lead-detail li { padding-block:.5rem; }
#lead-update { margin-block:2rem; padding-block:2rem; border-block:1px solid var(--line); }
#lead-detail summary { cursor:pointer; min-height:44px; padding:.7rem 0; }
#lead-detail .danger-action { color:#923a27; margin-top:2rem; }
html:not(.js) #admin-login,html:not(.js) #inquiry-form { display:none; }
@media(max-width:900px) { .admin-columns { grid-template-columns:1fr; } }
@media(max-width:800px) { .admin-intro .page-title-row { align-items:start; } }
@media(max-width:550px) {
 .consultation-form .inquiry-steps { gap:.4rem; }
 .consultation-form .inquiry-steps b { font-size:var(--text-label); letter-spacing:0; }
 .service-choice > span { font-size:.875rem; gap:.75rem; }
 #lead-data { grid-template-columns:80px minmax(0,1fr); gap:.7rem; }
 #enquiry-captcha { max-width:100%; overflow:hidden; }
}

.consultation-form #inquiry-review { grid-template-columns:100px minmax(0,1fr); }
@media(max-width:550px) { .consultation-form #inquiry-review { grid-template-columns:90px minmax(0,1fr); } }

/* Static client presentation: direct contact, with no form or upload controls. */
.demo-contact-panel h2 { font-size:clamp(2.25rem,3.5vw,3.75rem); }
.demo-contact-panel > p { margin-top:1.5rem; color:var(--muted); }
.demo-contact-notice { border-top:1px solid var(--line); margin-top:3rem; padding-top:2rem; }
.demo-contact-notice h3 { font-size:1.6rem; }
.demo-contact-notice p { margin-top:1rem; font-size:var(--text-small); color:var(--muted); }

/* Editorial motion: one timing scale, native navigation, no scroll interception. */
/* Native snapshots can briefly block clicks after no-script navigation.
   Keep the no-JavaScript fallback immediate; enhance scripting-enabled pages. */
@view-transition { navigation: none; }
@media (scripting: enabled) { @view-transition { navigation: auto; } }
::view-transition-group(root) { animation: none; }
::view-transition-old(root) { animation: page-out var(--motion-page) ease-out both; }
::view-transition-new(root) { animation: page-in var(--motion-page) ease-out both; }
@keyframes page-out { to { opacity: 0; } }
@keyframes page-in { from { opacity: 0; } }
.motion-off::view-transition-group(root),
.motion-off::view-transition-old(root),
.motion-off::view-transition-new(root) { animation: none !important; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

.cinematic-scroll > span { transition: transform var(--motion-ui) var(--ease); }
.cinematic-scroll:is(:hover,:focus-visible) > span { transform: translateY(3px); }
.hero-contact:focus-visible svg, .button:focus-visible svg, .text-link:focus-visible svg { transform: translate(3px,-3px); }
.model-open-icon { transition: transform var(--motion-ui) var(--ease); }
.gallery-dialog[open] { animation: content-enter var(--motion-ui) var(--ease); }
.js.motion-ready .reveal:focus-within { opacity: 1; transform: none; }
.process-stage-detail summary > span, .material-record summary > span { transition: transform var(--motion-ui) var(--ease); }
.process-stage-detail[open] .process-stage-inner,
.material-record details[open] > ul,
.team-biography[open] > div { animation: content-enter var(--motion-card) var(--ease); }
@keyframes content-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.process-meter { height: 2px; background: var(--line); margin-bottom: 2rem; overflow: hidden; }
.process-meter > span { display: block; height: 100%; background: var(--gold); transform: scaleX(var(--journey-progress,0)); transform-origin: left; }
.process-rail a { position: relative; }
.process-rail a::before { content: ''; position: absolute; inset: auto 0 -1px; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform var(--motion-card) var(--ease); }
.process-rail a[aria-current]::before { transform: scaleX(1); }
@media (max-width: 800px) { .process-meter { display: none; } }
.material-record .text-link svg { transition: transform var(--motion-ui) var(--ease); }
.project-picture:focus-within img:not(.journal-hover-image),
.case-photo-grid button:focus-visible img,
.journal-feature:focus-visible > img,
.next-project:focus-visible img { transform: scale(1.025); }
/* Keep the panoramic project framing intact at keyboard focus. */
.journal-grid .journal-contained:focus-within a > img:not(.journal-hover-image) { transform: translateY(-50%); }
@media (hover: none), (pointer: coarse) {
  .pointer-label { display: none; }
  .cinematic-media, .case-hero .project-hero-photo img { animation: none !important; }
  .project-picture:hover img, .craft-photo:hover img, .team-card:hover .team-portrait img,
  .journal-feature:hover > img, .case-photo-grid button:hover img, .next-project:hover img { transform: none; }
  .journal-grid .journal-contained:hover a > img:not(.journal-hover-image) { transform: translateY(-50%); }
}
.motion-off .project-picture:focus-within img:not(.journal-hover-image),
.motion-off .case-photo-grid button:focus-visible img,
.motion-off .journal-feature:focus-visible > img,
.motion-off .next-project:focus-visible img { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .project-picture:focus-within img:not(.journal-hover-image), .case-photo-grid button:focus-visible img,
  .journal-feature:focus-visible > img, .next-project:focus-visible img { transform: none; }
  .journal-grid .journal-contained:focus-within a > img:not(.journal-hover-image) { transform: translateY(-50%); }
}
.motion-off .journal-grid .journal-contained:focus-within a > img:not(.journal-hover-image) { transform: translateY(-50%); }

.pointer-label { position: fixed; top: 0; left: 0; width: 90px; height: 90px; z-index: 90; display: grid; place-items: center; border-radius: 50%; background: var(--paper); color: var(--ink); font-size: .625rem; pointer-events: none; opacity: 0; transform: translate(-50%,-50%) scale(.6); transition: opacity var(--motion-fast), transform var(--motion-fast); }
.pointer-label.visible { opacity: 1; transform: translate(-50%,-50%) scale(1); }
.gallery-dialog { width: min(1360px, 96vw); max-width: 96vw; max-height: 94svh; padding: 0; border: 0; overflow: auto; background: var(--paper); color: var(--ink); }
.gallery-dialog::backdrop { background: #171710e8; backdrop-filter: blur(12px); }
.gallery-top { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 2rem; }
.gallery-top .eyebrow { font-size: .625rem; margin-bottom: .5rem; }
.gallery-top h2 { font-size: 2.5rem; }
.gallery-close { display: flex; align-items: center; justify-content: center; gap: 1rem; font-size: var(--text-small); min-width: 44px; min-height: 44px; flex-shrink: 0; }
.gallery-close > span { font-size: 2rem; }
.gallery-body { display: grid; grid-template-columns: 1.8fr 1fr; }
.gallery-stage { position: relative; background: var(--ink); height: min(65svh,680px); align-self: start; min-width: 0; }
.gallery-stage > img { width: 100%; height: 100%; object-fit: contain; transition: opacity var(--motion-fast); }
.gallery-stage > button { position: absolute; top: 45%; width: 44px; height: 44px; border-radius: 50%; background: var(--paper); color: var(--ink); font-size: 1.25rem; box-shadow: 0 3px 15px #0005; }
.gallery-stage > button:disabled { display: none; }
#gallery-prev { left: 1rem; }
#gallery-next { right: 1rem; }
.gallery-caption { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; gap: 1rem; padding: .875rem 1.25rem; background: #292823ef; color: var(--paper); font-size: var(--text-label); line-height: 1.6; }
.gallery-body aside { padding: 0 2rem 2rem; min-width: 0; }
.gallery-body aside > p { font-size: var(--text-small); color: var(--muted); }
.gallery-body dl { display: grid; grid-template-columns: 75px 1fr; gap: .9rem; margin: 1.5rem 0; font-size: var(--text-small); }
.gallery-body dt { color: var(--gold); }
.gallery-body dd { margin: 0; line-height: 1.5; }
.gallery-thumbs { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin-top: 1.5rem; }
.gallery-thumbs button { position: relative; padding: 0; border: 2px solid transparent; background: var(--color-stone); min-width: 44px; min-height: 44px; }
.gallery-thumbs button.active { border-color: var(--gold); }
.gallery-thumbs img { aspect-ratio: 1.4; object-fit: cover; }
.gallery-thumbs button > span { position: absolute; bottom: 0; right: 0; padding: .15rem .4rem; color: var(--paper); background: var(--ink); font-size: .625rem; }
.gallery-body .gallery-note { margin-top: 1rem; font-size: var(--text-label); line-height: 1.8; }
/* The pavilion is an illustrative architectural study, not a built project. */
.model-story { height: 210vh; min-height: 1350px; background: #242720; color: var(--paper); }
.model-sticky { position: sticky; top: 0; height: 100svh; min-height: 720px; overflow: hidden; background: radial-gradient(ellipse at 40% 55%,#3f4233,transparent 65%); }
.model-heading { position: absolute; left: var(--edge); top: calc(var(--header-height) + 2rem); z-index: 2; pointer-events: none; }
.model-heading h2 { font-size: clamp(2.5rem, 4vw, 4.5rem); }
.model-heading em { color: var(--color-bronze-light); }
#model-view { position: absolute; left: 0; top: 20%; width: 73%; height: 73%; cursor: grab; touch-action: pan-y; }
#model-view:active { cursor: grabbing; }
#model-view canvas { display: block; width: 100%; height: 100%; }
#model-fallback { position: absolute; inset: 25%; display: flex; flex-direction: column; justify-content: center; align-items: center; color: var(--color-bronze-light); }
.fallback-building { padding: 2.5rem 4rem; font-family: var(--font-ui); font-size: 2.5rem; border: 1px solid var(--color-bronze-light); transform: perspective(600px) rotateY(-30deg) rotateX(20deg); box-shadow: 20px -20px #c5ac8320, 40px -40px #c5ac8310; margin-bottom: 2rem; }
#model-fallback p { font-size: var(--text-small); text-align: center; }
.model-stage-copy { position: absolute; right: var(--edge); top: 43%; width: 26%; border-left: 1px solid #c7bd9f55; padding-left: 2rem; z-index: 2; }
.model-stage-copy > span { font-size: var(--text-label); color: var(--color-bronze-light); letter-spacing: .1em; }
.model-stage-copy h3 { font-size: clamp(1.75rem,2.5vw,2.75rem); margin: 1.25rem 0; }
.model-stage-copy p { font-size: var(--text-small); color: var(--color-dark-muted); min-height: 110px; }
.process-dots { display: flex; gap: .5rem; margin-top: 1rem; }
.process-dots button { height: 44px; width: 44px; padding: 20px 0; }
.process-dots button::after { content: ''; display: block; height: 2px; background: #7e8273; }
.process-dots button.active::after { background: var(--color-bronze-light); }
.model-caption { position: absolute; left: var(--edge); right: var(--edge); bottom: 1.5rem; display: flex; justify-content: space-between; gap: 2rem; color: var(--color-dark-muted); font-size: .625rem; letter-spacing: .07em; line-height: 1.6; }
.model-caption > span { text-align: right; }
@media (max-width: 1000px) {
  .gallery-body { display: block; }
  .gallery-stage { height: 55svh; max-height: 650px; }
  .gallery-body aside { padding: 1.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .gallery-body dl { margin: 0; }
  .gallery-body .text-link { grid-column: 1 / -1; width: fit-content; }
  .gallery-thumbs { grid-column: 1 / -1; display: flex; overflow: auto; padding: .25rem; margin: 0; }
  .gallery-thumbs button { flex: 0 0 100px; }
  .gallery-note { grid-column: 1 / -1; }
  .model-stage-copy { width: 30%; padding-left: 1.25rem; }
}
@media (max-width: 800px) {
  .model-story { height: auto; min-height: 0; }
  .model-sticky { position: relative; display: flex; flex-direction: column; height: auto; min-height: 0; padding: var(--section-space) var(--edge) 1.5rem; }
  .model-heading { position: static; }
  .model-heading h2 { font-size: 2.75rem; }
  .model-heading h2 br { display: initial; }
  #model-view { position: relative; inset: auto; width: 100%; height: 380px; margin-top: -1rem; }
  .model-stage-copy { position: static; width: 100%; padding: 0; border: 0; display: grid; grid-template-columns: 55px 1fr; gap: 0 1rem; }
  .model-stage-copy > span { padding-top: .5rem; }
  .model-stage-copy h3 { margin: 0 0 1rem; font-size: 1.875rem; }
  .model-stage-copy p { grid-column: 2; min-height: 72px; max-width: 30rem; }
  .process-dots { grid-column: 2; margin-top: .5rem; }
  .model-caption { position: static; border-top: 1px solid #7e827366; padding-top: 1rem; margin-top: 1.5rem; gap: 1rem; font-size: .625rem; }
  .pointer-label { display: none; }
}
@media (max-width: 600px) {
  .gallery-top { padding: 1rem; gap: 1rem; }
  .gallery-top h2 { font-size: 1.75rem; }
  .gallery-close { font-size: 0; gap: 0; }
  .gallery-close > span { font-size: 2rem; }
  .gallery-stage { height: 40svh; min-height: 280px; }
  #gallery-prev { left: .5rem; }
  #gallery-next { right: .5rem; }
  .gallery-caption { font-size: .625rem; padding: .75rem 1rem; }
  .gallery-body aside { display: block; padding: 1.25rem; }
  .gallery-body dl { margin: 1.25rem 0; }
  .gallery-thumbs { margin-top: 1.25rem; }
  .gallery-thumbs button { flex-basis: 80px; }
  #model-view { height: 320px; }
  .model-stage-copy { grid-template-columns: 42px 1fr; }
}
/* Motion is optional, including WebGL. CSS remains usable before JS or without it. */
.motion-off *, .motion-off *::before, .motion-off *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
.motion-off { scroll-behavior: auto; }
.motion-off .page-curtain, .motion-off .pointer-label { display: none; }
.js.motion-off .reveal { opacity: 1; transform: none; }
.motion-off .hero-image-frame, .motion-off .hero-photo { transform: none !important; }
.motion-off .project-runway, .project-runway:focus-within { height: auto; }
.motion-off .runway-sticky, .project-runway:focus-within .runway-sticky { position: relative; height: auto; overflow-x: auto; padding-block: 0 2rem; }
.motion-off .runway-track, .project-runway:focus-within .runway-track { transform: none !important; }
.motion-off .runway-guide, .project-runway:focus-within .runway-guide { display: none; }
.motion-off .model-story { height: auto; min-height: 0; }
.motion-off .model-sticky { position: relative; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .page-curtain, .pointer-label { display: none; }
  .js .reveal { opacity: 1; transform: none; }
}
@media (forced-colors: active) {
  .button, .header-cta, .quick-view, .filters button.active { border: 1px solid ButtonText; }
  .gallery-thumbs button.active { border-color: Highlight; }
}
@media print {
  .site-header, .mobile-menu, .closing, .site-footer, .gallery-dialog, .pointer-label, .page-curtain, .quick-view { display: none !important; }
  .section { padding: 2rem 0; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero, .project-hero { min-height: 500px; }
}
