:root {
  color-scheme: light;
  --background: #d8eefc;
  --text: #2c2e83;
  --hover: rgb(44 46 131 / 8%);
  --ui-stroke: 3px;
  --frame-gap: clamp(0.75rem, 2vw, 1.5rem);
  --page-width: max(75rem, 80%);
  --corner-radius: clamp(0.9rem, 1.8cqw, 1.5rem);
  --logo-width: clamp(5.75rem, 19.2cqw, 16.5rem);
  --logo-height: calc(var(--logo-width) / 9.11);
  --logo-padding: clamp(0.75rem, 1.5cqw, 1.25rem);
  --notch-width: calc(var(--logo-width) + var(--logo-padding) * 2);
  --notch-height: calc(var(--logo-height) + var(--logo-padding) * 2 + clamp(0.5rem, 1cqw, 0.75rem));
  --header-height: max(3.75rem, var(--notch-height));
  --content-cutoff: calc(var(--frame-gap) + var(--header-height) + clamp(2rem, 6cqw, 5rem));
  --hero-height: calc(100svh - var(--frame-gap));
  --section-hold: clamp(6rem, 14svh, 10rem);
  --section-peek: clamp(5rem, 12svh, 8rem);
  --card-gap: 2.2rem;
  --section-heading-size: clamp(1.75rem, 4.8cqw, 4rem);
  --section-title-preview: clamp(4.75rem, 7svh, 6rem);
  --section-title-settled: max(calc(var(--header-height) + 1.5rem), 12svh);
  font-size: 110%;
  font-family: system-ui, sans-serif;
  color: var(--text);
  background: white;
  scroll-behavior: smooth;
}
:root[data-navigation-restoring] { scroll-behavior: auto; }
:root[data-project-restoring] .site-frame { visibility: hidden; }
:root[data-project-restoring] .market-project-view * { transition: none !important; }

* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
:focus-visible, .focus-visible { outline: 0.125rem solid currentColor; outline-offset: 0.3125rem; }

.skip-link { position: fixed; z-index: 3; top: 1rem; left: 1rem; transform: translateY(-200%); padding: 1rem; background: white; }
.skip-link:focus { transform: none; }
.site-frame { width: min(calc(100% - var(--frame-gap) * 2), var(--page-width)); margin: var(--frame-gap) auto; container-type: inline-size; }
main { isolation: isolate; display: flow-root; overflow: clip; overflow-clip-margin: 3rem; overflow-anchor: none; scroll-margin-top: var(--frame-gap); }
.hero { position: relative; z-index: var(--sheet-index); min-height: var(--hero-height); text-align: center; }
.panel-content { position: relative; min-height: inherit; }
.hero .panel-content { display: grid; place-items: start center; padding: max(calc(var(--content-cutoff) - var(--frame-gap) + 1rem), 27svh) 1.5rem 2rem; }
h1 { margin: 0; font-size: clamp(3.5rem, 8cqw, 8rem); font-weight: 650; line-height: 1.05; letter-spacing: -0.055em; }
.hero-copy { max-width: 100%; }
.hero-subtitle { max-width: 36rem; margin: 1.4rem auto 0; font-size: clamp(1.32rem, 2.28cqw, 1.8rem); font-weight: 400; line-height: 1.5; }
.page-section { position: relative; z-index: var(--sheet-index); min-height: calc(100svh + var(--notch-height) + var(--section-hold)); scroll-margin-top: var(--frame-gap); color: var(--text); }
.page-section::after { content: ""; display: block; height: var(--section-hold); }
.page-section .panel-content { position: sticky; top: var(--frame-gap); min-height: calc(100svh + var(--notch-height)); padding: var(--section-title-preview) clamp(1.5rem, 4cqw, 4rem) 3rem; }
.section-copy { --story-visibility: clamp(0, calc((var(--section-arrival, 0) - 0.15) * 1.5), 1); }
.story-stage { position: relative; margin-bottom: calc(var(--section-title-settled) - var(--section-title-preview)); translate: 0 calc((var(--section-title-settled) - var(--section-title-preview)) * var(--section-arrival, 0)); }
.story-stage::after { content: ""; display: block; height: var(--balance-scroll-distance, 0px); }
.story-stage.can-pin .section-copy { position: sticky; top: calc(var(--balance-pin-top) - (var(--section-title-settled) - var(--section-title-preview))); }
.section-heading { margin: 0; text-align: center; font-size: var(--section-heading-size); font-weight: 600; line-height: 1.15; letter-spacing: -0.035em; }
.story-next { display: block; margin-top: 0.15em; opacity: var(--story-visibility); translate: 0 calc((1 - var(--section-arrival, 0)) * 0.5em); }
#about .panel-content, #approach .panel-content, #projects .panel-content, #market .panel-content, #team .panel-content, #news .panel-content { padding-bottom: calc(3rem + var(--notch-height) + var(--section-peek)); }
.about-story { width: min(100%, 43rem); margin: 2.5rem auto 0; text-align: center; opacity: var(--story-visibility); }
.about-story p, .stat-row dt, .project-information p { font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; }
.about-story p { margin: 0 0 1.1rem; }
.about-story p:last-child { margin-bottom: 0; }
.scroll-cue { position: relative; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: transparent; color: var(--text); transition: opacity 100ms ease, visibility 0s; }
.scroll-cue > svg:not(.control-outline) { width: 1.75rem; height: 1.75rem; }
.section-preview-link { position: absolute; z-index: 1; top: calc(var(--header-height) / 2 - 1.375rem + 0.75rem); left: 50%; translate: -50% 0; opacity: calc(1 - var(--section-arrival, 0)); }
.section-preview-link[hidden] { display: none; }
.section-continue-link { margin: 1.5rem auto 0; }
.scroll-cue.is-cue-hidden { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 100ms ease, visibility 0s 100ms; }
.hero, .page-section { isolation: isolate; }
.panel-surface { position: sticky; z-index: var(--sheet-index); top: var(--frame-gap); height: 0; pointer-events: none; }
.panel-surface[data-theme] { margin-top: calc(-1 * var(--notch-height)); }
.panel-surface.has-preview { margin-top: calc(-1 * (var(--notch-height) + var(--section-peek))); }
.surface-body { position: absolute; top: 0; right: 0; left: 0; overflow: clip; }
.surface-face { height: 100%; border-radius: 0 0 var(--corner-radius) var(--corner-radius); background: var(--background); }
.ld-field { position: absolute; top: 0; left: 0; width: 100%; height: var(--hero-height); pointer-events: none; }

.logistics-case { position: relative; margin-top: 3rem; padding-top: 3rem; scroll-margin-top: var(--content-cutoff); }
.logistics-case::before { content: ""; position: absolute; top: 0; inset-inline: 0; height: var(--ui-stroke); border-radius: 999px; background: white; }
.supply-comparison { position: relative; width: min(100%, 64rem); margin: 3rem auto 0; color: inherit; opacity: clamp(0, calc((var(--section-arrival, 0) - 0.55) * 2.5), 1); }
.supply-chart { --supply-axis-font: clamp(1.2rem, 1.86cqw, 1.44rem); --supply-axis-space: 4rem; width: min(calc(100% - var(--supply-axis-space) * 2 - 2rem), 48rem); margin: 0 auto; }
.supply-plot { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; justify-items: center; height: clamp(12rem, 26cqw, 17rem); border-left: var(--ui-stroke) solid currentColor; border-bottom: var(--ui-stroke) solid currentColor; border-bottom-left-radius: var(--corner-radius); }
.supply-axis-label { position: absolute; top: 50%; left: -3.5rem; translate: -100% -50%; rotate: 180deg; writing-mode: vertical-rl; white-space: nowrap; font-size: var(--supply-axis-font); line-height: 1; }
.supply-ticks { position: absolute; inset: 0; pointer-events: none; }
.supply-ticks > span { position: absolute; bottom: calc(var(--tick) * 20%); left: -0.95rem; translate: -100% 50%; font-size: var(--supply-axis-font); line-height: 1; }
.supply-ticks > span::after { content: ""; position: absolute; top: 50%; right: -0.95rem; width: 0.4rem; border-top: var(--ui-stroke) solid currentColor; }
.supply-bar { position: relative; width: clamp(3rem, 10cqw, 7rem); height: 100%; border-radius: var(--corner-radius) var(--corner-radius) 0 0; clip-path: inset(0 0 0 round var(--corner-radius) var(--corner-radius) 0 0); }
.supply-bar-local { clip-path: inset(80% 0 0 round var(--corner-radius) var(--corner-radius) 0 0); }
.supply-comparison[data-supply-chart="waiting"] .supply-bar { clip-path: inset(100% 0 0); }
.supply-step { position: absolute; bottom: calc(var(--step) * 20%); left: 0; width: 100%; height: 20%; background: var(--step-colour); }
.supply-labels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; justify-items: center; gap: 1.5rem; margin-top: 1.75rem; font-size: clamp(1rem, 2.1cqw, 1.6rem); font-weight: 600; text-align: center; }
.supply-labels img { display: block; width: min(100%, 10rem); height: auto; filter: brightness(0) invert(1); }
.supply-comparison .comparison-gains { margin: 2.5rem auto 0; }
.supply-chart[hidden] + .comparison-gains { margin-top: 0; }
.comparison-gains dd { color: #d8eefc; }
.comparison-gains .stat-result { max-width: 9ch; font-size: clamp(1.1rem, 2.8cqw, 2.25rem); line-height: 1.2; }
.comparison-gains > div:last-child { justify-content: center; }
.stat-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.stat-row > div { display: flex; flex-direction: column-reverse; align-items: center; justify-content: flex-end; gap: 0.75rem; padding-inline: 1rem; text-align: center; }
.demand-steps p { font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; }
.stat-row dd { margin: 0; font-size: clamp(1.8rem, 4cqw, 3.25rem); font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: -0.04em; }
.stat-row dd .stat-unit { font-size: 0.65em; }
.chain-context { width: min(100%, 60rem); margin: 2.5rem auto 0; opacity: var(--story-visibility); }
.chain-context dd { font-size: clamp(1.5rem, 4cqw, 3.25rem); }

.about-copy, .approach-copy, .platform-copy, .market-copy, .team-copy { width: min(100%, 64rem); margin-inline: auto; }
.about-body { display: flow-root; opacity: var(--story-visibility); }
.about-body :is(.about-story, .chain-context, .section-intro, .story-next, .supply-comparison, .food-miles) { opacity: 1; }
.about-body .story-next { translate: none; }
#about, #approach, #projects, #market, #team, #news { --section-hold: 0px; min-height: 0; }
#about .panel-content, #approach .panel-content, #projects .panel-content, #market .panel-content, #team .panel-content, #news .panel-content { min-height: 0; }
.food-miles { display: block; width: 100%; height: auto; margin: clamp(3rem, 5cqw, 4rem) auto 0; overflow: visible; opacity: var(--story-visibility); }
.food-miles[hidden] { display: none; }
.food-miles-road { fill: none; stroke: white; stroke-width: 36; stroke-linecap: round; stroke-linejoin: round; }
.food-miles-landmarks { color: white; stroke: currentColor; stroke-width: 12; stroke-miterlimit: 10; }
.food-miles-stripes { fill: none; stroke: var(--background); stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 58.33 58.33; animation: food-miles-travel 2.2s linear infinite; }
@keyframes food-miles-travel { to { stroke-dashoffset: 116.66; } }
#approach-title { text-wrap: balance; }
#logistics-title > span { display: block; }
.section-intro { width: min(100%, 43rem); margin: 2.5rem auto 0; text-align: center; font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; opacity: var(--story-visibility); }
.approach-outcome { margin-top: 3.5rem; }
.platform-copy { width: 100%; }
.platform-copy > .section-intro { width: min(100%, 43rem); margin: 1.5rem auto 0; text-align: center; }
.platform-copy > .platform-outcome { margin-top: 1rem; }
.platform-network { --purchasing: #d8eefc; --capital: #2c2e83; --knowhow: #95a4d6; width: min(100%, 59.4rem); margin: -0.5rem auto 0; opacity: var(--story-visibility); }
/* 0.75rem is half the difference between the figure and outcome margins. */
.platform-map { display: block; width: 110%; height: auto; margin-inline: -5%; translate: 0 calc(0.75rem - var(--network-space-offset, 0%)); overflow: visible; border-radius: var(--corner-radius); }
.platform-network[data-platform-mode="layered"] { width: min(100%, 68.31rem); margin-block: -4cqw -2cqw; }
.network-fill[data-layer="purchasing"] { fill: var(--purchasing); }
.network-fill[data-layer="capital"] { fill: var(--capital); }
.network-fill[data-layer="knowhow"] { fill: var(--knowhow); }
.network-local { fill: none; stroke: #ffffff; stroke-width: var(--ui-stroke); stroke-dasharray: 6 8; stroke-linecap: round; vector-effect: non-scaling-stroke; transform-box: fill-box; transform-origin: center; animation: local-orbit 40s linear infinite; }
.platform-network[data-platform-mode="layered"] .network-local { fill: white; stroke: none; animation: none; }
.platform-network[data-platform-mode="layered"] :is(.network-layer-label, .network-local-label) { font-size: 24px; }
.platform-network[data-platform-mode="layered"] .network-local-label { fill: #2c2e83; font-size: 20px; }
.network-depth { pointer-events: none; }
.network-depth-local { fill: color-mix(in srgb, white, black var(--layer-shade)); }
.network-depth [data-layer="purchasing"] { fill: color-mix(in srgb, var(--purchasing), black var(--layer-shade)); }
.network-depth [data-layer="capital"] { fill: color-mix(in srgb, var(--capital), black var(--layer-shade)); }
.network-depth [data-layer="knowhow"] { fill: color-mix(in srgb, var(--knowhow), black var(--layer-shade)); }
@keyframes local-orbit { to { transform: rotate(1turn); } }
.network-hub { cursor: grab; touch-action: none; outline: none; }
.network-hub.is-dragging { cursor: grabbing; }
.network-hit { fill: transparent; }
.network-hub text, .network-labels { pointer-events: none; user-select: none; text-anchor: middle; font-weight: 600; letter-spacing: -0.025em; }
.network-hub-mark { pointer-events: none; }
.network-local-label { fill: #ffffff; font-size: 21px; dominant-baseline: middle; }
.network-layer-label { fill: #2c2e83; font-size: 21px; dominant-baseline: middle; }
.network-layer-label.is-light { fill: #ffffff; }
.network-hub:focus-visible .network-hit { stroke: #ffffff; stroke-width: var(--ui-stroke); stroke-dasharray: 4 5; }
.market-scene { margin-top: 1rem; }
.market-visual { --market-start: #95a4d6; --market-expand: #2c2e83; width: min(100%, 57rem); margin: 0 auto; opacity: var(--story-visibility); }
/* Separate the key rows into the outline's empty upper margin without moving the map. */
.market-phase { --key-inset: clamp(0.25rem, 1.3cqw, 1rem); display: grid; grid-template-rows: repeat(2, 1.5em); gap: 1.6em; width: fit-content; margin: 0 auto calc(0.75rem - 1.4em - var(--key-inset)); padding-top: var(--key-inset); font-size: clamp(1.2rem, 2.1cqw, 1.6rem); line-height: 1.25; letter-spacing: -0.025em; }
.market-phase strong { display: flex; align-items: center; gap: 0.35em; font-weight: 600; opacity: 0; translate: 0 0.35em; transition: opacity 250ms ease, translate 300ms ease; }
.market-phase [data-phase="1"], .market-visual:is([data-market-stage="2"], [data-market-stage="3"]) .market-phase [data-phase] { opacity: 1; translate: 0; }
.market-key-pin { display: block; flex: none; width: 1.1em; aspect-ratio: 1; color: var(--market-start); }
[data-phase="2"] .market-key-pin { color: var(--market-expand); }
.market-map-frame { position: relative; width: min(100%, 52rem); margin-inline: auto; }
.market-map { display: block; width: 100%; height: auto; overflow: visible; }
.market-land { fill: none; stroke: currentColor; stroke-width: calc(var(--ui-stroke) * 1.4); stroke-linecap: round; stroke-linejoin: round; opacity: 0.65; }
.market-pin-layer { position: absolute; inset: 0; pointer-events: none; }
.market-pin { position: absolute; width: clamp(11.76px, 2.016%, 20.16px); aspect-ratio: 1; translate: -50% -100%; color: var(--market-start); }
.market-pin[data-phase="2"] { color: var(--market-expand); }
.market-key-pin, .market-pin-glyph { background: currentColor; mask: url("assets/icons/pin.svg") center / contain no-repeat; }
.market-pin-glyph { display: block; width: 100%; height: 100%; transform-origin: center bottom; opacity: 0; }
.market-visual[data-market-mode="network"] { width: min(100%, 64rem); }
.market-visual[data-market-mode="network"] .market-pin-layer { display: none; }
.market-visual[data-market-mode="network"] .market-phase { display: flex; justify-content: center; gap: 1.5rem; margin: 0 auto 0.25rem; padding-top: 0.5rem; }
.market-visual[data-market-mode="network"] .market-key-pin { mask: none; border-radius: 50%; }
.market-metaball { opacity: 0; }
.market-map[data-next-hub] { cursor: none; }
.market-next-hub { fill: white; font-size: 12px; font-weight: 600; pointer-events: none; user-select: none; }
.market-copy > .section-continue-link { margin-top: 1rem; }
.market-copy { width: 100%; }
.market-copy > .section-intro { margin-top: 1.5rem; }
.market-overview { transition: opacity 200ms ease; }
.market-explore { display: flex; justify-content: center; align-items: center; gap: 0.35em; margin-top: 1.25rem; font-size: clamp(1.2rem, 2.1cqw, 1.6rem); font-weight: 600; line-height: 1.25; opacity: var(--story-visibility); }
.market-explore button { display: inline-flex; align-items: center; gap: 0.35em; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; white-space: nowrap; cursor: pointer; }
.market-explore button:focus-visible { outline: none; }
.market-explore button:is(:hover, :focus-visible) .control-outline rect { stroke-dashoffset: 0; opacity: 1; }
.market-explore button:focus-visible .control-outline { stroke-width: calc(var(--ui-stroke) + 1px); }
.market-explore button:disabled .control-outline { display: none; }
.market-explore svg:not(.control-outline) { rotate: -90deg; }
.market-project-view { --project-title-preview: var(--section-title-preview); --project-title-settled: clamp(5.5rem, 6cqw, 6.25rem); --project-cue-size: 2.75rem; --project-title-cue-gap: 0.25rem; color: #2c2e83; }
main[hidden], .market-project-view[hidden], .header-theme[hidden] { display: none; }
.project-main, .project-information { --project-page-height: calc(100dvh - var(--frame-gap) * 2); }
/* Use unique on an individual project to select its own information template. */
.project-main { --project-information-page: universal; overflow-clip-margin: 0px; }
.project-page { --project-title-top: calc(var(--project-title-preview) + (var(--project-title-settled) - var(--project-title-preview)) * var(--section-arrival, 1)); min-height: var(--project-page-height); }
.project-main > .hero { --project-preview-room: calc(100dvh - var(--frame-gap) + var(--notch-height) + var(--section-peek) - var(--section-title-preview) - var(--section-heading-size) * 1.15 - 0.75rem); min-height: min(calc(var(--project-page-height) + max(0px, var(--section-peek) - var(--corner-radius) * 1.15)), max(var(--project-page-height), var(--project-preview-room))); }
.project-page::after { height: 0; }
.market-project-view:not([data-project-info="true"])::after { content: ""; display: block; height: max(0px, calc(100dvh - var(--frame-gap) * 2 - var(--project-image-height))); }
.project-page .panel-content { height: var(--project-page-height); min-height: var(--project-page-height); }
.project-page.page-section .panel-content { padding-top: calc(var(--project-title-top) + var(--section-heading-size) * 1.15); }
.project-page .story-stage { margin-bottom: 0; translate: none; }
.project-main > .hero .panel-content { height: var(--project-page-height); padding: 0; }
.project-aerial { position: absolute; inset: 0; clip-path: var(--project-sheet-shape); opacity: var(--section-arrival, 1); isolation: isolate; will-change: opacity; }
.project-page:last-child .project-aerial { clip-path: var(--project-image-shape); }
.is-island-sheet .project-aerial { opacity: 1; }
:is([data-project-fading], [data-project-island]) .is-island-sheet .surface-body { height: var(--project-image-height) !important; }
[data-project-island] .is-island-sheet .panel-content { position: fixed; top: var(--frame-gap); left: 50%; translate: -50% 0; width: min(calc(100% - var(--frame-gap) * 2), var(--page-width)); clip-path: var(--project-image-shape) !important; }
[data-project-island] .panel-surface.is-island-sheet { visibility: hidden !important; }
[data-project-island] .is-island-sheet .project-scene { transform: translate(0, var(--project-entry-offset)) scale(1); }
.project-title { position: absolute; z-index: 2; inset: var(--project-title-top) 0 auto; margin: 0; padding: 0 17%; color: white; text-align: center; user-select: text; }
.project-header-shade { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: clamp(9rem, 18cqw, 16rem); background: linear-gradient(rgb(0 0 0 / 36%), transparent); clip-path: var(--project-sheet-shape); opacity: var(--section-arrival, 1); pointer-events: none; }
[data-project-info="true"] .project-header-shade, [data-project-island="true"] .project-header-shade { display: none; }
body[data-project-page] :is(.site-menu, .menu-toggle, .header-theme) { visibility: hidden; }
body[data-project-page] .site-header { z-index: 4; pointer-events: none; }
body[data-project-page] .site-header .logo-slot { pointer-events: auto; }
body[data-project-page]::before { content: ""; position: fixed; z-index: 3; inset: 0 0 auto; height: var(--frame-gap); background: white; pointer-events: none; }
.project-main .section-preview-link { left: 50%; translate: -50% 0; }
.project-previous { --text: white; --outline: white; position: absolute; z-index: 1; top: calc(var(--project-title-top) - var(--project-cue-size) - var(--project-title-cue-gap)); left: 50%; translate: -50% 0; pointer-events: auto; cursor: pointer; }
.project-previous[hidden] { display: none; }
.project-previous > svg:not(.control-outline) { rotate: 180deg; }
.project-page-controls { position: fixed; z-index: 3; top: var(--frame-gap); left: 50%; translate: -50% 0; width: min(calc(100% - var(--frame-gap) * 2), var(--page-width)); height: var(--project-control-height); pointer-events: none; }
.navigation-notch { position: absolute; inset: 0; transform-origin: left center; }
.navigation-notch-right { transform-origin: right center; }
.navigation-notch[hidden] { display: none; }
body[data-project-page] .page-scrollbar, body:has(.legal-page-controls) .page-scrollbar { transition: opacity 90ms 180ms ease, visibility 0s; }
body[data-project-page]:has(.project-page-controls[data-navigation-visible="false"]) .page-scrollbar, body:has(.legal-page-controls[data-navigation-visible="false"]) .page-scrollbar { opacity: 0; visibility: hidden; transition-delay: 0s, 90ms; }
.project-edge-cutouts { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.project-header-cutout { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.project-island-corners { opacity: 0; }
:is([data-project-info="true"], [data-project-island]) .project-island-corners { opacity: 1; }
body:has([data-project-island]) :is(.page-scrollbar, .site-menu, .menu-toggle, .header-theme) { visibility: hidden; }
:root:has([data-project-island], [data-project-preparing]:not([data-project-info="true"])) { overflow: hidden; }
:root:has([data-project-opening]) { overflow: hidden; scroll-behavior: auto; }
.project-scene { position: absolute; top: 50%; left: 50%; translate: -50% -50%; width: max(100%, calc(var(--project-image-height) * var(--project-scene-width, 7679) / var(--project-scene-height, 4326))); height: auto; aspect-ratio: var(--project-scene-width, 7679) / var(--project-scene-height, 4326); transform-origin: var(--hub-door-x) var(--hub-door-y); transform: translate(0, 0) scale(1); }
@media (prefers-reduced-motion: no-preference) {
  [data-project-island]:is([data-hub-view="entering"], [data-hub-view="exiting"]) .is-island-sheet .project-scene { transition: transform 850ms cubic-bezier(0.4, 0, 0.2, 1); }
  [data-hub-hover="false"] .project-page[data-hub-available="true"] .hub-click-wiggle { animation: hub-click-wiggle 15s ease-in-out infinite; }
}
.project-scene > img, .project-hub-art { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; }
.project-hub-art { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.project-scene[data-hub-ready="true"] .project-hub-art { opacity: 1; }
.hub-click-icon { fill: #2c2e83; pointer-events: none; }
.hub-click-wiggle { transform-box: view-box; transform-origin: 0 0; }
@keyframes hub-click-wiggle {
  0%, 94%, 100% { transform: rotate(0deg); }
  94.5% { transform: rotate(-12deg); }
  95.5% { transform: rotate(12deg); }
  96.5% { transform: rotate(-10deg); }
  97.5% { transform: rotate(10deg); }
  98.5% { transform: rotate(-8deg); }
  99.5% { transform: rotate(8deg); }
}
.hub-badge { transform-box: view-box; transform-origin: 0 0; transition: transform 240ms ease; }
[data-hub-hover="true"] .project-page[data-hub-available="true"] .hub-badge { transform: var(--hub-badge-hover-transform); }
.hub-building { transform-box: view-box; transform-origin: 0 0; transform: scale(1); transition: transform 240ms ease; }
[data-hub-hover="true"] .project-page[data-hub-available="true"] .hub-building { transform: var(--hub-building-hover-transform); }
.project-hub-foreground { position: absolute; inset: 0; pointer-events: none; }
.project-scene > .project-detail { position: absolute; left: var(--detail-left); top: var(--detail-top); width: var(--detail-width); height: var(--detail-height); object-fit: fill; opacity: 0; pointer-events: none; transition: opacity 200ms ease; }
[data-hub-detail="true"]:is([data-hub-view="preparing"], [data-hub-view="entering"], [data-hub-view="inside"]) .project-detail { opacity: 1; }
[data-hub-view="exiting"] .project-detail { transition-delay: 570ms; }
.market-project-view:not([data-hub-view="aerial"]):not([data-hub-view="preparing"]) .project-hub-art { visibility: hidden; }
[data-hub-view="preparing"] .project-hub-art { opacity: 1; visibility: visible; }
.project-hub-entry { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; visibility: hidden; clip-path: var(--hub-hit-shape, url(#hub-hit-clip)); }
.project-hub-entry:focus-visible { outline: none; }
.project-page[data-hub-available="true"] .project-hub-entry { visibility: visible; }
@media (pointer: coarse), (max-width: 48rem) {
  .project-hub-entry { inset: var(--hub-touch-inset, 0); width: auto; height: auto; clip-path: none; touch-action: manipulation; }
  body[data-project-page] .page-scroll-hit { pointer-events: none; }
}
.project-interior { position: absolute; inset: 0; background: #d8eefc; opacity: 0; pointer-events: none; transition: opacity 280ms ease; }
.project-panorama { width: 100%; height: 100%; background: #d8eefc; touch-action: none; }
.project-panorama:focus-visible { outline: 2px solid #2c2e83; outline-offset: -4px; }
.panorama-controls { position: absolute; bottom: clamp(1rem, 2cqw, 1.5rem); left: 50%; translate: -50% 0; width: min(14rem, calc(100% - 4rem)); padding: 0.35rem 1rem; border-radius: 999px; background: rgb(255 255 255 / 90%); visibility: hidden; }
[data-panorama-ready="true"] .panorama-controls { visibility: visible; }
.panorama-angle { display: block; width: 100%; height: 2rem; margin: 0; color: inherit; accent-color: #2c2e83; cursor: ew-resize; border-radius: 1rem; }
.panorama-topics { --topic-size: min(clamp(11.25rem, 22.5cqw, 19.5rem), calc((100dvh - var(--notch-height) - 6.5rem) * 0.75)); position: absolute; z-index: 1; left: clamp(calc(var(--topic-size) / 2 + 0.75rem), var(--topic-x, 50%), calc(100% - var(--topic-size) / 2 - 0.75rem)); top: clamp(calc(var(--notch-height) + var(--topic-size) / 2 + 0.75rem), var(--topic-y, 50%), calc(100% - var(--topic-size) / 2 - var(--topic-bottom-clearance, 5rem))); translate: -50% -50%; width: var(--topic-size); aspect-ratio: 1; perspective: 900px; color: #2c2e83; pointer-events: none; user-select: none; visibility: hidden; opacity: 0; transition: opacity 150ms ease, visibility 0s 150ms; }
.panorama-topics[data-visible="true"] { visibility: visible; opacity: 1; transition-delay: 0s; }
.project-interior[data-panorama-zones] :is(.project-panorama, .pnlm-grab, .pnlm-grabbing) { cursor: default; }
.project-interior:has(.panorama-topics[data-visible="true"]) :is(.project-panorama, .pnlm-grab, .pnlm-grabbing) { cursor: none; }
.panorama-topics-card { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 550ms cubic-bezier(0.22, 0.61, 0.36, 1); }
.panorama-topics[data-zone="on-site"] .panorama-topics-card { transform: rotateY(180deg); }
.panorama-topic { position: absolute; inset: 0; display: grid; align-content: center; gap: 0.65rem; padding: 1rem 0.75rem; border-radius: 50%; background: rgb(255 255 255 / 80%); text-align: center; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.panorama-topic-production { transform: rotateY(180deg); color: white; background: rgb(44 46 131 / 80%); }
.panorama-topic strong { font-size: clamp(1rem, 1.8cqw, 1.5rem); line-height: 1.2; font-weight: 700; }
.panorama-topic p { margin: 0; font-size: clamp(0.9rem, 1.5cqw, 1.2rem); line-height: 1.3; }
.panorama-hotspot { display: none; position: absolute; width: 0; height: 0; z-index: 1; }
.panorama-topic-toggle { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 50%; color: #2c2e83; background: rgb(255 255 255 / 80%); font: inherit; cursor: pointer; container-type: inline-size; overflow: hidden; transform: translate(-50%, -50%) translate(var(--hotspot-x, 0px), var(--hotspot-y, 0px)); transition: width 260ms ease, height 260ms ease, transform 260ms ease; }
.panorama-hotspot-production .panorama-topic-toggle { color: white; background: rgb(44 46 131 / 80%); }
.panorama-topic-toggle[aria-expanded="true"] { width: var(--hotspot-size); height: var(--hotspot-size); }
.panorama-hotspot:has([aria-expanded="true"]) { z-index: 2; }
.panorama-hotspot-question { font-size: 1.5rem; transition: opacity 100ms ease; }
.panorama-hotspot-content { position: absolute; inset: 16% 12%; display: grid; align-content: center; gap: 0.55rem; opacity: 0; visibility: hidden; text-align: center; pointer-events: none; transition: opacity 100ms ease, visibility 0s 100ms; }
.panorama-hotspot-content strong { font-size: clamp(1rem, 7.5cqw, 1.2rem); line-height: 1.2; }
.panorama-hotspot-content > span { font-size: clamp(0.8rem, 6cqw, 1rem); line-height: 1.35; }
.panorama-hotspot-close { position: absolute; top: 7%; left: 50%; translate: -50% 0; font-size: 1.25rem; opacity: 0; transition: opacity 100ms ease; }
.panorama-topic-toggle[aria-expanded="true"] .panorama-hotspot-question { opacity: 0; }
.panorama-topic-toggle[aria-expanded="true"] :is(.panorama-hotspot-content, .panorama-hotspot-close) { visibility: visible; opacity: 1; transition: opacity 150ms ease 90ms; }
@media (max-width: 48rem), (max-height: 32rem), (hover: none), (pointer: coarse) {
  .panorama-topics { display: none; }
  .panorama-hotspot { display: block; }
}
.panorama-rotate { position: absolute; inset: 0; z-index: 1; display: grid; place-content: center; justify-items: center; gap: 1.5rem; padding: 2rem; color: #2c2e83; background: #d8eefc; text-align: center; opacity: 0; visibility: hidden; transition: opacity 400ms ease, visibility 0s 400ms; }
.panorama-rotate-icon { width: clamp(8rem, 45cqw, 14rem); aspect-ratio: 100 / 64; background: currentColor; mask: url('assets/icons/rotate-phone.svg') center / contain no-repeat; }
.panorama-rotate p { margin: 0; font-size: clamp(1rem, 2.4cqw, 1.5rem); }
@media (max-width: 48rem) and (orientation: portrait) {
  .panorama-rotate { opacity: 1; visibility: visible; transition: none; }
  .project-panorama, [data-panorama-ready="true"] .panorama-controls { visibility: hidden; }
  .panorama-topics, .panorama-hotspot { display: none; }
}
.project-information .hero .panel-content { display: grid; grid-template-columns: minmax(0, 1fr); height: auto; align-content: start; justify-items: center; gap: 2rem; padding: var(--section-title-settled) clamp(3rem, 6cqw, 5rem) 1.25rem; }
.project-information h2 { margin: 0; text-align: center; }
.project-information p { margin: 0; text-align: center; }
.project-information-intro { width: min(100%, 43rem); justify-self: center; }
.project-information-themes { display: grid; gap: clamp(3rem, 6cqw, 5rem); }
.project-information-theme { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.8fr); align-items: center; column-gap: clamp(1.5rem, 4cqw, 3rem); }
.project-information-theme:nth-child(even) { grid-template-columns: minmax(0, 1.8fr) minmax(0, 0.85fr); }
.project-impact-copy { grid-column: 2; min-width: 0; }
.project-information-theme:nth-child(even) .project-impact-copy { grid-column: 1; }
.project-information .project-impact-copy :is(h3, p) { text-align: left; }
.project-impact-art { grid-column: 1; grid-row: 1; width: 100%; margin: 0; color: #2c2e83; }
.project-information-theme:nth-child(even) .project-impact-art { grid-column: 2; }
.project-impact-feature { --impact-rise: 3.5rem; position: relative; isolation: isolate; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.5fr); column-gap: 0; margin-top: 1.75rem; color: #2c2e83; }
.project-impact-feature:nth-child(even) { --impact-image-corners: 0 0 var(--corner-radius) 0; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.15fr); }
.project-impact-feature::before { content: ""; position: absolute; z-index: -1; inset: 0; border-radius: var(--corner-radius); background: white; }
.project-impact-feature-dark { color: white; }
.project-impact-feature-dark::before { background: #2c2e83; }
.project-impact-feature .project-impact-copy { padding: 2rem; }
.project-information .project-impact-feature p { font-size: clamp(1.1rem, 1.6cqw, 1.2rem); }
.project-impact-portrait { --impact-art-top: calc(-1 * var(--impact-rise)); --impact-art-height: calc(100% + var(--impact-rise) + 2rem); position: relative; isolation: isolate; align-self: stretch; clip-path: inset(-100% 0 0 round var(--impact-image-corners, 0 0 0 var(--corner-radius))); }
.project-impact-portrait :is(img, object) { position: absolute; top: var(--impact-art-top); left: 3%; display: block; width: 94%; height: var(--impact-art-height); object-fit: contain; object-position: center top; transform-origin: center bottom; transition: transform 260ms ease; user-select: none; pointer-events: none; }
.project-impact-lift object { --impact-hover-scale: 1.1385; top: calc(var(--impact-art-top) - var(--impact-art-height) * 160 / 740 - 0.5rem); height: calc(var(--impact-art-height) * 900 / 740); transform: scale(1.1); }
.impact-products-toggle { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; }
.impact-products-toggle:disabled { cursor: default; }
.impact-products-toggle:focus-visible { outline-offset: 0.25rem; border-radius: var(--corner-radius); }
.project-impact-resilience .project-impact-portrait img { translate: 0 -2rem; }
.project-impact-health .project-impact-portrait img { translate: 0 0.75rem; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .project-impact-feature:hover .project-impact-portrait :is(img, object) { transform: scale(var(--impact-hover-scale, 1.035)); }
}
@media (prefers-reduced-motion: reduce) {
  .about-body { opacity: 1; }
  .project-impact-portrait :is(img, object) { transition: none; }
}
.project-information-theme h3 { margin: 0 0 0.75rem; font-size: clamp(1.2rem, 2.1cqw, 1.6rem); font-weight: 600; line-height: 1.25; letter-spacing: -0.025em; }
.market-project-view:is([data-hub-view="entering"], [data-hub-view="inside"]) .is-island-sheet .project-scene { transform: translate(var(--hub-pan-x), var(--hub-pan-y)) scale(11); }
[data-hub-view="entering"] .is-island-sheet .project-interior { opacity: 1; transition-delay: 570ms; }
[data-hub-view="inside"] .is-island-sheet .project-interior { opacity: 1; pointer-events: auto; }
[data-hub-view="inside"] .is-island-sheet .project-scene { visibility: hidden; }
.market-project-return, .market-project-forward { --outline: #2c2e83; position: absolute; top: 50%; translate: 0 -50%; padding: 0; color: #2c2e83; cursor: pointer; pointer-events: auto; }
.market-project-return { left: 0.5rem; }
.market-project-forward { right: 0.5rem; display: flex; align-items: center; gap: 1rem; padding-left: 0.5rem; border: 0; background: transparent; font: inherit; font-size: 0.875rem; font-weight: 700; line-height: 1.15; text-align: center; }
.project-information-label { min-width: 6rem; }
.project-information-arrow { flex: none; color: inherit; }
.project-information-arrow > svg:not(.control-outline) { rotate: -90deg; }
.market-project-forward:is(:hover, :focus-visible) .control-outline rect { opacity: 1; stroke-dashoffset: 0; }
.market-project-forward:focus-visible { outline: none; }
.market-project-forward:focus-visible .control-outline { stroke-width: calc(var(--ui-stroke) + 1px); }
.market-project-return > svg:not(.control-outline) { rotate: 90deg; }
.market-project-view :is(.market-project-return, .market-project-forward):not(:hover) > .control-outline rect { opacity: 0; stroke-dashoffset: 100; }
.market-project-view .market-project-return:focus-visible { outline: 2px solid #2c2e83; outline-offset: 3px; }
[data-project-island] :is(.market-project-forward, .project-previous), [data-project-info="true"] .market-project-forward { visibility: hidden; }
.project-information-copy { display: grid; gap: 2.5rem; width: min(100%, 64rem); }
.market-explore button:disabled { opacity: 0.4; cursor: progress; }
.market-project-return:disabled, .market-project-forward:disabled { cursor: default; }
:is([data-market-explore], [data-market-return], [data-project-information]):disabled > .control-outline { display: none; }
.market-project-forward:disabled .control-outline { display: none; }
@media (max-width: 48rem) and (orientation: portrait) {
  .market-project-forward { gap: 0; padding-left: 0; justify-content: center; min-width: 44px; min-height: 44px; }
  .market-project-return { min-width: 44px; min-height: 44px; }
  .project-information-label { display: none; }
}
@media (max-height: 32rem) and (orientation: landscape) {
  .project-page { --project-title-settled: max(3.5rem, calc(var(--notch-height) + 0.5rem)); }
  /* Keep both projects usable when browser chrome changes a short viewport. */
  .project-main > .panel-surface.has-preview { margin-top: 0; }
  .project-main .section-preview-link { top: calc(-1 * var(--project-cue-size) - 0.5rem); }
}
@media (prefers-reduced-motion: reduce) {
  .project-scene, .project-hub-art, .hub-building, .hub-badge, .project-interior, .project-detail, .project-island-corners, .panorama-rotate, .panorama-topics, .panorama-topics-card, .panorama-topic-toggle, .panorama-topic-toggle :is(.panorama-hotspot-question, .panorama-hotspot-content, .panorama-hotspot-close) { transition: none; transition-delay: 0s; }
}
:root[data-page-slide] { overflow: hidden; }
:root:is([data-page-slide], :active-view-transition:not([data-news-transition])) :is(.is-current-sheet, .is-island-sheet) .surface-face { clip-path: inset(0) !important; border-radius: 0; }
:root:is([data-page-slide], :active-view-transition:not([data-news-transition])) :is(.is-current-sheet, .is-island-sheet) :is(.project-aerial, .project-header-shade) { clip-path: inset(0); }
.logo-slot { view-transition-name: site-logo; }
.project-header-cutout { view-transition-name: project-controls; }
.navigation-notch-left { view-transition-name: navigation-notch-left; }
.navigation-notch-right { view-transition-name: navigation-notch-right; }
.navigation-notch-left > .market-project-return { view-transition-name: navigation-notch-left-content; }
.navigation-notch-right > .market-project-forward { view-transition-name: navigation-notch-right-content; }
.page-scrollbar { view-transition-name: page-scroll; }
::view-transition-group(root), ::view-transition-group(site-logo), ::view-transition-group(project-controls), ::view-transition-group(page-scroll) { animation: none; }
::view-transition-group(site-logo), ::view-transition-group(project-controls), ::view-transition-group(page-scroll) { z-index: 1; }
::view-transition-group(site-logo) { z-index: 2; }
::view-transition-old(site-logo), ::view-transition-old(project-controls), ::view-transition-old(page-scroll) { display: none; }
::view-transition-new(site-logo), ::view-transition-new(project-controls), ::view-transition-new(page-scroll) { animation: none; mix-blend-mode: normal; }
::view-transition-group(navigation-notch-left), ::view-transition-group(navigation-notch-right), ::view-transition-group(navigation-notch-left-content), ::view-transition-group(navigation-notch-right-content) { animation: none; z-index: 1; }
::view-transition-old(navigation-notch-left), ::view-transition-old(navigation-notch-right) { animation: navigation-notch-in 180ms 90ms cubic-bezier(0.22, 0.61, 0.36, 1) reverse both; mix-blend-mode: normal; }
::view-transition-new(navigation-notch-left), ::view-transition-new(navigation-notch-right) { animation: navigation-notch-in 180ms cubic-bezier(0.22, 0.61, 0.36, 1) both; mix-blend-mode: normal; }
::view-transition-old(navigation-notch-left), ::view-transition-new(navigation-notch-left) { transform-origin: left center; }
::view-transition-old(navigation-notch-right), ::view-transition-new(navigation-notch-right) { transform-origin: right center; }
::view-transition-old(navigation-notch-left-content), ::view-transition-old(navigation-notch-right-content) { animation: navigation-notch-content-in 90ms ease reverse both; mix-blend-mode: normal; }
::view-transition-new(navigation-notch-left-content), ::view-transition-new(navigation-notch-right-content) { animation: navigation-notch-content-in 90ms 180ms ease both; mix-blend-mode: normal; }
:root[data-project-back-retained]::view-transition-old(navigation-notch-left), :root[data-project-back-retained]::view-transition-old(navigation-notch-left-content) { display: none; }
:root[data-project-back-retained]::view-transition-new(navigation-notch-left), :root[data-project-back-retained]::view-transition-new(navigation-notch-left-content) { animation: none; transform: none; opacity: 1; }
@keyframes navigation-notch-in { from { transform: scale(0.02, 0.85); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes navigation-notch-content-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  body[data-project-page] .page-scrollbar, body:has(.legal-page-controls) .page-scrollbar { transition: none; }
  ::view-transition-old(navigation-notch-left), ::view-transition-old(navigation-notch-right), ::view-transition-new(navigation-notch-left), ::view-transition-new(navigation-notch-right), ::view-transition-old(navigation-notch-left-content), ::view-transition-old(navigation-notch-right-content), ::view-transition-new(navigation-notch-left-content), ::view-transition-new(navigation-notch-right-content) { animation: none; }
}
::view-transition-image-pair(root) { clip-path: var(--page-transition-shape); isolation: isolate; }
::view-transition-old(root), ::view-transition-new(root) { mix-blend-mode: normal; clip-path: inset(0 var(--page-transition-side)); animation: page-slide-out 600ms cubic-bezier(0.4, 0, 0.2, 1) both; }
::view-transition-new(root) { animation-name: page-slide-in; }
:root[data-page-slide="back"]::view-transition-old(root) { animation-name: page-slide-back-out; }
:root[data-page-slide="back"]::view-transition-new(root) { animation-name: page-slide-back-in; }
@keyframes page-slide-out { to { transform: translateX(calc(-1 * var(--page-transition-width))); } }
@keyframes page-slide-in { from { transform: translateX(var(--page-transition-width)); } }
@keyframes page-slide-back-out { to { transform: translateX(var(--page-transition-width)); } }
@keyframes page-slide-back-in { from { transform: translateX(calc(-1 * var(--page-transition-width))); } }

.team-copy, .news-copy { --card-gap: clamp(1rem, 2.75cqw, 2.2rem); width: min(calc(100% - 3rem), 64rem); margin-inline: auto; }
.news-intro { width: min(100%, 43rem); margin: 1.5rem auto 0; text-align: center; font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; }
.news-overview { margin-top: 2.5rem; }
.news-overview[hidden], .news-reader[hidden], .news-featured[hidden] { display: none; }
.news-featured { margin: 0 0 var(--card-gap); }
.news-carousel { position: relative; }
.news-carousel > :is(.news-previous, .news-next) { position: absolute; top: 50%; translate: 0 -50%; }
.news-carousel > .news-previous { left: -3.25rem; }
.news-carousel > .news-next { right: -3.25rem; }
.news-cards { position: relative; display: flex; gap: var(--card-gap); margin: 0; padding: 0.5rem 0; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; list-style: none; }
.news-cards::-webkit-scrollbar { display: none; }
.news-cards > li { flex: 0 0 calc((100% - var(--card-gap) * 2) / 3); min-width: 0; scroll-snap-align: start; }
.news-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: var(--corner-radius); color: white; text-decoration: none; }
.news-card:focus-visible { outline-offset: -0.3125rem; }
.news-card > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.news-copy img { user-select: none; -webkit-user-drag: none; }
/* Paint card colour only under text, so it cannot bleed around photo edges. */
.news-card-copy { flex: 1; padding: 1.25rem; background: #2c2e83; }
.news-card h3 { margin: 0; font-size: clamp(1rem, 1.7cqw, 1.35rem); font-weight: 650; line-height: 1.3; letter-spacing: -0.025em; }
.news-cards h3 { display: -webkit-box; min-height: 3.9em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.news-card p { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: #d8eefc; font-size: 0.95rem; line-height: 1.5; }
.news-copy time { display: block; margin: 0.65rem 0 0.9rem; font-size: 0.85rem; opacity: 0.8; }
.news-card:hover h3, .news-card:focus-visible h3 { text-decoration: underline; text-underline-offset: 0.15em; }
.news-featured-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.news-featured-card > img { height: 100%; aspect-ratio: auto; }
.news-featured-card .news-card-copy { padding: clamp(1.25rem, 2.7cqw, 2rem); }
.news-kicker { display: block; margin-bottom: 0.75rem; color: #d8eefc; font-size: 0.8rem; font-weight: 600; }
.news-featured-card h3 { font-size: clamp(1.3rem, 2.6cqw, 2rem); }
.news-featured-card p { -webkit-line-clamp: 4; }
.news-read-more { display: inline-flex; align-items: center; gap: 0.75rem; margin-top: 1.25rem; font-size: 1rem; font-weight: 600; }
.news-cards :is(.news-kicker, .news-read-more) { display: none; }
.news-previous > svg:first-child { rotate: 90deg; }
.news-next > svg:first-child { rotate: -90deg; }
.news-copy button:disabled { opacity: 0.3; cursor: default; }
.news-copy button:disabled .control-outline { display: none; }
.news-copy button:not(:disabled) { cursor: pointer; }
.news-loading { text-align: center; }
.news-reader { position: relative; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem; align-items: center; gap: 0.75rem; padding-bottom: 3.5rem; }
.news-close { position: absolute; top: 0; left: 0; z-index: 1; }
.news-count { position: absolute; right: 0; bottom: 1.25rem; left: 0; margin: 0; text-align: center; font-size: 0.85rem; }
.news-article { align-self: stretch; min-height: 0; padding: 0 0.75rem 1.5rem; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y pinch-zoom; scrollbar-width: none; mask-image: linear-gradient(#000 calc(100% - 1rem), transparent); font-size: clamp(1rem, 1.6cqw, 1.2rem); }
.news-article::-webkit-scrollbar { display: none; }
.news-article-heading, .news-article-body { width: min(100%, 65ch); margin-inline: auto; }
.news-article-heading h3 { margin: 0 0 0.75rem; font-size: clamp(1.5rem, 3cqw, 2.5rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; }
#news-article-title:focus-visible { outline: none; }
.news-article-heading time { margin: 0; }
.news-article-photo { display: flex; width: fit-content; max-width: min(100%, 48rem); margin: 1.5rem auto 2rem; overflow: hidden; border-radius: var(--corner-radius); }
.news-article-photo img { display: block; width: auto; max-width: 100%; height: auto; max-height: 45svh; object-fit: contain; object-position: center; cursor: default; }
.news-article-body p { margin: 0 0 1rem; font-size: inherit; line-height: 1.65; }
.contact-copy { width: min(100%, 43rem); margin-inline: auto; text-align: center; }
#contact { --section-hold: 0px; min-height: calc(100svh - var(--frame-gap) * 2); }
#contact .panel-content { display: flex; flex-direction: column; min-height: inherit; padding-bottom: 1.25rem; }
.contact-intro, .contact-offices address { font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; }
.contact-intro { margin: 1.25rem auto 0; }
.contact-email { position: relative; display: flex; align-items: center; justify-content: center; width: min(100%, 24rem); min-height: 3.75rem; margin: 1.25rem auto 0; padding: 0.75rem 3.5rem; border-radius: 2rem; background: #d8eefc; color: #2c2e83; text-decoration: none; font-size: clamp(1.1rem, 1.8cqw, 1.35rem); font-weight: 600; }
.contact-offices { display: grid; gap: 1.5rem; margin-top: 2rem; }
.contact-offices h3 { margin: 0 0 0.5rem; font-size: clamp(1.3rem, 2.2cqw, 1.5rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.025em; }
.contact-offices address { margin: 0; font-style: normal; color: #d8eefc; }
.contact-offices a { text-decoration: none; }
.contact-offices a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 0.2em; }
.contact-offices sup { font-size: 0.65em; }
.contact-field { position: absolute; inset: 0; display: block; width: 100%; height: calc(100svh - var(--frame-gap) * 2); pointer-events: none; mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); }
.header-backdrop > .contact-field { height: 100%; }
.contact-footer { --footer-width: min(64rem, calc(100cqw - clamp(1.5rem, 4cqw, 4rem) * 2)); width: var(--footer-width); margin: auto auto 0; padding-top: 1.5rem; text-align: center; font-size: 0.85rem; line-height: 1.5; }
.contact-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.25rem; }
.footer-links { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; }
.footer-linkedin { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; min-width: 44px; min-height: 44px; border-radius: 0.4rem; color: #2c2e83; background: white; transition: transform 160ms ease, box-shadow 160ms ease; }
.footer-linkedin svg { display: block; width: 1.75rem; height: 1.75rem; }
.footer-linkedin:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgb(0 0 0 / 16%); }
.footer-linkedin:focus-visible { outline: 2px solid #2c2e83; outline-offset: 2px; box-shadow: 0 0 0 4px white; }
.contact-footer a { text-underline-offset: 0.2em; }
.contact-footer p { margin: 0.75rem 0 0; font-size: inherit; line-height: inherit; opacity: 0.75; }
.project-main .contact-footer { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; width: 100%; margin: 0; padding: 3rem clamp(1.5rem, 4cqw, 4rem) 1.25rem; border-radius: 0 0 var(--corner-radius) var(--corner-radius); background: linear-gradient(transparent, rgb(0 0 0 / 60%)); color: white; }
.project-main .contact-footer { pointer-events: none; }
.project-main .contact-footer > :is(.footer-links, p) { width: var(--footer-width); margin-inline: auto; }
.project-information .contact-footer { margin-inline: 0; justify-self: center; }
.project-main .contact-footer a { pointer-events: auto; }
[data-project-island] .project-main .contact-footer { visibility: hidden; }
.legal-page { min-height: calc(100svh - var(--frame-gap) * 2); text-align: left; }
.legal-page .panel-content { display: block; padding: var(--section-title-settled) clamp(1.5rem, 4cqw, 4rem) 2rem; }
.legal-content { width: min(100%, 65ch); margin: 2rem auto 0; font-size: clamp(1rem, 1.6cqw, 1.2rem); line-height: 1.65; }
.legal-content h2 { margin: 2rem 0 0.75rem; font-size: 1.3em; line-height: 1.25; letter-spacing: -0.025em; }
.legal-content p { margin: 0 0 1rem; }
.legal-content li { margin-block: 0.5rem; }
.legal-content a { overflow-wrap: anywhere; text-underline-offset: 0.2em; }
.legal-page .contact-footer { margin-top: 3rem; }
.legal-page-controls { height: calc(100svh - var(--frame-gap) * 2); }
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
:root[data-news-reading] { overflow: hidden; }
/* Hidden boxes still reserve their View Transition name; keep only one scrollbar rendered. */
:root[data-news-reading] .page-scrollbar:not(.element-scrollbar) { display: none; }
:root[data-news-reading] #main > :is(.hero, .page-section):not(#news), :root[data-news-reading] #main > .panel-surface:not(.is-news-sheet) { visibility: hidden !important; }
:root[data-news-reading] .is-news-sheet .surface-body { height: calc(100dvh - var(--frame-gap) * 2) !important; border-radius: var(--corner-radius); }
#news[data-news-reading="true"] .panel-content { display: flow-root; padding-bottom: 0; }
#news[data-news-reading="true"] :is(.section-preview-link, .section-continue-link, #news-title, .news-intro) { display: none; }
:root[data-news-transition]::view-transition-old(root), :root[data-news-transition]::view-transition-new(root) { animation: none; clip-path: none; }
:root[data-news-transition]::view-transition-image-pair(root) { clip-path: none; }
::view-transition-group(news-photo) { animation-duration: 420ms; animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }
/* Snapshots lose ancestor clipping. Keep one changing mask around both rectangular images. */
::view-transition-image-pair(news-photo) { overflow: clip; animation: news-photo-corners 420ms cubic-bezier(0.22, 0.61, 0.36, 1) both; }
@keyframes news-photo-corners {
  from { border-radius: var(--news-photo-radius-from); }
  to { border-radius: var(--news-photo-radius-to); }
}
@media (max-width: 48rem) {
  .contact-email { padding-inline: 2.5rem; font-size: clamp(0.875rem, 4.8cqw, 1.1rem); }
  .team-copy, .news-copy { width: min(100%, 64rem); }
  .news-carousel { display: grid; grid-template-columns: 1fr auto auto 1fr; gap: 0.75rem; }
  .news-carousel > :is(.news-previous, .news-next) { position: relative; top: auto; right: auto; left: auto; translate: none; }
  .news-carousel > .news-previous { grid-column: 2; }
  .news-carousel > .news-next { grid-column: 3; }
  .news-copy .scroll-cue { --outline-radius: 1.375rem; width: 2.75rem; height: 2.75rem; }
  .news-cards { grid-column: 1 / -1; grid-row: 1; }
  .news-cards > li { flex-basis: 100%; }
  .news-card-copy { padding: 1rem; }
  .news-reader { display: block; padding-bottom: 6.75rem; margin-inline: -0.5rem; }
  .news-reader > :is(.news-close, .news-previous, .news-next) { position: absolute; top: auto; bottom: 3.25rem; }
  .news-reader > .news-previous { right: 3.5rem; }
  .news-reader > .news-next { right: 0; }
  .news-article { height: 100%; padding-inline: 0.25rem; }
  .news-article-photo img { max-height: 36svh; }
}

.team-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--card-gap); margin: 2.5rem 0 0; padding: 0; list-style: none; }
.team-member { display: flex; grid-column: span 3; flex-direction: column; min-width: 0; }
.team-lead { grid-column: span 4; }
.team-member-card { --team-card-background: #d8eefc; display: grid; grid-template-rows: auto 1fr; flex: 1; overflow: hidden; border-radius: var(--corner-radius); color: #2c2e83; transition: transform 240ms ease; }
.team-member-card:focus-within { transform: scale(1.025); }
@media (hover: hover) and (pointer: fine) {
  .team-member-card:hover { transform: scale(1.025); }
}
.team-photo { min-width: 0; }
.team-portrait { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.team-member h3 { display: grid; place-items: center; min-height: 4rem; margin: 0; padding: 0.65rem 0.75rem; background: var(--team-card-background); text-align: center; font-size: clamp(1.1rem, 2cqw, 1.5rem); font-weight: 400; line-height: 1.2; letter-spacing: -0.025em; }
.team-member:not(.team-lead) h3 { min-height: 3.5rem; font-size: clamp(0.95rem, 1.6cqw, 1.15rem); }
.team-lead h3 { padding: 0; font-size: clamp(0.95rem, 1.7cqw, 1.25rem); }
.team-contact { position: relative; display: grid; place-items: center; width: 100%; height: 100%; min-height: 4rem; padding: 0.65rem 3.5rem; color: inherit; text-align: center; text-decoration: none; }
.team-mail.scroll-cue, .contact-mail.scroll-cue { --outline: currentColor; --outline-radius: 1.375rem; position: absolute; top: 50%; left: 0.5rem; translate: 0 -50%; width: 2.75rem; height: 2.75rem; color: inherit; }
.team-mail > svg:not(.control-outline), .contact-mail > svg:not(.control-outline) { width: 1.4rem; height: 1.4rem; }
:is(.team-contact, .contact-email):is(:hover, :focus-visible) .control-outline rect { stroke-dashoffset: 0; opacity: 1; }
:is(.team-contact, .contact-email):focus-visible { outline: none; }
:is(.team-contact, .contact-email):focus-visible .control-outline { stroke-width: calc(var(--ui-stroke) + 1px); }
.team-summary { width: min(100%, 48rem); margin: 2rem auto 0; font-size: clamp(1.2rem, 1.86cqw, 1.44rem); line-height: 1.65; text-align: center; }
.team-summary a { color: inherit; text-underline-offset: 0.15em; }
.team-partners { margin-top: clamp(3rem, 6cqw, 5rem); }
#partners-title { scroll-margin-top: calc(var(--content-cutoff) + 1rem); }
.partner-grid { --partner-gap: clamp(0.9rem, 2.7cqw, 1.8rem); display: flex; flex-wrap: wrap; justify-content: center; gap: var(--partner-gap); width: 90%; margin: 2.5rem auto 0; padding: clamp(1rem, 3cqw, 2.5rem); list-style: none; }
.partner-grid > li { flex: 0 0 calc((100% - var(--partner-gap) * 3) / 4); min-width: 0; }
.partner-link { display: grid; place-items: center; height: clamp(5.4rem, 9.9cqw, 7.2rem); padding: 0.45rem; border-radius: calc(var(--corner-radius) / 2); outline-color: #d8eefc; transition: background-color 180ms ease; }
.partner-link img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; filter: url(#partner-blue-tint); opacity: 0.85; transition: opacity 180ms ease; }
.partner-link-ink img { filter: url(#partner-blue-ink); }
.partner-link:is(:hover, :focus-visible) { background: rgb(216 238 252 / 90%); }
.partner-link:is(:hover, :focus-visible) img { filter: none; opacity: 1; }
.partner-link-dark-details:is(:hover, :focus-visible) img { filter: url(#partner-dark-details); }
@media (max-width: 48rem) {
  .contact-mail.scroll-cue { left: 0.25rem; width: 2.5rem; height: 2.5rem; --outline-radius: 1.25rem; }
  .partner-grid > li { flex-basis: calc((100% - var(--partner-gap)) / 2); }
  .partner-link { padding: 0.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  .partner-link, .partner-link img { transition: none; }
  .team-member-card { transition: none; }
  .team-member-card:is(:hover, :focus-within) { transform: none; }
}
.demand-model { --background: white; margin-top: 3rem; border-radius: var(--corner-radius); background: white; color: #2c2e83; opacity: var(--story-visibility); }
.demand-model-title { margin: 0; padding: 1rem 1.5rem; border-radius: var(--corner-radius) var(--corner-radius) 0 0; background: #2c2e83; color: white; font-size: clamp(1.2rem, 2.1cqw, 1.6rem); font-weight: 600; line-height: 1.25; text-align: center; }
.demand-steps { --symbol-size: clamp(7.02rem, 12.48cqw, 9.36rem); --step-gap: 3rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto auto; margin: 0; padding: clamp(1.5rem, 3cqw, 2.5rem) 0.5rem 2rem; border-radius: 0 0 var(--corner-radius) var(--corner-radius); list-style: none; text-align: center; }
.demand-steps > li { position: relative; display: grid; grid-row: span 3; grid-template-rows: subgrid; min-width: 0; padding-inline: 1rem; }
.demand-step-copy { display: contents; }
.demand-symbol { position: relative; z-index: 1; isolation: isolate; display: grid; place-items: center; width: var(--symbol-size); height: var(--symbol-size); margin: 0 auto 1.5rem; }
.demand-symbol::before { content: ""; position: absolute; z-index: -1; inset: 0 -40%; border-radius: 50%; background: radial-gradient(closest-side, var(--background) 0%, var(--background) 55%, transparent 100%); }
.demand-symbol > svg, .demand-symbol > img { display: block; width: 100%; height: 100%; object-fit: contain; overflow: visible; transform-origin: center bottom; }
.demand-steps .demand-icon :is(path, line, polyline, polygon, circle, rect) { vector-effect: non-scaling-stroke; stroke: currentColor; stroke-width: var(--ui-stroke); stroke-linecap: round; stroke-linejoin: round; }
.demand-icon :is(.demand-cls-2, .source-cls-1, .produce-cls-1) { fill: currentColor; }
.demand-steps .demand-icon .source-cls-1 { stroke: none; }
.demand-steps .demand-icon .produce-cls-2 { fill: var(--background); stroke: var(--background); }
.demand-steps .demand-icon :is(.source-divider, .produce-stem) { fill: none; stroke: var(--background); }
.demand-forecast { transform-box: fill-box; transform-origin: center bottom; transform: scaleY(0.6687); }
.demand-forecast :is(path, line) { stroke-dasharray: 5 6; }
.demand-icon .predict-axis { opacity: 1; }
.demand-icon .predict-now { opacity: 0.4; }
.demand-icon .predict-horizon { stroke-dasharray: 4 6; }
.demand-symbol-supply { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); gap: 0.75rem; width: calc(var(--symbol-size) * 1.75); }
.demand-steps h3 { position: relative; display: flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; margin: 0 auto 0.15rem; padding: 0.55rem 0.9rem; font-size: clamp(1.2rem, 2.1cqw, 1.6rem); font-weight: 600; line-height: 1.25; letter-spacing: -0.025em; transition: scale 420ms cubic-bezier(0.4, 0, 0.2, 1); }
.demand-steps .is-current h3 { scale: 1.2; }
.demand-steps p { margin: 0; }
.demand-link { position: absolute; pointer-events: none; overflow: visible; fill: none; stroke: currentColor; stroke-opacity: 0.65; }
.demand-link-horizontal { top: 0; left: 50%; width: 100%; height: var(--symbol-size); }
.demand-link-vertical { display: none; }
.demand-link path { vector-effect: non-scaling-stroke; stroke-width: var(--ui-stroke); stroke-linecap: round; stroke-dasharray: 6 12; animation: demand-travel 1.4s linear infinite; }
@keyframes demand-travel { to { stroke-dashoffset: -36; } }

.site-header {
  position: fixed;
  z-index: 1;
  top: var(--frame-gap);
  right: 0;
  left: 0;
  width: min(calc(100% - var(--frame-gap) * 2), var(--page-width));
  margin-inline: auto;
  height: var(--header-height);
  color: var(--base-header-text, var(--text));
}

/* Start blending toward bar centering with 4rem of room still beside the notch. */
.site-menu { position: relative; z-index: 1; left: 50%; translate: calc(-50% - clamp(0px, calc((var(--notch-width) + 50% - 50cqw + 4rem) * 4), calc(var(--notch-width) / 2))) 0; display: flex; align-items: center; justify-content: center; gap: clamp(0rem, 1cqw, 1rem); width: max-content; max-width: calc(100% - var(--notch-width)); height: 100%; padding-inline: 1rem; }
.site-menu a { position: relative; display: flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0.65rem clamp(0.4rem, 1cqw, 1rem); border-radius: 999px; font-size: clamp(1.2rem, 1.92cqw, 1.44rem); font-weight: 400; line-height: 1.2; text-decoration: none; }
.menu-toggle { position: relative; z-index: 1; display: none; align-items: center; justify-content: center; gap: 0.5rem; min-height: 2.75rem; padding: 0.65rem 1rem; border: 0; border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: 1.2rem; font-weight: 400; line-height: 1.2; cursor: pointer; }
.menu-toggle > svg:not(.control-outline) { width: 1.125rem; height: 1.125rem; }

.control-outline {
  --outline-inset: calc((var(--ui-stroke) + 1px) / 2);
  position: absolute;
  inset: var(--outline-inset);
  width: calc(100% - var(--ui-stroke) - 1px);
  height: calc(100% - var(--ui-stroke) - 1px);
  overflow: visible;
  fill: none;
  stroke: var(--outline, currentColor);
  stroke-width: var(--ui-stroke);
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}
.control-outline rect { rx: calc(var(--outline-radius, 1.375rem) - var(--outline-inset)); stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 0; transition: stroke-dashoffset 420ms cubic-bezier(0.4, 0, 0.2, 1), opacity 120ms ease; }
.scroll-cue > .control-outline rect { rx: 50%; ry: 50%; }
:is(.site-menu a, .menu-toggle, .scroll-cue):is(:hover, .is-hovered, :active, :focus-visible, .focus-visible) > .control-outline rect { stroke-dashoffset: 0; opacity: 1; }
:is(.site-menu a, .menu-toggle, .scroll-cue):is(:focus-visible, .focus-visible) { outline: none; }
:is(.site-menu a, .menu-toggle, .scroll-cue):is(:focus-visible, .focus-visible) > .control-outline { stroke-width: calc(var(--ui-stroke) + 1px); }

.header-clip { position: absolute; top: 100%; right: 0; left: 0; height: calc(var(--content-cutoff) - var(--frame-gap) - var(--header-height)); pointer-events: none; }
.header-backdrop { position: absolute; z-index: 0; left: 0; width: 100%; overflow: hidden; }
.header-backdrop svg { display: block; width: 100%; height: 100%; background: white; pointer-events: none; }
.header-theme { position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: calc(var(--content-cutoff) - var(--frame-gap)); color: var(--text); pointer-events: none; }
.header-surface { height: 100%; }
.header-theme .site-menu { height: var(--header-height); }
.header-theme .menu-toggle { top: calc(var(--header-height) / 2); }
.logo-slot { position: absolute; z-index: 3; top: 0; right: 0; display: flex; align-items: center; width: var(--notch-width); height: var(--notch-height); padding: var(--logo-padding); border-bottom-left-radius: var(--corner-radius); }
.logo-slot img { display: block; width: 100%; height: auto; }

:root.has-page-scrollbar { scrollbar-width: none; }
:root.has-page-scrollbar::-webkit-scrollbar { display: none; }
.page-scrollbar { position: fixed; z-index: 2; top: var(--frame-gap); left: 50%; width: min(calc(100% - var(--frame-gap) * 2), var(--page-width)); translate: -50% 0; overflow: visible; fill: none; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; user-select: none; }
.page-scrollbar[hidden] { display: none; }
.page-scroll-layer { stroke: currentColor; color: var(--text); }
.page-scroll-track { stroke-width: 1px; opacity: 0; transition: opacity 150ms ease; }
.page-scroll-hit { stroke: transparent; stroke-width: 24px; pointer-events: visibleStroke; cursor: pointer; touch-action: none; }
.page-scroll-thumb { stroke-width: var(--ui-stroke); }
.page-scrollbar:is(:hover, :focus-visible, .is-dragging) .page-scroll-track { opacity: 0.2; }
.page-scrollbar:focus-visible { outline: none; }
.page-scrollbar:focus-visible .page-scroll-thumb { stroke-width: calc(var(--ui-stroke) + 1px); }
.page-scrollbar.is-dragging .page-scroll-hit { cursor: grabbing; }

@media (max-width: 44rem) {
  :root {
    --logo-width: min(clamp(7rem, 23cqw, 16.5rem), calc(100vw - 12rem));
    --logo-padding: clamp(0.9rem, 1.8cqw, 1.25rem);
  }
}

@container (max-width: 44rem) {
  .project-information .hero .panel-content { padding-inline: 2.75rem; }
  .project-information-theme, .project-information-theme:nth-child(even) { grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem; }
  .project-impact-copy, .project-information-theme:nth-child(even) .project-impact-copy { grid-column: 1; }
  .project-impact-art, .project-information-theme:nth-child(even) .project-impact-art { grid-column: 1; grid-row: auto; width: min(100%, 17rem); justify-self: center; }
  .market-project-view { --project-title-settled: max(5.5rem, calc(var(--notch-height) + 2rem)); --project-cue-size: 2rem; }
  .project-title { padding-inline: 2.75rem; }
  .platform-network[data-platform-mode="layered"] { width: calc(100% + 2rem); margin-inline: -1rem; }
  .platform-network[data-platform-mode="layered"] :is(.network-layer-label, .network-local-label) { font-size: 36px; }
  .platform-network[data-platform-mode="layered"] .network-local-label { font-size: 42px; }
  .market-visual[data-market-mode="network"] .market-phase { flex-direction: column; align-items: center; gap: 0.5rem; }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(0.75rem, 3cqw, 1.25rem); }
  .team-member { grid-column: auto; }
  .team-grid .team-member h3 { min-height: 4rem; font-size: clamp(0.8rem, 3cqw, 1.1rem); }
  .team-contact { padding: 0.65rem 0.4rem 0.65rem 2.8rem; }
  .team-mail.scroll-cue { --outline-radius: 1.2rem; left: 0.2rem; width: 2.4rem; height: 2.4rem; }
}

@container (max-width: 24rem) {
  .platform-network[data-platform-mode="layered"] .network-local-label { font-size: 36px; }
}

@container (max-width: 44rem) {
  .project-information-theme.project-impact-feature { grid-template-columns: minmax(0, 1fr); row-gap: 0; margin-top: 0; padding: 0; }
  .project-impact-feature::before { top: var(--impact-rise); }
  /* Override the alternating desktop column too, so no implicit second column survives. */
  .project-information-theme.project-impact-feature .project-impact-portrait { grid-column: 1; width: 100%; aspect-ratio: 4 / 3; max-height: 22rem; clip-path: inset(-100% 0 0); }
  .project-impact-feature .project-impact-portrait { --impact-art-top: 0px; --impact-art-height: calc(100% + 2rem); }
  .project-impact-feature .project-impact-lift { --impact-art-height: calc(100% + 1rem); }
  .project-impact-feature .project-impact-copy { grid-column: 1; padding: 1.5rem; }
}

@container (max-width: 36rem) {
  .team-member:not(.team-lead) h3 { padding-inline: 0.4rem; }
}

@container (max-width: 44rem) {
  .about-story, .chain-context { margin-top: 1.5rem; }
  .supply-comparison { margin-top: 2rem; }
  .supply-chart { --supply-axis-space: 2.75rem; }
  .supply-axis-label { left: -2.75rem; }
  .supply-bar { width: clamp(2rem, 10cqw, 7rem); }
  #logistics-title { font-size: clamp(1.25rem, 7cqw, 1.75rem); }
  .comparison-gains dd, .comparison-gains .stat-result { font-size: clamp(1.5rem, 4cqw, 3.25rem); }
  .comparison-gains .stat-result { grid-column: 1 / -1; max-width: none; }
  #approach .panel-content { padding-inline: 0.75rem; }
  .demand-model { margin-top: 3rem; }
  .demand-steps { --symbol-column: min(38cqw, 10.92rem); --step-gap: 4.5rem; grid-template-columns: 1fr; grid-template-rows: none; gap: var(--step-gap); padding-inline: 0.75rem; text-align: left; }
  .demand-steps > li { display: grid; grid-row: auto; grid-template-columns: var(--symbol-column) minmax(0, 1fr); grid-template-rows: auto; column-gap: 1rem; min-height: 0; padding: 0; }
  .demand-symbol { align-self: center; justify-self: center; width: min(100%, var(--symbol-size)); height: auto; margin: 0; }
  .demand-symbol > svg, .demand-symbol > img { height: auto; }
  .demand-symbol::before { display: none; }
  .demand-symbol-supply { grid-template-rows: auto; align-items: end; width: var(--symbol-column); }
  .demand-step-copy { display: flex; flex-direction: column; justify-content: center; gap: 0.65rem; min-width: 0; }
  .demand-steps h3 { justify-content: flex-start; max-width: calc(100% / 1.2); margin: 0; padding: 0; font-size: clamp(1rem, 6cqw, 1.2rem); transform-origin: left bottom; }
  .platform-map { width: 100%; margin-inline: 0; }
  .market-scene { margin-inline: -1rem; }
  .market-phase { font-size: clamp(1rem, 6cqw, 1.2rem); }
  .market-explore { font-size: clamp(1rem, 4.5cqw, 1.2rem); }
  .demand-link-horizontal { display: none; }
  .demand-link-vertical { display: block; top: calc(var(--link-top, 100%) + 0.4rem); left: 0; width: var(--symbol-column); height: calc(var(--link-height, var(--step-gap)) - 0.8rem); mask-image: linear-gradient(to bottom, transparent, black 0.4rem, black calc(100% - 0.4rem), transparent); }
  .page-scrollbar, .control-outline, .supply-chart, .demand-model, .demand-steps, .platform-network, .market-visual { --ui-stroke: 2px; }
  .story-next, .about-story { opacity: calc(0.3 + var(--story-visibility) * 0.7); }
  .hero, .ld-field { --hero-height: clamp(32rem, 78svh, 42rem); }
  .hero .panel-content { padding-top: max(calc(var(--content-cutoff) - var(--frame-gap) + 1rem), 20svh); }
  .menu-toggle { position: absolute; top: 50%; left: var(--corner-radius); display: inline-flex; transform: translateY(-50%); }
  .scroll-cue { --outline-radius: 1rem; width: 2rem; height: 2rem; }
  .scroll-cue > svg:not(.control-outline) { width: 1.5rem; height: 1.5rem; }
  .section-preview-link { top: var(--corner-radius); left: var(--corner-radius); translate: 0; }
  .site-menu { position: absolute; z-index: 4; top: calc(100% + 0.5rem); left: var(--corner-radius); translate: none; display: none; flex-direction: column; align-items: stretch; gap: 0; width: min(15rem, calc(100% - var(--corner-radius) * 2)); max-width: none; height: auto; padding: 0.5rem; border: 0.0625rem solid var(--menu-hover, var(--hover)); border-radius: var(--corner-radius); background: var(--menu-background, var(--background)); color: var(--menu-text, var(--text)); --hover: var(--menu-hover, rgb(44 46 131 / 8%)); }
  .site-header > .site-menu .control-outline { stroke: var(--menu-outline, currentColor); }
  .menu-toggle[aria-expanded="true"] + .site-menu { display: flex; }
  .header-theme .site-menu { display: none; }
  .site-menu a { justify-content: center; padding-inline: 1rem; font-size: 1.2rem; }
  .stat-row { width: fit-content; max-width: 100%; grid-template-columns: max-content minmax(0, 1fr); gap: 1.25rem 1rem; }
  .stat-row > div { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; align-items: center; gap: inherit; padding: 0; text-align: left; }
  .stat-row dt { grid-column: 2; grid-row: 1; line-height: 1.4; }
  .stat-row dd { grid-column: 1; grid-row: 1; text-align: left; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .food-miles-stripes { animation: none; }
  .footer-linkedin { transition: none; }
  .footer-linkedin:hover { transform: none; }
  .project-page { --project-title-top: var(--project-title-settled); }
  .demand-link path, .network-local { animation: none; }
  .section-intro, .demand-model, .platform-network, .market-visual, .market-explore { opacity: 1; }
  .market-phase strong { transition: none; }
  .page-scroll-track { transition: none; }
  :root { scroll-behavior: auto; }
  .site-menu, .site-menu a, .menu-toggle, .scroll-cue, .scroll-cue.is-cue-hidden { transition: none; }
  .control-outline rect { transition: none; }
  .demand-steps h3 { transition: none; }
  .story-stage { margin-bottom: 0; translate: none; }
  .story-next { opacity: 1; translate: none; }
  .about-story { opacity: 1; }
  .chain-context { opacity: 1; }
  .supply-comparison { opacity: 1; }
  .page-section .panel-content { padding-top: var(--section-title-settled); }
}

@media (forced-colors: active) {
  .news-article { scrollbar-width: auto; }
  .news-article::-webkit-scrollbar { display: block; }
  :root.has-page-scrollbar { scrollbar-width: auto; }
  :root.has-page-scrollbar::-webkit-scrollbar { display: block; }
  .page-scrollbar { display: none; }
}
