@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
  --font-display: "Satoshi", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --ink: #101113;
  --ink-soft: #2f3237;
  --muted: #666b72;
  --line: rgba(16, 17, 19, 0.16);
  --line-strong: rgba(16, 17, 19, 0.3);
  --paper: #f3f0e8;
  --paper-soft: #faf8f3;
  --paper-deep: #e9e4d8;
  --charcoal: #17191c;
  --blue: #1746d1;
  --blue-deep: #0e2d91;
  --blue-soft: #dfe7ff;
  --amber: #c87920;
  --amber-soft: #f1d3a7;
  --cream: #eee2cc;
  --white: #fff;
  --success: #146b46;
  --error: #a82d23;

  --fs-display: clamp(3.4rem, 7.7vw, 8.6rem);
  --fs-h1: clamp(3.15rem, 6.5vw, 7.1rem);
  --fs-h2: clamp(2.25rem, 4.6vw, 5.25rem);
  --fs-h3: clamp(1.4rem, 2.1vw, 2.35rem);
  --fs-h4: clamp(1.05rem, 1.35vw, 1.35rem);
  --fs-body-lg: clamp(1.1rem, 1.35vw, 1.34rem);
  --fs-body: clamp(0.98rem, 1vw, 1.08rem);
  --fs-small: 0.78rem;

  --lh-tight: 0.92;
  --lh-heading: 1.02;
  --lh-body: 1.65;
  --track-tight: -0.055em;
  --track-heading: -0.035em;
  --track-label: 0.11em;

  --space-1: 0.4rem;
  --space-2: 0.75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4.5rem;
  --space-8: 6rem;
  --space-9: 8rem;
  --space-10: 11rem;

  --container: min(92vw, 1520px);
  --measure: 720px;
  --header-height: 82px;
  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 22px;
  --shadow-soft: 0 25px 80px rgba(12, 18, 30, 0.12);
  /* Motion tokens — single source of truth for timing, easing, distance */
  --motion-duration-fast: 160ms;   /* state feedback: hovers, focus, taps */
  --motion-duration-base: 320ms;   /* small component transitions */
  --motion-duration-slow: 600ms;   /* section reveals, page entrance */
  --motion-duration-scene: 900ms;  /* signature scenes and diagram draws */
  --motion-ease-standard: cubic-bezier(.2,.75,.2,1);
  --motion-ease-enter: cubic-bezier(.16,1,.3,1);
  --motion-ease-exit: cubic-bezier(.5,0,.75,.3);
  --motion-ease-emphasized: cubic-bezier(.34,1.3,.5,1);
  --motion-distance-small: 8px;
  --motion-distance-medium: 20px;
  --motion-distance-large: 40px;
  /* Legacy aliases kept for existing rules */
  --ease: var(--motion-ease-standard);
  --ease-sharp: cubic-bezier(.75,0,.25,1);
  --duration-fast: var(--motion-duration-fast);
  --duration: var(--motion-duration-base);
  --duration-slow: var(--motion-duration-scene);
  --z-header: 100;
  --z-menu: 110;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1.5rem); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--amber-soft); color: var(--ink); }

.skip-link {
  position: fixed; left: 1rem; top: 1rem; z-index: 999;
  background: var(--ink); color: var(--white); padding: .8rem 1rem;
  transform: translateY(-150%); transition: transform var(--duration-fast);
}
.skip-link:focus { transform: none; }

:focus-visible { outline: 3px solid var(--amber); outline-offset: 4px; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: var(--z-header);
  height: var(--header-height);
  transition: background var(--duration-fast), border-color var(--duration-fast), transform var(--duration);
  border-bottom: 1px solid transparent;
}
.site-header.is-scrolled { background: color-mix(in srgb, var(--paper) 90%, transparent); border-color: var(--line); backdrop-filter: blur(18px); }
.site-header.is-hidden { transform: translateY(-105%); }
.header-inner {
  width: var(--container); height: 100%; margin: 0 auto;
  display: grid; grid-template-columns: minmax(185px, 1fr) auto minmax(185px, 1fr); align-items: center; gap: var(--space-5);
}
.brand { display: inline-flex; align-items: center; gap: .72rem; width: max-content; text-decoration: none; font-family: var(--font-display); font-weight: 600; letter-spacing: -.02em; }
.brand-mark { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; }
.desktop-nav { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); }
.desktop-nav a { text-decoration: none; font-size: .88rem; font-weight: 500; position: relative; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.5rem; height: 1px; background: currentColor; transition: right var(--duration-fast); }
.desktop-nav a:hover::after, .desktop-nav a[aria-current="page"]::after { right: 0; }
.header-cta { justify-self: end; text-decoration: none; font-size: .86rem; font-weight: 600; border-bottom: 1px solid currentColor; padding-bottom: .22rem; }
.menu-toggle { display: none; justify-self: end; width: 42px; height: 42px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.menu-toggle span { display: block; height: 1.5px; background: currentColor; margin: 7px 0; transition: transform var(--duration-fast); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.25px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.25px) rotate(-45deg); }
.mobile-menu { position: fixed; inset: var(--header-height) 0 0; background: var(--charcoal); color: var(--white); z-index: var(--z-menu); padding: 2rem 4vw 3rem; }
.mobile-menu[hidden] { display: none; }
.mobile-menu nav { display: grid; gap: .35rem; }
.mobile-menu nav a { font-family: var(--font-display); font-size: clamp(2.7rem, 10vw, 5rem); line-height: 1; letter-spacing: -.05em; text-decoration: none; padding: .4rem 0; }
.mobile-menu p { position: absolute; bottom: 2rem; max-width: 320px; color: #b9bdc4; }

main { min-height: 70vh; }
.content-section { position: relative; border-top: 1px solid var(--line); }
.content-section:first-child { border-top: 0; }
.section-shell { width: var(--container); margin: 0 auto; padding: var(--space-9) 0; }
.page-hero .section-shell { min-height: min(970px, 100svh); padding-top: calc(var(--header-height) + var(--space-7)); display: grid; align-content: center; grid-template-columns: minmax(0, 1.02fr) minmax(380px, .98fr); column-gap: clamp(2rem, 6vw, 8rem); }
.page-hero .eyebrow { grid-column: 1; align-self: end; }
.page-hero h1 { grid-column: 1; margin: 1.2rem 0 2rem; }
.page-hero > .section-shell > p:not(.eyebrow) { grid-column: 1; max-width: 660px; }
.page-hero .button { grid-column: 1; width: max-content; margin-right: .6rem; }
.page-hero .hero-visual, .page-hero .page-visual { grid-column: 2; grid-row: 1 / span 8; align-self: center; }

.eyebrow, .article-number, .visual-kicker, .project-meta, .footer-label {
  font-family: var(--font-mono); font-size: var(--fs-small); line-height: 1.3; text-transform: uppercase; letter-spacing: var(--track-label); color: var(--muted); font-weight: 500;
}
h1, h2, h3, h4 { font-family: var(--font-display); margin-top: 0; }
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: var(--track-tight); font-weight: 500; max-width: 1200px; }
h2 { font-size: var(--fs-h2); line-height: .98; letter-spacing: var(--track-tight); font-weight: 500; max-width: 1200px; margin-bottom: var(--space-5); }
h3 { font-size: var(--fs-h3); line-height: 1.05; letter-spacing: var(--track-heading); font-weight: 500; }
h4 { font-size: var(--fs-h4); line-height: 1.22; letter-spacing: -.025em; font-weight: 550; }
p { margin: 0 0 1.15rem; }
.section-shell > p:not(.eyebrow):not(.article-number) { max-width: var(--measure); color: var(--ink-soft); font-size: var(--fs-body-lg); }
.section-shell > ul { list-style: none; margin: var(--space-4) 0 var(--space-5); padding: 0; max-width: 820px; border-top: 1px solid var(--line); }
.section-shell > ul li { padding: .9rem 0 .9rem 1.6rem; border-bottom: 1px solid var(--line); position: relative; }
.section-shell > ul li::before { content: ""; position: absolute; left: 0; top: 1.55rem; width: 6px; height: 6px; border-radius: 50%; background: var(--amber); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 48px; padding: .8rem 1rem; border: 1px solid transparent; text-decoration: none; font-size: .86rem; line-height: 1.2; font-weight: 600; margin-top: .8rem; transition: background var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast), transform var(--duration-fast); }
.button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform var(--duration-fast); }
.button:hover svg { transform: translateX(4px); }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--ink); color: var(--white); }
.button-primary:hover { background: var(--blue); }
.button-secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.button-secondary:hover { background: var(--paper-soft); }
.button-light { background: var(--white); color: var(--ink); }
.text-link { font-size: .85rem; font-weight: 600; }

/* Global visual system */
.hero-visual, .page-visual { position: relative; min-height: 560px; }
.home-system { background: var(--charcoal); color: var(--white); overflow: hidden; box-shadow: var(--shadow-soft); transform-style: preserve-3d; }
.home-system::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(to bottom, #000, transparent 90%); }
.system-noise span { position: absolute; left: var(--x); top: var(--y); width: 7px; height: 7px; border: 1px solid rgba(255,255,255,.4); transform: rotate(45deg); }
.system-lines { position: absolute; inset: 4% 2% 13%; width: 96%; height: 83%; overflow: visible; }
.system-lines path { fill: none; stroke: url(#lineGlow); stroke-width: 1.35; vector-effect: non-scaling-stroke; }
.system-lines .nodes circle { fill: var(--charcoal); stroke: #c0c4ca; stroke-width: 1.4; }
.system-lines .nodes .focus-node { fill: var(--amber); stroke: var(--amber-soft); }
.js .draw-lines path { stroke-dasharray: 900; stroke-dashoffset: 900; animation: draw 2s var(--ease) .35s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }












.status-row { display: flex; justify-content: space-between; gap: 1rem; font-size: .66rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.status-row b { color: var(--blue); }






/* Homepage */
.page-home .page-hero { border-bottom: 1px solid var(--line); }
.page-home .page-hero h1 { max-width: 790px; }
.page-home .section-sector-experience .section-shell { display: grid; grid-template-columns: .72fr repeat(3, 1fr); gap: 0; align-items: start; }
.page-home .section-sector-experience .eyebrow { grid-column: 1 / -1; margin-bottom: var(--space-6); }
.page-home .section-sector-experience .section-shell > h3:first-of-type { grid-column: 1 / 3; font-size: var(--fs-h2); max-width: 800px; margin: 0 3rem var(--space-7) 0; }
.page-home .section-sector-experience .section-shell > p:nth-of-type(-n+2) { grid-column: 3 / -1; }
.page-home .section-sector-experience .section-shell > h3:not(:first-of-type), .page-home .section-sector-experience .section-shell > h3:not(:first-of-type) + p { padding-right: 2rem; }
.page-home .section-sector-experience .section-shell > h3:not(:first-of-type) { font-size: 1rem; letter-spacing: -.02em; margin: var(--space-6) 0 .55rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(2), .page-home .section-sector-experience .section-shell > h3:nth-of-type(5) { grid-column: 2; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(3), .page-home .section-sector-experience .section-shell > h3:nth-of-type(6) { grid-column: 3; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(4), .page-home .section-sector-experience .section-shell > h3:nth-of-type(7) { grid-column: 4; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(2) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(5) + p { grid-column: 2; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(3) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(6) + p { grid-column: 3; }
.page-home .section-sector-experience .section-shell > h3:nth-of-type(4) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(7) + p { grid-column: 4; }
.page-home .section-sector-experience .section-shell > h3:not(:first-of-type) + p { font-size: .95rem; color: var(--muted); }

.page-home .section-point-of-view { background: var(--charcoal); color: var(--white); border: 0; }
.page-home .section-point-of-view .section-shell { display: grid; grid-template-columns: .72fr 1.1fr 1fr; gap: var(--space-6); min-height: 760px; align-items: start; }
.page-home .section-point-of-view .eyebrow { color: #a8adb4; }
.page-home .section-point-of-view h2 { grid-column: 2 / -1; font-size: clamp(3.4rem, 7vw, 8rem); }
.page-home .section-point-of-view .section-shell > p:not(.eyebrow) { grid-column: 3; color: #c4c7cc; font-size: 1.05rem; }
.page-home .section-point-of-view .section-shell > p:nth-of-type(2) { margin-top: var(--space-6); }
.signal-band { background: var(--blue); color: var(--white); }
.signal-band > div { width: var(--container); margin: auto; min-height: 160px; display: grid; grid-template-columns: max-content 1fr max-content 1fr max-content; align-items: center; gap: 1.5rem; font-family: var(--font-display); font-size: clamp(1rem, 1.5vw, 1.4rem); }
.signal-band i { height: 1px; background: rgba(255,255,255,.45); position: relative; }
.signal-band i::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--white); }
.signal-band strong { font-size: clamp(1.5rem, 2.2vw, 2.7rem); letter-spacing: -.04em; }
.page-home .section-featured-work .section-shell { display: grid; grid-template-columns: .8fr 1.35fr 1fr; gap: var(--space-6); }
.page-home .section-featured-work h3 { grid-column: 2 / -1; font-size: var(--fs-h2); }
.page-home .section-featured-work .section-shell > p { grid-column: 3; }
.page-home .section-featured-work .button { grid-column: 3; }




.fp-enterprise { background: #d6dce4; }
.fp-public { background: var(--amber-soft); }









.page-home .section-services .section-shell { display: grid; grid-template-columns: .65fr 1fr 1fr; column-gap: var(--space-7); }
.page-home .section-services .eyebrow { grid-column: 1; }
.page-home .section-services h2 { grid-column: 2 / -1; }
.page-home .section-services .section-shell > p { grid-column: 2; }
.page-home .section-services h3, .page-home .section-services h4, .page-home .section-services h4 + p, .page-home .section-services .button { grid-column: 2 / -1; }
.page-home .section-services h3 { margin-top: var(--space-7); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: clamp(2rem, 3vw, 3.8rem); }
.page-home .section-services h4 { max-width: 660px; margin-bottom: .7rem; }
.page-home .section-services .button { justify-self: start; }
.page-home .section-approach { background: var(--paper-deep); }
.page-home .section-approach .section-shell { display: grid; grid-template-columns: .7fr 1.15fr 1fr; gap: var(--space-5); }
.page-home .section-approach h2 { grid-column: 2 / -1; }
.page-home .section-approach .section-shell > p { grid-column: 3; }
.page-home .section-approach h3 { grid-column: 2; font-size: 1.1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.page-home .section-approach h3 + p { grid-column: 3; font-size: .98rem; }
.page-home .section-approach .button { grid-column: 3; justify-self: start; }
.page-home .section-why-luminor .section-shell { display: grid; grid-template-columns: .6fr 1.4fr 1fr; gap: var(--space-6); }
.page-home .section-why-luminor h2 { grid-column: 2 / -1; }
.page-home .section-why-luminor h3 { grid-column: 2; border-top: 1px solid var(--line); padding-top: 1rem; font-size: 1.2rem; }
.page-home .section-why-luminor h3 + p { grid-column: 3; font-size: .96rem; }
.page-home .section-insights { background: var(--blue); color: var(--white); }
.page-home .section-insights .section-shell { min-height: 560px; display: grid; grid-template-columns: .7fr 1.4fr 1fr; gap: var(--space-6); align-content: center; }
.page-home .section-insights .eyebrow { color: #bfcfff; }
.page-home .section-insights h2 { grid-column: 2 / -1; }
.page-home .section-insights p { grid-column: 3; color: #e0e7ff !important; }
.page-home .section-insights .button { grid-column: 3; justify-self: start; background: var(--white); color: var(--blue-deep); }
.section-final-cta .section-shell { min-height: 670px; display: grid; grid-template-columns: .7fr 1.4fr 1fr; gap: var(--space-6); align-content: center; }
.section-final-cta h2 { grid-column: 2 / -1; }
.section-final-cta .section-shell > p, .section-final-cta .button { grid-column: 3; }

/* Page visuals */
.work-visual { display: grid; grid-template-columns: 1.1fr .9fr; grid-template-rows: 1fr 1fr; gap: .65rem; }
.work-preview { position: relative; overflow: hidden; min-height: 245px; padding: 1rem; }
.work-preview.enterprise { grid-row: 1 / 3; background: #ccd4de; }
.work-preview.portal { background: var(--amber-soft); }
.work-preview.health { background: var(--blue); color: var(--white); }
.work-preview.civic { background: #d8d6ce; }
.ui-shell { position: absolute; left: 10%; right: -9%; bottom: 5%; height: 67%; background: var(--paper-soft); display: grid; grid-template-columns: 19% 1fr; box-shadow: var(--shadow-soft); }
.ui-rail { background: var(--charcoal); }
.ui-content { padding: 1.4rem; }
.ui-heading { width: 42%; height: 10px; background: #bbc0c5; margin-bottom: 1.2rem; }
.ui-table i { display: block; height: 32px; background: #e3e4e2; margin-bottom: 6px; }
.portal-phone { position: absolute; right: 12%; bottom: -18%; width: 32%; height: 88%; border-radius: 24px 24px 0 0; background: var(--charcoal); color: var(--white); padding: 1.4rem .8rem; transform: rotate(4deg); box-shadow: var(--shadow-soft); }
.phone-notch { width: 38%; height: 6px; border-radius: 8px; background: #383b40; margin: 0 auto 1.3rem; }
.portal-phone b { display: block; font-size: .62rem; margin-bottom: 1rem; }
.portal-phone em { display: block; height: 22px; background: #292c30; margin-bottom: 6px; }
.work-preview.health svg { position: absolute; inset: 25% 7% 5%; width: 86%; height: 70%; }
.work-preview.health path { fill: none; stroke: var(--white); stroke-width: 2; }
.work-preview.health circle { fill: var(--amber-soft); }
.civic-flow { position: absolute; left: 12%; right: 12%; bottom: 28%; display: grid; grid-template-columns: 14px 1fr 14px 1fr 14px; gap: 8px; align-items: center; }
.civic-flow i { width: 14px; height: 14px; border-radius: 50%; background: var(--ink); }
.civic-flow span { height: 1px; background: var(--ink); }

.services-visual { background: var(--charcoal); color: var(--white); padding: 2rem; overflow: hidden; }
.services-visual svg { width: 100%; height: 100%; }
.services-visual path { fill: none; stroke: #737a84; stroke-width: 1.1; }
.services-visual circle { fill: var(--charcoal); stroke: var(--amber); stroke-width: 1.8; }
.services-visual text { fill: #b9bec6; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; }
.service-labels { position: absolute; left: 47%; top: 7%; bottom: 7%; display: flex; flex-direction: column; justify-content: space-between; font-family: var(--font-mono); font-size: .61rem; text-transform: uppercase; letter-spacing: .08em; color: #ced1d5; }

.industries-visual { background: var(--blue-deep); color: var(--white); display: grid; place-items: center; overflow: hidden; }
.industry-orbit { position: absolute; width: 75%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; }
.industry-orbit span { position: absolute; inset: 12%; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.industry-orbit span:nth-child(2) { inset: 26%; }
.industry-orbit span:nth-child(3) { inset: 41%; background: var(--amber); border: 0; }
.industry-screen { z-index: 2; width: 56%; min-width: 320px; background: rgba(243,240,232,.96); color: var(--ink); padding: 2rem; box-shadow: var(--shadow-soft); }
.industry-screen h3 { font-size: clamp(2rem, 4vw, 4rem); margin: .5rem 0 2rem; }
.industry-metric { display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: .8rem; border-top: 1px solid var(--line); padding: .75rem 0; font-size: .7rem; }
.industry-metric i { height: 2px; background: var(--blue); transform-origin: left; }
.industry-metric b { color: var(--blue); }
.industry-jump { position: absolute; inset: auto 1rem 1rem; display: flex; flex-wrap: wrap; gap: .4rem; z-index: 3; }
.industry-jump a { color: var(--white); text-decoration: none; border: 1px solid rgba(255,255,255,.28); padding: .35rem .55rem; font-size: .62rem; }

.approach-visual { background: var(--paper-deep); display: grid; place-items: center; padding: 1rem; }
.approach-visual svg { overflow: visible; }
.approach-visual path { fill: none; stroke: var(--ink); stroke-width: 1.2; }
.approach-visual .process-loop { stroke: var(--blue); stroke-dasharray: 4 5; }
.approach-visual circle { fill: var(--paper-deep); stroke: var(--ink); stroke-width: 1.2; }
.approach-visual circle:nth-child(3), .approach-visual circle:nth-child(6) { fill: var(--amber); stroke: var(--amber); }
.process-legend { position: absolute; left: 5%; right: 5%; bottom: 9%; display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: .58rem; text-transform: uppercase; letter-spacing: .08em; }

.about-visual { background: var(--charcoal); color: var(--white); display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1.5fr 1fr; align-items: center; padding: 2rem; overflow: hidden; }
.about-visual span { font-family: var(--font-mono); font-size: .62rem; letter-spacing: .14em; color: #9da3aa; }
.about-visual span:nth-child(even) { text-align: right; }
.about-visual strong { grid-column: 1 / -1; font-family: var(--font-display); font-size: clamp(4rem, 8vw, 8rem); letter-spacing: -.07em; text-align: center; color: var(--amber-soft); }
.about-axis { position: absolute; left: 50%; top: 7%; bottom: 7%; width: 1px; background: rgba(255,255,255,.16); }

.insights-visual { display: grid; grid-template-columns: 1fr .33fr; gap: .5rem; }
.insight-cover { background: var(--charcoal); color: var(--white); padding: 2rem; display: flex; flex-direction: column; }
.insight-cover .article-number { color: #aeb4bc; }
.insight-cover h3 { font-size: clamp(2.6rem, 5vw, 5.5rem); max-width: 630px; margin-top: 1.2rem; }
.cover-diagram { margin-top: auto; display: grid; grid-template-columns: 15px 1fr 15px 1fr 15px; align-items: center; gap: .6rem; }
.cover-diagram i { width: 15px; height: 15px; border-radius: 50%; background: var(--amber); }
.cover-diagram b { height: 1px; background: #838991; grid-column: 2 / 5; }
.insight-cover > p { margin: 1rem 0 0; font-size: .7rem; color: #b9bdc4; }
.insight-stack { display: grid; grid-template-rows: repeat(3, 1fr); gap: .5rem; }
.insight-stack span { display: grid; place-items: center; background: var(--blue); color: var(--white); font-family: var(--font-mono); font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; writing-mode: vertical-rl; }
.insight-stack span:nth-child(2) { background: var(--amber-soft); color: var(--ink); }
.insight-stack span:nth-child(3) { background: #d4d7d8; color: var(--ink); }

.contact-visual { display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; background: var(--charcoal); color: var(--white); padding: 3rem; }
.contact-visual > i { height: 1px; background: #555b63; }
.contact-node { text-align: center; }
.contact-node span { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid #777d84; border-radius: 50%; margin: 0 auto .8rem; font-family: var(--font-mono); font-size: .67rem; }
.contact-node strong { font-size: .75rem; font-weight: 500; }
.contact-node.active span { background: var(--amber); border-color: var(--amber); color: var(--ink); }

/* Work */
.page-work .page-hero { background: var(--paper-soft); }
.page-work .page-hero h1 { max-width: 720px; }
.page-work .section-introduction .section-shell { display: grid; grid-template-columns: .65fr 1.35fr 1fr; gap: var(--space-6); }
.page-work .section-introduction h2 { grid-column: 2 / -1; }
.page-work .section-introduction p { grid-column: 3; }
.page-work .section-how-we-document-projects { background: var(--charcoal); color: var(--white); }
.page-work .section-how-we-document-projects .section-shell { display: grid; grid-template-columns: .65fr 1fr 1fr; gap: 0 var(--space-6); }
.page-work .section-how-we-document-projects .eyebrow { color: #a4a9b0; }
.page-work .section-how-we-document-projects h3 { grid-column: 2; padding: 1.2rem 0; border-top: 1px solid rgba(255,255,255,.18); }
.page-work .section-how-we-document-projects h3 + p { grid-column: 3; color: #c0c4ca; padding: 1.2rem 0; border-top: 1px solid rgba(255,255,255,.18); font-size: .95rem; }
.project-section { border-top: 0; min-height: 950px; }
.project-section .section-shell { width: 100%; padding: 0; min-height: inherit; display: grid; grid-template-columns: 42% 58%; }
.project-section .section-shell::after { content: ""; grid-column: 2; grid-row: 1 / span 50; min-height: 950px; background-color: var(--paper-deep); background-image: linear-gradient(rgba(16,17,19,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(16,17,19,.06) 1px, transparent 1px); background-size: 54px 54px; }
.project-section:nth-of-type(even) .section-shell::after { background-color: #d7dce2; }
.project-section:nth-of-type(odd) .section-shell::after { background-color: var(--amber-soft); }
.project-section .section-shell > * { grid-column: 1; margin-left: max(4vw, calc((100vw - 1520px)/2)); margin-right: 4vw; }
.project-section h2 { font-size: clamp(3.2rem, 5.8vw, 7rem); margin-top: 8rem; }
.project-section h2 + h3 { margin-top: -1.4rem; font-size: clamp(1.1rem, 1.4vw, 1.4rem); color: var(--muted); max-width: 470px; }
.project-section .section-shell > p { font-size: 1rem; max-width: 540px; }
.project-section .section-shell > ul { max-width: 540px; }
.project-section .button { align-self: end; justify-self: start; margin-bottom: 4rem; }
.project-section::after { content: ""; position: absolute; right: 5%; top: 18%; width: 48%; height: 62%; pointer-events: none; box-shadow: var(--shadow-soft); background: var(--paper-soft); z-index: 2; }
.project-section:nth-of-type(4)::after { background: linear-gradient(90deg, var(--charcoal) 18%, var(--paper-soft) 18%); }
.project-section:nth-of-type(5)::after { width: 24%; right: 16%; border: 14px solid var(--charcoal); border-radius: 30px; background: var(--paper-soft); }
.project-section:nth-of-type(6)::after { background: var(--blue); clip-path: polygon(0 12%, 100% 0, 88% 100%, 7% 89%); }
.project-section:nth-of-type(7)::after { background: linear-gradient(135deg, var(--paper-soft) 50%, var(--charcoal) 50%); }
.page-work .section-closing-cta { background: var(--blue); color: var(--white); }
.page-work .section-closing-cta .eyebrow { color: #bdcaff; }
.page-work .section-closing-cta p { color: #e2e8ff; }
.page-work .section-closing-cta .button { background: var(--white); color: var(--blue-deep); }

/* Sticky indexes */
.sticky-index { width: var(--container); margin: 0 auto; min-height: 74px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: clamp(.8rem, 2vw, 2rem); position: sticky; top: var(--header-height); z-index: 20; background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(18px); overflow-x: auto; scrollbar-width: none; }
.sticky-index::-webkit-scrollbar { display: none; }
.sticky-index span { margin-right: auto; font-family: var(--font-mono); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }
.sticky-index a { text-decoration: none; font-size: .75rem; white-space: nowrap; color: var(--muted); }
.sticky-index a:hover, .sticky-index a.is-active { color: var(--ink); }

/* Services */
.page-services .page-hero { background: var(--paper-soft); }
.page-services .service-section { min-height: 980px; }
.page-services .service-section .section-shell { display: grid; grid-template-columns: .62fr 1.05fr 1fr; gap: 0 var(--space-7); }
.page-services .service-section h2 { grid-column: 1; position: sticky; top: calc(var(--header-height) + 115px); align-self: start; font-size: clamp(2.8rem, 5.3vw, 6.2rem); }
.page-services .service-section h3 { grid-column: 2; font-size: 1.35rem; margin: var(--space-6) 0 1rem; }
.page-services .service-section h3:first-of-type { margin-top: 0; }
.page-services .service-section .section-shell > p { grid-column: 2 / -1; max-width: 820px; }
.page-services .service-section .section-shell > ul { grid-column: 2 / -1; width: 100%; max-width: none; columns: 2; column-gap: var(--space-6); }
.page-services .service-section .section-shell > ul li { break-inside: avoid; }
.page-services .service-section .button { grid-column: 2; justify-self: start; }
.page-services .service-section:nth-of-type(odd) { background: var(--paper-soft); }
.page-services .service-section:nth-of-type(4n) { background: var(--charcoal); color: var(--white); }
.page-services .service-section:nth-of-type(4n) p { color: #c7cbd0; }
.page-services .service-section:nth-of-type(4n) ul { border-color: rgba(255,255,255,.2); }
.page-services .service-section:nth-of-type(4n) li { border-color: rgba(255,255,255,.2); }
.page-services .service-section:nth-of-type(4n) .button { background: var(--white); color: var(--ink); }
.page-services .section-services-closing { background: var(--blue); color: var(--white); }
.page-services .section-services-closing p { color: #dce4ff; }
.page-services .section-services-closing .button { background: var(--white); color: var(--blue-deep); }

/* Industries */
.industry-index-panel { width: var(--container); margin: var(--space-8) auto; display: grid; grid-template-columns: .55fr 1.45fr; gap: var(--space-6); }
.industry-index-panel > div { display: grid; grid-template-columns: repeat(2, 1fr); }
.industry-index-panel a { padding: 1.2rem 0; border-top: 1px solid var(--line); text-decoration: none; font-family: var(--font-display); font-size: clamp(1.2rem, 2vw, 2.1rem); letter-spacing: -.03em; }
.industry-section { min-height: 920px; }
.industry-section .section-shell { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: var(--space-7); }
.industry-section h2 { grid-column: 1 / 3; font-size: clamp(4rem, 8vw, 9rem); color: transparent; -webkit-text-stroke: 1px var(--ink); }
.industry-section h3 { font-size: 1.1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.industry-section h3:nth-of-type(1), .industry-section h3:nth-of-type(1) ~ p { grid-column: 2; }
.industry-section h3:nth-of-type(2), .industry-section h3:nth-of-type(2) ~ p { grid-column: 3; }
.industry-section .section-shell > p { font-size: 1rem; }
.industry-section .section-shell > ul { grid-column: 2 / -1; width: 100%; max-width: none; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: var(--space-6); }
.industry-section .button { grid-column: 3; justify-self: start; }
.industry-section:nth-of-type(odd) { background: var(--paper-soft); }
.industry-section:nth-of-type(4) { background: var(--charcoal); color: var(--white); }
.industry-section:nth-of-type(4) h2 { -webkit-text-stroke-color: var(--white); }
.industry-section:nth-of-type(4) p { color: #c5c9cf; }
.industry-section:nth-of-type(6) { background: var(--blue); color: var(--white); }
.industry-section:nth-of-type(6) h2 { -webkit-text-stroke-color: var(--white); }
.industry-section:nth-of-type(6) p { color: #e0e7ff; }
.page-industries .section-industries-closing { background: var(--amber-soft); }

/* Approach */
.page-approach .page-hero { background: var(--paper-soft); }
.process-stage { min-height: 900px; counter-increment: stage; }
.page-approach main { counter-reset: stage; }
.process-stage .section-shell { display: grid; grid-template-columns: .42fr 1fr 1fr; gap: var(--space-7); }
.process-stage .section-shell::before { content: counter(stage, decimal-leading-zero); grid-column: 1; font-family: var(--font-display); font-size: clamp(6rem, 12vw, 13rem); line-height: .8; letter-spacing: -.08em; color: var(--paper-deep); position: sticky; top: calc(var(--header-height) + 120px); align-self: start; }
.process-stage h2 { grid-column: 2 / -1; font-size: clamp(4rem, 8vw, 9rem); }
.process-stage h3 { grid-column: 2; font-size: 1.2rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.process-stage h3 + p { grid-column: 3; font-size: .98rem; }
.process-stage .section-shell > ul { grid-column: 2 / -1; width: 100%; max-width: none; display: grid; grid-template-columns: repeat(2,1fr); column-gap: var(--space-6); }
.process-stage:nth-of-type(even) { background: var(--paper-soft); }
.process-stage:nth-of-type(5), .process-stage:nth-of-type(9) { background: var(--charcoal); color: var(--white); }
.process-stage:nth-of-type(5) p, .process-stage:nth-of-type(9) p { color: #c4c8cf; }
.process-stage:nth-of-type(5) .section-shell::before, .process-stage:nth-of-type(9) .section-shell::before { color: #303339; }
.process-stage:nth-of-type(5) h3, .process-stage:nth-of-type(9) h3, .process-stage:nth-of-type(5) ul, .process-stage:nth-of-type(9) ul, .process-stage:nth-of-type(5) li, .process-stage:nth-of-type(9) li { border-color: rgba(255,255,255,.18); }
.page-approach .section-approach-closing { background: var(--blue); color: var(--white); }
.page-approach .section-approach-closing p { color: #dce4ff; }
.page-approach .section-approach-closing .button { background: var(--white); color: var(--blue); }

/* About */
.page-about .page-hero { background: var(--paper-soft); }
.page-about .section-mission .section-shell, .page-about .section-vision .section-shell { min-height: 560px; display: grid; grid-template-columns: .6fr 1.4fr; align-content: center; gap: var(--space-6); }
.page-about .section-mission h2, .page-about .section-vision h2 { grid-column: 2; font-size: clamp(3.6rem, 7vw, 8.2rem); }
.page-about .section-mission p, .page-about .section-vision p { grid-column: 2; }
.page-about .section-vision { background: var(--blue); color: var(--white); }
.page-about .section-vision .eyebrow { color: #c1ceff; }
.page-about .section-vision p { color: #e0e7ff; }
.page-about .section-philosophy { background: var(--charcoal); color: var(--white); }
.page-about .section-philosophy .section-shell { display: grid; grid-template-columns: .55fr 1.1fr 1fr; gap: var(--space-6); min-height: 900px; align-content: center; }
.page-about .section-philosophy .eyebrow { color: #a9afb5; }
.page-about .section-philosophy h2 { grid-column: 2 / -1; }
.page-about .section-philosophy p { grid-column: 3; color: #c5c9cf; }
.page-about .section-how-luminor-thinks-about-design .section-shell, .page-about .section-what-makes-luminor-different .section-shell, .page-about .section-studio-values .section-shell { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: 0 var(--space-7); }
.page-about .section-how-luminor-thinks-about-design h2, .page-about .section-what-makes-luminor-different h2 { grid-column: 2 / -1; }
.page-about .section-how-luminor-thinks-about-design h3, .page-about .section-what-makes-luminor-different h3, .page-about .section-studio-values h3 { grid-column: 2; border-top: 1px solid var(--line); padding-top: 1.2rem; font-size: 1.25rem; }
.page-about .section-how-luminor-thinks-about-design h3 + p, .page-about .section-what-makes-luminor-different h3 + p, .page-about .section-studio-values h3 + p { grid-column: 3; padding-top: 1.2rem; border-top: 1px solid var(--line); font-size: .98rem; }
.page-about .section-founder { background: var(--amber-soft); }
.page-about .section-founder .section-shell { display: grid; grid-template-columns: .55fr 1fr 1fr; gap: var(--space-6); }
.page-about .section-founder h2 { grid-column: 2 / -1; }
.page-about .section-founder p, .page-about .section-founder h3, .page-about .section-founder ul { grid-column: 3; }
.page-about .section-studio-values { background: var(--paper-soft); }
.page-about .section-about-closing { background: var(--blue); color: var(--white); }
.page-about .section-about-closing p { color: #dce4ff; }
.page-about .section-about-closing .button { background: var(--white); color: var(--blue); }

/* Insights */
.page-insights .page-hero { background: var(--paper-soft); }
.page-insights .section-publication-positioning .section-shell { display: grid; grid-template-columns: .6fr 1.4fr 1fr; gap: var(--space-6); }
.page-insights .section-publication-positioning h2 { grid-column: 2 / -1; }
.page-insights .section-publication-positioning p { grid-column: 3; }
.article-section { border-top: 1px solid var(--line); transition: background var(--duration); }
.article-section:hover { background: var(--paper-soft); }
.article-section .section-shell { display: grid; grid-template-columns: .3fr 1.2fr 1fr; gap: var(--space-7); padding: var(--space-7) 0; }
.article-section .article-number { grid-column: 1; }
.article-section h3 { grid-column: 2; font-size: clamp(2.3rem, 4.2vw, 5rem); margin-bottom: 0; transition: transform var(--duration) var(--ease); }
.article-section:hover h3 { transform: translateX(12px); }
.article-section p { grid-column: 3; font-size: .98rem !important; }
.article-section .button { grid-column: 3; justify-self: start; background: transparent; color: var(--ink); border-bottom: 1px solid var(--ink); padding: .4rem 0; min-height: 0; }
.page-insights .section-insights-closing { background: var(--charcoal); color: var(--white); }
.page-insights .section-insights-closing p { color: #c8ccd2; }
.page-insights .section-insights-closing .button { background: var(--white); color: var(--ink); }
.page-insights .section-insights-closing::after { content: "Subscribe to new perspectives"; display: block; width: var(--container); margin: -5rem auto 5rem; border-top: 1px solid rgba(255,255,255,.2); padding-top: 2rem; font-family: var(--font-display); font-size: clamp(1.6rem, 2.5vw, 3rem); color: var(--amber-soft); }

/* Contact */
.page-contact .page-hero { background: var(--paper-soft); }
.page-contact .section-introduction .section-shell, .page-contact .section-organizations-contact-luminor-to .section-shell, .page-contact .section-direct-contact .section-shell, .page-contact .section-closing .section-shell { display: grid; grid-template-columns: .6fr 1.4fr 1fr; gap: var(--space-6); }
.page-contact .section-introduction h2, .page-contact .section-closing h2 { grid-column: 2 / -1; }
.page-contact .section-introduction p, .page-contact .section-closing p, .page-contact .section-closing .button { grid-column: 3; }
.page-contact .section-organizations-contact-luminor-to ul { grid-column: 2 / -1; width: 100%; max-width: none; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: var(--space-6); }
.inquiry-section { width: var(--container); margin: var(--space-8) auto var(--space-10); display: grid; grid-template-columns: .65fr 1.35fr; gap: var(--space-7); }
.inquiry-intro { position: sticky; top: calc(var(--header-height) + 2rem); align-self: start; }
.inquiry-intro h2 { font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 4.8rem); line-height: 1; letter-spacing: -.05em; }
.inquiry-intro > p:not(.eyebrow) { max-width: 470px; color: var(--muted); }
.form-progress { display: flex; gap: .4rem; margin-top: 2rem; }
.form-progress span { height: 3px; width: 54px; background: var(--line-strong); transition: background var(--duration-fast); }
.form-progress span.active { background: var(--blue); }
.project-form { background: var(--paper-soft); padding: clamp(1.5rem, 4vw, 4rem); border: 1px solid var(--line); min-height: 680px; }
.project-form fieldset { border: 0; padding: 0; margin: 0; }
.project-form legend { font-family: var(--font-display); font-size: clamp(2rem, 3vw, 3.7rem); line-height: 1; letter-spacing: -.045em; margin-bottom: 2.5rem; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.project-form label { display: grid; gap: .5rem; margin-bottom: 1.35rem; font-size: .8rem; font-weight: 600; }
.project-form input, .project-form textarea, .project-form select { width: 100%; border: 0; border-bottom: 1px solid var(--line-strong); background: transparent; padding: .8rem 0; color: var(--ink); border-radius: 0; }
.project-form textarea { resize: vertical; }
.project-form input:focus, .project-form textarea:focus, .project-form select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 2px 0 var(--blue); }
.project-form [aria-invalid="true"] { border-color: var(--error); }
.form-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; }
.text-button { border: 0; background: transparent; padding: 1rem 0; text-decoration: underline; cursor: pointer; }
.form-message { padding-top: var(--space-5); }
.form-message span { font-family: var(--font-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--success); }
.form-message h3 { font-size: clamp(3rem, 6vw, 6rem); margin: 1rem 0; }
.page-contact .section-direct-contact { background: var(--charcoal); color: var(--white); }
.page-contact .section-direct-contact h3, .page-contact .section-direct-contact p { grid-column: 2 / -1; color: var(--white); }
.page-contact .section-closing { background: var(--amber-soft); }

/* Footer */
.site-footer { background: var(--charcoal); color: var(--white); padding: var(--space-8) 4vw 2rem; overflow: hidden; }
.footer-signal { display: flex; gap: .8rem; align-items: end; height: 80px; margin-bottom: var(--space-7); }
.footer-signal span { flex: 1; height: 1px; background: #454a51; }
.footer-signal span:nth-child(1) { transform: rotate(2deg); }
.footer-signal span:nth-child(2) { transform: rotate(1deg); }
.footer-signal span:nth-child(4) { transform: rotate(-1deg); }
.footer-signal span:nth-child(5) { transform: rotate(-2deg); }
.footer-grid { width: min(100%, 1520px); margin: auto; display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--space-8); }
.footer-lead h2 { font-size: clamp(3.2rem, 6vw, 7.2rem); max-width: 950px; }
.footer-lead .eyebrow { color: #999fa7; }
.footer-links { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-5); align-self: end; }
.footer-links div { display: grid; align-content: start; gap: .7rem; }
.footer-label { color: #898f97; margin-bottom: .6rem; }
.footer-links a, .footer-links span { text-decoration: none; font-size: .85rem; color: #d5d7da; }
.footer-links a:hover { color: var(--white); }
.footer-bottom { width: min(100%, 1520px); margin: var(--space-8) auto 0; border-top: 1px solid rgba(255,255,255,.16); padding-top: 1.2rem; display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-mono); font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; color: #999fa7; }
.footer-bottom a { text-decoration: none; }

/* Progressive enhancement */
.js .reveal-ready .section-shell > *:not(.hero-visual):not(.page-visual) { opacity: 0; transform: translateY(24px); }
.js .reveal-ready.is-visible .section-shell > *:not(.hero-visual):not(.page-visual) { opacity: 1; transform: none; transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal-ready.is-visible .section-shell > *:nth-child(2) { transition-delay: .08s; }
.js .reveal-ready.is-visible .section-shell > *:nth-child(3) { transition-delay: .15s; }
.js .reveal-ready.is-visible .section-shell > *:nth-child(4) { transition-delay: .22s; }

/* Responsive */
@media (max-width: 1180px) {
  :root { --container: min(92vw, 1040px); --space-10: 8rem; }
  .desktop-nav { gap: 1rem; }
  .header-inner { grid-template-columns: auto 1fr auto; }
  .page-hero .section-shell { grid-template-columns: 1fr .92fr; gap: 2rem; }
  .page-home .section-sector-experience .section-shell { grid-template-columns: repeat(3,1fr); }
  .page-home .section-sector-experience .eyebrow, .page-home .section-sector-experience .section-shell > h3:first-of-type, .page-home .section-sector-experience .section-shell > p:nth-of-type(-n+2) { grid-column: 1 / -1; }
  .page-home .section-sector-experience .section-shell > h3:nth-of-type(2), .page-home .section-sector-experience .section-shell > h3:nth-of-type(5), .page-home .section-sector-experience .section-shell > h3:nth-of-type(2) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(5) + p { grid-column: 1; }
  .page-home .section-sector-experience .section-shell > h3:nth-of-type(3), .page-home .section-sector-experience .section-shell > h3:nth-of-type(6), .page-home .section-sector-experience .section-shell > h3:nth-of-type(3) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(6) + p { grid-column: 2; }
  .page-home .section-sector-experience .section-shell > h3:nth-of-type(4), .page-home .section-sector-experience .section-shell > h3:nth-of-type(7), .page-home .section-sector-experience .section-shell > h3:nth-of-type(4) + p, .page-home .section-sector-experience .section-shell > h3:nth-of-type(7) + p { grid-column: 3; }
  .project-section .section-shell { grid-template-columns: 48% 52%; }
  .project-section::after { width: 44%; }
  .service-labels { display: none; }
}

@media (max-width: 960px) {
  :root { --header-height: 72px; --space-9: 6.5rem; }
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { display: block; }
  .header-inner { grid-template-columns: 1fr auto; }
  .page-hero .section-shell { min-height: auto; padding-top: calc(var(--header-height) + 5rem); grid-template-columns: 1fr; }
  .page-hero .eyebrow, .page-hero h1, .page-hero > .section-shell > p:not(.eyebrow), .page-hero .button, .page-hero .hero-visual, .page-hero .page-visual { grid-column: 1; }
  .page-hero .hero-visual, .page-hero .page-visual { grid-row: auto; margin-top: 3rem; min-height: 520px; }
  

  .page-home .section-point-of-view .section-shell, .page-home .section-featured-work .section-shell, .page-home .section-services .section-shell, .page-home .section-approach .section-shell, .page-home .section-why-luminor .section-shell, .page-home .section-insights .section-shell, .section-final-cta .section-shell,
  .page-work .section-introduction .section-shell, .page-work .section-how-we-document-projects .section-shell,
  .page-about .section-philosophy .section-shell, .page-about .section-how-luminor-thinks-about-design .section-shell, .page-about .section-what-makes-luminor-different .section-shell, .page-about .section-founder .section-shell, .page-about .section-studio-values .section-shell,
  .page-insights .section-publication-positioning .section-shell, .article-section .section-shell,
  .page-contact .section-introduction .section-shell, .page-contact .section-organizations-contact-luminor-to .section-shell, .page-contact .section-direct-contact .section-shell, .page-contact .section-closing .section-shell,
  .industry-section .section-shell, .process-stage .section-shell, .page-services .service-section .section-shell {
    grid-template-columns: 1fr 1fr;
  }
  .page-home .section-point-of-view .eyebrow, .page-home .section-featured-work .eyebrow, .page-home .section-services .eyebrow, .page-home .section-approach .eyebrow, .page-home .section-why-luminor .eyebrow, .page-home .section-insights .eyebrow, .section-final-cta .eyebrow { grid-column: 1 / -1; }
  .page-home .section-point-of-view h2, .page-home .section-featured-work h3, .page-home .section-services h2, .page-home .section-approach h2, .page-home .section-why-luminor h2, .page-home .section-insights h2, .section-final-cta h2 { grid-column: 1 / -1; }
  .page-home .section-point-of-view .section-shell > p:not(.eyebrow), .page-home .section-featured-work .section-shell > p, .page-home .section-featured-work .button, .page-home .section-services .section-shell > p, .page-home .section-insights p, .page-home .section-insights .button, .section-final-cta .section-shell > p, .section-final-cta .button { grid-column: 2; }
  .page-home .section-services h3, .page-home .section-services h4, .page-home .section-services h4 + p, .page-home .section-services .button { grid-column: 1 / -1; }
  .page-home .section-approach h3, .page-home .section-why-luminor h3 { grid-column: 1; }
  .page-home .section-approach h3 + p, .page-home .section-why-luminor h3 + p { grid-column: 2; }
  
  
  .signal-band > div { grid-template-columns: 1fr; padding: 2.5rem 0; gap: .7rem; }
  .signal-band i { width: 1px; height: 34px; margin-left: 10px; }
  .signal-band i::after { right: -3px; top: auto; bottom: 0; }

  .page-work .section-introduction h2, .page-work .section-how-we-document-projects .eyebrow { grid-column: 1 / -1; }
  .page-work .section-introduction p { grid-column: 2; }
  .page-work .section-how-we-document-projects h3 { grid-column: 1; }
  .page-work .section-how-we-document-projects h3 + p { grid-column: 2; }
  .project-section .section-shell { grid-template-columns: 1fr; padding: 5rem 4vw; }
  .project-section .section-shell::after { display: none; }
  .project-section .section-shell > * { grid-column: 1; margin-left: 0; margin-right: 0; }
  .project-section h2 { margin-top: 0; }
  .project-section::after { position: relative; display: block; width: 88% !important; right: auto !important; top: auto; height: 430px; margin: 1rem 6% 5rem; }

  .page-services .service-section h2 { grid-column: 1; position: static; }
  .page-services .service-section h3 { grid-column: 2; }
  .page-services .service-section .section-shell > p, .page-services .service-section .section-shell > ul, .page-services .service-section .button { grid-column: 2; }
  .page-services .service-section .section-shell > ul { columns: 1; }

  .industry-index-panel { grid-template-columns: 1fr; }
  .industry-section h2 { grid-column: 1 / -1; }
  .industry-section h3:nth-of-type(1), .industry-section h3:nth-of-type(1) ~ p { grid-column: 1; }
  .industry-section h3:nth-of-type(2), .industry-section h3:nth-of-type(2) ~ p { grid-column: 2; }
  .industry-section .section-shell > ul, .industry-section .button { grid-column: 1 / -1; }

  .process-stage .section-shell::before { grid-column: 1; position: static; font-size: 8rem; }
  .process-stage h2 { grid-column: 2; }
  .process-stage h3 { grid-column: 1; }
  .process-stage h3 + p { grid-column: 2; }
  .process-stage .section-shell > ul { grid-column: 1 / -1; }

  .page-about .section-philosophy h2, .page-about .section-how-luminor-thinks-about-design h2, .page-about .section-what-makes-luminor-different h2, .page-about .section-founder h2 { grid-column: 1 / -1; }
  .page-about .section-philosophy p { grid-column: 2; }
  .page-about .section-how-luminor-thinks-about-design h3, .page-about .section-what-makes-luminor-different h3, .page-about .section-studio-values h3 { grid-column: 1; }
  .page-about .section-how-luminor-thinks-about-design h3 + p, .page-about .section-what-makes-luminor-different h3 + p, .page-about .section-studio-values h3 + p { grid-column: 2; }
  .page-about .section-founder p, .page-about .section-founder h3, .page-about .section-founder ul { grid-column: 2; }

  .page-insights .section-publication-positioning h2 { grid-column: 1 / -1; }
  .page-insights .section-publication-positioning p { grid-column: 2; }
  .article-section .article-number { grid-column: 1; }
  .article-section h3 { grid-column: 1 / -1; }
  .article-section p, .article-section .button { grid-column: 2; }

  .inquiry-section { grid-template-columns: 1fr; }
  .inquiry-intro { position: static; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  :root { --container: 90vw; --space-8: 4.5rem; --space-9: 5rem; --space-10: 6rem; --fs-h1: clamp(3rem, 15vw, 5.3rem); --fs-h2: clamp(2.35rem, 11vw, 4rem); }
  .brand span { font-size: .88rem; }
  .page-hero .section-shell { padding-top: calc(var(--header-height) + 3rem); }
  .page-hero h1 { max-width: none; }
  .page-hero .hero-visual, .page-hero .page-visual { min-height: 430px; }
  .button { width: 100%; margin-right: 0 !important; }
  
  
  
  
  
  .status-row { font-size: .54rem; }
  .work-visual { grid-template-columns: 1fr 1fr; }
  .work-preview.enterprise { grid-column: 1 / -1; grid-row: auto; min-height: 250px; }
  .work-preview { min-height: 165px; }
  .portal-phone { width: 46%; }
  .insights-visual { grid-template-columns: 1fr; }
  .insight-stack { grid-template-columns: repeat(3,1fr); grid-template-rows: none; }
  .insight-stack span { min-height: 52px; writing-mode: initial; }
  .contact-visual { grid-template-columns: 1fr; gap: .8rem; padding: 2rem; }
  .contact-visual > i { width: 1px; height: 28px; justify-self: center; }

  .page-home .section-sector-experience .section-shell, .page-home .section-point-of-view .section-shell, .page-home .section-featured-work .section-shell, .page-home .section-services .section-shell, .page-home .section-approach .section-shell, .page-home .section-why-luminor .section-shell, .page-home .section-insights .section-shell, .section-final-cta .section-shell,
  .page-work .section-introduction .section-shell, .page-work .section-how-we-document-projects .section-shell,
  .page-services .service-section .section-shell, .industry-section .section-shell, .process-stage .section-shell,
  .page-about .section-mission .section-shell, .page-about .section-vision .section-shell, .page-about .section-philosophy .section-shell, .page-about .section-how-luminor-thinks-about-design .section-shell, .page-about .section-what-makes-luminor-different .section-shell, .page-about .section-founder .section-shell, .page-about .section-studio-values .section-shell,
  .page-insights .section-publication-positioning .section-shell, .article-section .section-shell,
  .page-contact .section-introduction .section-shell, .page-contact .section-organizations-contact-luminor-to .section-shell, .page-contact .section-direct-contact .section-shell, .page-contact .section-closing .section-shell {
    grid-template-columns: 1fr;
  }
  .page-home .section-sector-experience .section-shell > *, .page-home .section-point-of-view .section-shell > *, .page-home .section-featured-work .section-shell > *, .page-home .section-services .section-shell > *, .page-home .section-approach .section-shell > *, .page-home .section-why-luminor .section-shell > *, .page-home .section-insights .section-shell > *, .section-final-cta .section-shell > *,
  .page-work .section-introduction .section-shell > *, .page-work .section-how-we-document-projects .section-shell > *,
  .page-services .service-section .section-shell > *, .industry-section .section-shell > *, .process-stage .section-shell > *,
  .page-about .section-mission .section-shell > *, .page-about .section-vision .section-shell > *, .page-about .section-philosophy .section-shell > *, .page-about .section-how-luminor-thinks-about-design .section-shell > *, .page-about .section-what-makes-luminor-different .section-shell > *, .page-about .section-founder .section-shell > *, .page-about .section-studio-values .section-shell > *,
  .page-insights .section-publication-positioning .section-shell > *, .article-section .section-shell > *,
  .page-contact .section-introduction .section-shell > *, .page-contact .section-organizations-contact-luminor-to .section-shell > *, .page-contact .section-direct-contact .section-shell > *, .page-contact .section-closing .section-shell > * { grid-column: 1 !important; }
  .page-home .section-sector-experience .section-shell > h3:not(:first-of-type), .page-home .section-sector-experience .section-shell > h3:not(:first-of-type) + p { padding-right: 0; }
  
  
  .sticky-index { width: 100%; padding: 0 5vw; }
  .sticky-index span { display: none; }
  .page-services .service-section { min-height: auto; }
  .page-services .service-section h2 { margin-bottom: 2rem; }
  .page-services .service-section .section-shell > ul, .industry-section .section-shell > ul, .process-stage .section-shell > ul, .page-contact .section-organizations-contact-luminor-to ul { columns: 1; display: block; }
  .industry-index-panel > div { grid-template-columns: 1fr; }
  .industry-section h2 { font-size: 4rem; }
  .process-stage { min-height: auto; }
  .process-stage .section-shell::before { font-size: 5rem; margin-bottom: 1rem; }
  .process-stage h2 { font-size: 3.7rem; }
  .article-section h3 { font-size: 2.7rem; }
  .article-section:hover h3 { transform: none; }
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .project-form { padding: 1.35rem; }
  .inquiry-section { width: 90vw; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal-ready .section-shell > *:not(.hero-visual):not(.page-visual) { opacity: 1; transform: none; }
}
.js .project-form [data-form-step][hidden] { display: none; }
.case-meta { display: flex; justify-content: space-between; gap: 1rem; font-family: var(--font-mono); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); border-top: 1px solid var(--line); padding-top: .8rem; margin-top: 4rem !important; }
.article-meta { grid-column: 1; display: grid; gap: .35rem; align-self: end; font-family: var(--font-mono); font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.subscribe-section { width: var(--container); margin: var(--space-8) auto var(--space-10); display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--space-8); align-items: end; }
.subscribe-section h2 { font-size: clamp(3rem, 5.5vw, 6.5rem); margin-bottom: 1rem; }
.subscribe-section > div > p:not(.eyebrow) { max-width: 620px; color: var(--muted); }
.subscribe-section form > label { display: block; font-size: .78rem; font-weight: 600; margin-bottom: .75rem; }
.subscribe-section form > div { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--line-strong); }
.subscribe-section input { min-width: 0; border: 0; background: transparent; padding: 1rem 0; }
.subscribe-section input:focus { outline: 0; border-color: var(--green, #00934d); box-shadow: 0 0 0 3px rgba(0,147,77,.25); }
.subscribe-section .button { width: auto; margin: 0 0 .4rem 1rem; }
.subscribe-status { font-size: .78rem; color: var(--success); margin-top: .8rem; }
@media (max-width: 960px) { .subscribe-section { grid-template-columns: 1fr; } .article-meta { grid-column: 2; } }
@media (max-width: 680px) { .subscribe-section { width: 90vw; } .subscribe-section form > div { grid-template-columns: 1fr; } .subscribe-section .button { width: 100%; margin: .8rem 0; } .article-meta { grid-column: 1; } }
/* Hierarchy refinements for sections with a name and a statement */
.page-services .service-section .section-name {
  grid-column: 1;
  position: sticky;
  top: calc(var(--header-height) + 115px);
  align-self: start;
  font-size: clamp(2.6rem, 4.4vw, 5.2rem);
  margin-bottom: 0;
}
.page-services .service-section .section-statement {
  grid-column: 2 / -1;
  position: static;
  font-size: clamp(2.5rem, 4.4vw, 5.25rem);
  margin-bottom: var(--space-6);
}
.industry-section .section-name {
  grid-column: 1 / -1;
  font-size: clamp(4rem, 8vw, 9rem);
  color: transparent;
  -webkit-text-stroke: 1px var(--ink);
  margin-bottom: 1rem;
}
.industry-section .section-statement {
  grid-column: 2 / -1;
  font-size: clamp(2.5rem, 4.5vw, 5.4rem);
  color: var(--ink);
  -webkit-text-stroke: 0;
  margin-bottom: var(--space-6);
}
.industry-section:nth-of-type(4) .section-name,
.industry-section:nth-of-type(6) .section-name { -webkit-text-stroke-color: var(--white); }
.industry-section:nth-of-type(4) .section-statement,
.industry-section:nth-of-type(6) .section-statement { color: var(--white); }
.process-stage .section-name {
  grid-column: 2 / -1;
  font-family: var(--font-mono);
  font-size: .74rem;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 1.2rem;
}
.process-stage .section-statement {
  grid-column: 2 / -1;
  font-size: clamp(3.8rem, 7vw, 8.2rem);
  margin-bottom: var(--space-6);
}
.project-section .section-name {
  font-family: var(--font-mono);
  font-size: .72rem;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 1.5rem;
  margin-bottom: 1.2rem;
}
.project-section .section-statement {
  font-size: clamp(3.2rem, 5.8vw, 7rem);
  margin-top: 0;
  margin-bottom: 2rem;
}
.article-section h2 {
  grid-column: 2;
  font-size: clamp(2.3rem, 4.2vw, 5rem);
  margin-bottom: 0;
  transition: transform var(--duration) var(--ease);
}
.article-section:hover h2 { transform: translateX(12px); }
.page-home .section-sector-experience .section-shell > h2:first-of-type {
  grid-column: 1 / 3;
  font-size: var(--fs-h2);
  max-width: 800px;
  margin: 0 3rem var(--space-7) 0;
}
.page-home .section-featured-work h2 {
  grid-column: 2 / -1;
  font-size: var(--fs-h2);
}
.page-contact .section-direct-contact h2,
.page-contact .section-direct-contact p { grid-column: 2 / -1; color: var(--white); }
@media (max-width: 960px) {
  .page-services .service-section .section-name { grid-column: 1; position: static; }
  .page-services .service-section .section-statement { grid-column: 2; }
  .industry-section .section-name { grid-column: 1 / -1; }
  .industry-section .section-statement { grid-column: 1 / -1; }
  .process-stage .section-name, .process-stage .section-statement { grid-column: 2; }
  .article-section h2 { grid-column: 1 / -1; }
  .page-home .section-sector-experience .section-shell > h2:first-of-type,
  .page-home .section-featured-work h2 { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .page-services .service-section .section-name,
  .page-services .service-section .section-statement,
  .process-stage .section-name,
  .process-stage .section-statement,
  .article-section h2,
  .page-home .section-sector-experience .section-shell > h2:first-of-type,
  .page-home .section-featured-work h2 { grid-column: 1 !important; }
  .article-section:hover h2 { transform: none; }
}
.noscript-nav { display: none; }
@media (max-width: 960px) {
  .noscript-nav {
    position: sticky;
    top: var(--header-height);
    z-index: 90;
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding: .85rem 5vw;
    background: var(--paper-soft);
    border-bottom: 1px solid var(--line);
    scrollbar-width: none;
  }
  .noscript-nav::-webkit-scrollbar { display: none; }
  .noscript-nav a { flex: 0 0 auto; text-decoration: none; font-size: .78rem; font-weight: 600; }
  .no-js .menu-toggle { display: none; }
}

/* ==========================================================
   HOMEPAGE 2026 REDESIGN
   Scoped to .page-home so the remaining seven pages retain
   their original visual system.
   ========================================================== */
.page-home {
  --home-display-xl: clamp(4rem, 7.45vw, 8.8rem);
  --home-display-lg: clamp(3.3rem, 6vw, 7.1rem);
  --home-display-md: clamp(2.75rem, 4.5vw, 5.35rem);
  --home-title: clamp(2rem, 3.15vw, 3.75rem);
  --home-body-lg: clamp(1.08rem, 1.32vw, 1.38rem);
  --home-body: clamp(.98rem, 1vw, 1.08rem);
  --home-small: .72rem;
  --home-gutter: clamp(1.25rem, 3.2vw, 3.75rem);
  --home-container: min(1540px, calc(100vw - (var(--home-gutter) * 2)));
  --home-section-y: clamp(6rem, 10vw, 11rem);
  --home-dark: #111315;
  --home-dark-2: #191c1f;
  --home-paper: #f3f0e8;
  --home-paper-soft: #faf8f3;
  --home-blue: #1746d1;
  --home-blue-bright: #2c5ae8;
  --home-amber: #d9852b;
  --home-line: rgba(16,17,19,.17);
  --home-light-line: rgba(255,255,255,.18);
  --home-ease: cubic-bezier(.22,.75,.18,1);
  background: var(--home-paper);
  overflow-x: clip;
}
.page-home main { overflow: clip; }
.page-home .site-header { transition: transform .42s var(--home-ease), background .35s ease, border-color .35s ease, height .35s ease; }
.page-home .site-header:not(.is-scrolled) { background: rgba(243,240,232,.82); border-bottom-color: transparent; backdrop-filter: blur(16px); }
.page-home .site-header.is-scrolled { background: rgba(250,248,243,.92); }
.page-home .header-inner { width: var(--home-container); }
.page-home .header-cta { position: relative; display: inline-flex; gap: .8rem; align-items: center; overflow: hidden; }
.page-home .header-cta i { width: 18px; height: 18px; border: 1px solid currentColor; border-radius: 50%; position: relative; transition: transform .4s var(--home-ease), background .3s ease; }
.page-home .header-cta i::before { content: ""; position: absolute; width: 5px; height: 5px; border-top: 1px solid; border-right: 1px solid; transform: rotate(45deg); top: 5px; left: 5px; }
.page-home .header-cta:hover i { transform: rotate(45deg); background: var(--home-amber); }
.home-scroll-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: transparent; overflow: hidden; }
.home-scroll-progress span { display: block; height: 100%; width: 100%; transform-origin: left; transform: scaleX(0); background: var(--home-blue); }

.page-home .home-label { display: flex; align-items: center; gap: .8rem; margin: 0; font-family: var(--font-mono); font-size: var(--home-small); font-weight: 500; line-height: 1; letter-spacing: .12em; text-transform: uppercase; color: #60656b; }
.page-home .home-label span { display: inline-grid; place-items: center; width: 29px; height: 29px; border: 1px solid var(--home-line); border-radius: 50%; font-size: .61rem; letter-spacing: 0; }
.page-home .home-label-light { color: rgba(255,255,255,.62); }
.page-home .home-label-light span { border-color: var(--home-light-line); }
.page-home h1, .page-home h2, .page-home h3, .page-home h4 { text-wrap: balance; }
.page-home .home-section { position: relative; width: 100%; padding: var(--home-section-y) var(--home-gutter); border-top: 1px solid var(--home-line); }
.page-home .home-section-head { width: var(--home-container); margin: 0 auto clamp(4rem, 8vw, 8rem); display: grid; grid-template-columns: .62fr 1.55fr .82fr; gap: clamp(2rem, 5vw, 6rem); align-items: start; }
.page-home .home-section-head h2 { font-size: var(--home-display-md); line-height: .96; letter-spacing: -.055em; margin: 0; max-width: 1000px; }
.page-home .home-section-head > div p, .page-home .home-section-head > div { font-size: var(--home-body); line-height: 1.6; color: #41464c; }
.page-home .home-section-head > div p:last-child { margin-bottom: 0; }
.page-home .home-actions { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.page-home .home-button { position: relative; display: inline-flex; min-height: 54px; padding: .9rem 1.15rem; align-items: center; justify-content: space-between; gap: 2.2rem; text-decoration: none; font-family: var(--font-display); font-size: .9rem; font-weight: 600; overflow: hidden; transition: color .35s ease, border-color .35s ease, transform .35s var(--home-ease); }
.page-home .home-button::before { content: ""; position: absolute; inset: 0; transform: translateY(102%); transition: transform .48s var(--home-ease); background: var(--home-blue); }
.page-home .home-button span, .page-home .home-button svg { position: relative; z-index: 1; }
.page-home .home-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform .4s var(--home-ease); }
.page-home .home-button:hover::before, .page-home .home-button:focus-visible::before { transform: translateY(0); }
.page-home .home-button:hover svg, .page-home .home-button:focus-visible svg { transform: translateX(4px); }
.page-home .home-button-dark { color: #fff; background: var(--home-dark); border: 1px solid var(--home-dark); }
.page-home .home-button-light { color: var(--home-dark); background: #fff; border: 1px solid #fff; }
.page-home .home-button-light::before { background: var(--home-amber); }
.page-home .home-text-link { display: inline-flex; gap: .8rem; align-items: center; color: var(--home-dark); text-decoration: none; font-weight: 600; font-size: .87rem; }
.page-home .home-text-link span { transition: transform .35s var(--home-ease); }
.page-home .home-text-link:hover span { transform: translateY(4px); }
.page-home .section-end-link { width: var(--home-container); margin: clamp(3rem, 6vw, 6rem) auto 0; display: flex; justify-content: flex-end; }

/* Hero */
.page-home .home-hero { min-height: max(820px, 100svh); position: relative; display: grid; align-items: stretch; padding: calc(var(--header-height) + clamp(2rem, 4vw, 4rem)) var(--home-gutter) clamp(2.5rem, 4vw, 4rem); background: var(--home-paper); }
.page-home .home-hero::before { content: ""; position: absolute; top: var(--header-height); left: var(--home-gutter); right: var(--home-gutter); height: 1px; background: linear-gradient(90deg,var(--home-line),transparent 72%); }
.page-home .home-hero-grid { width: var(--home-container); margin: 0 auto; display: grid; grid-template-columns: minmax(0,.93fr) minmax(560px,1.07fr); gap: clamp(2.25rem, 5vw, 6rem); align-items: center; }
.page-home .home-hero-copy { padding: clamp(2rem, 5vw, 5rem) 0 4rem; position: relative; z-index: 2; }
.page-home .home-hero h1 { font-size: var(--home-display-xl); line-height: .87; letter-spacing: -.068em; font-weight: 500; margin: clamp(2rem, 4vw, 4rem) 0 clamp(2.4rem, 4vw, 4rem); max-width: 980px; }
.page-home .hero-emphasis { color: var(--home-blue); display: block; }
.page-home .hero-intro-grid { max-width: 850px; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 3vw, 3rem); padding-top: 1.5rem; border-top: 1px solid var(--home-line); margin-bottom: 2rem; }
.page-home .hero-intro-grid p { margin: 0; color: #3e4349; font-size: clamp(.94rem, .97vw, 1.08rem); line-height: 1.65; }
.page-home .hero-sector-line { display: flex; flex-wrap: wrap; gap: .65rem 1.6rem; margin-top: clamp(3.5rem, 6vw, 6rem); padding-top: 1rem; border-top: 1px solid var(--home-line); font-family: var(--font-mono); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: #777b80; }
.page-home .hero-sector-line span:not(:last-child)::after { content: "/"; margin-left: 1.6rem; color: #a6a8aa; }
.page-home .hero-system { position: relative; height: clamp(610px, 76vh, 820px); min-height: 610px; overflow: hidden; background: var(--home-dark); color: #fff; border: 1px solid #24282c; isolation: isolate; perspective: 1200px; }
.page-home .hero-system::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 52% 44%, rgba(23,70,209,.18), transparent 37%); z-index: -1; }
.page-home .hero-system-topline, .page-home .hero-system-axis { position: absolute; z-index: 8; left: 1.25rem; right: 1.25rem; display: flex; justify-content: space-between; align-items: center; font-family: var(--font-mono); font-size: .58rem; line-height: 1; letter-spacing: .11em; text-transform: uppercase; color: #92979d; }
.page-home .hero-system-topline { top: 1.3rem; padding-bottom: .9rem; border-bottom: 1px solid var(--home-light-line); }
.page-home .hero-system-topline span:last-child { color: #d6d9dc; }
.page-home .hero-system-axis { bottom: 1.25rem; }
.page-home .hero-system-svg { position: absolute; width: 100%; height: 100%; inset: 0; }
.page-home .hero-grid-lines path { stroke: rgba(255,255,255,.055); stroke-width: 1; }
.page-home .hero-input-paths path, .page-home .hero-output-paths path { fill: none; stroke: url(#heroPath); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.js .page-home .hero-input-paths path, .js .page-home .hero-output-paths path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: homePathDraw 1.6s var(--home-ease) forwards; }
.js .page-home .hero-input-paths path:nth-child(2) { animation-delay: .12s; }.js .page-home .hero-input-paths path:nth-child(3) { animation-delay: .24s; }.js .page-home .hero-input-paths path:nth-child(4) { animation-delay: .36s; }.js .page-home .hero-output-paths path { animation-delay: .7s; }
@keyframes homePathDraw { to { stroke-dashoffset: 0; } }
.page-home .hero-nodes circle { fill: var(--home-dark); stroke: #b9bec4; stroke-width: 1.25; }
.page-home .hero-nodes .hero-core-node { fill: var(--home-amber); stroke: #ffcd91; }
.page-home .hero-moving-signals circle { fill: #fff; }
.page-home .hero-signal { position: absolute; z-index: 4; width: clamp(150px, 18vw, 225px); min-height: 96px; padding: .8rem .85rem; border: 1px solid rgba(255,255,255,.2); background: rgba(17,19,21,.86); backdrop-filter: blur(8px); transition: transform .5s var(--home-ease), opacity .5s ease, border-color .35s ease; }
.page-home .hero-signal span, .page-home .hero-signal i { display: block; font-family: var(--font-mono); font-style: normal; font-size: .53rem; text-transform: uppercase; letter-spacing: .08em; color: #90959b; }
.page-home .hero-signal b { display: block; font-family: var(--font-display); font-weight: 500; font-size: .78rem; line-height: 1.25; margin: .65rem 0 .6rem; }
.page-home .hero-signal i { color: var(--home-amber); }
.page-home .hero-signal-a { top: 10%; left: 3.8%; }.page-home .hero-signal-b { top: 29%; left: 7%; }.page-home .hero-signal-c { bottom: 24%; left: 3.5%; }.page-home .hero-signal-d { bottom: 7%; left: 9%; }
.page-home .hero-decision-interface { position: absolute; z-index: 5; width: min(51%, 430px); min-height: 310px; right: 4.5%; top: 24%; background: #f8f7f2; color: var(--home-dark); box-shadow: 0 32px 80px rgba(0,0,0,.34); transition: transform .5s var(--home-ease); }
.page-home .decision-window-bar { height: 37px; padding: 0 .8rem; display: flex; align-items: center; gap: 5px; border-bottom: 1px solid var(--home-line); }
.page-home .decision-window-bar span { width: 6px; height: 6px; background: #b9bdc1; border-radius: 50%; }
.page-home .decision-window-bar b { margin-left: auto; font-family: var(--font-mono); font-size: .52rem; text-transform: uppercase; letter-spacing: .08em; }
.page-home .decision-layout { display: grid; grid-template-columns: 47px 1fr; min-height: 273px; }
.page-home .decision-nav { padding: 1rem .65rem; border-right: 1px solid var(--home-line); }
.page-home .decision-nav i { display: block; width: 100%; height: 5px; background: #d8d9d7; margin-bottom: 1.15rem; }
.page-home .decision-nav i.active { background: var(--home-blue); }
.page-home .decision-content { padding: clamp(1.25rem, 2vw, 2rem); }
.page-home .decision-content > p { font-family: var(--font-mono); font-size: .55rem; text-transform: uppercase; letter-spacing: .08em; color: #71767d; margin-bottom: .7rem; }
.page-home .decision-content h2 { font-size: clamp(1.45rem, 2.15vw, 2.4rem); line-height: 1; letter-spacing: -.04em; margin-bottom: 1.8rem; }
.page-home .decision-status { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--home-line); font-size: .64rem; }
.page-home .decision-status span { display: flex; align-items: center; gap: .5rem; }.page-home .decision-status span i { width: 5px; height: 5px; border-radius: 50%; background: var(--home-blue); }.page-home .decision-status b { color: var(--home-blue); font-weight: 600; }
.page-home .hero-system.is-resolved .hero-signal { opacity: .48; transform: translateX(12px) scale(.96); }
.page-home .hero-system.is-resolved .hero-decision-interface { transform: translate(-3%, 3%) scale(1.035); }
.page-home .hero-scroll-cue { position: absolute; bottom: 2.3rem; left: var(--home-gutter); z-index: 6; display: flex; align-items: center; gap: .75rem; font-family: var(--font-mono); font-size: .59rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: #666b70; }
.page-home .hero-scroll-cue i { width: 32px; height: 32px; border: 1px solid var(--home-line); border-radius: 50%; position: relative; }
.page-home .hero-scroll-cue i::before { content: ""; position: absolute; width: 1px; height: 10px; background: currentColor; top: 8px; left: 15px; }.page-home .hero-scroll-cue i::after { content: ""; position: absolute; width: 5px; height: 5px; border-bottom: 1px solid; border-right: 1px solid; transform: rotate(45deg); left: 13px; bottom: 8px; }

/* Sector explorer */
.page-home .home-sector-section { background: var(--home-paper-soft); }
.page-home .sector-explorer { width: var(--home-container); margin: 0 auto; display: grid; grid-template-columns: minmax(250px,.33fr) minmax(0,.67fr); border-top: 1px solid var(--home-line); border-bottom: 1px solid var(--home-line); }
.page-home .sector-tabs { border-right: 1px solid var(--home-line); display: grid; align-content: stretch; }
.page-home .sector-tabs button { appearance: none; border: 0; border-bottom: 1px solid var(--home-line); background: transparent; color: #73777c; text-align: left; display: grid; grid-template-columns: 42px 1fr; gap: .8rem; align-items: center; padding: 1.15rem 1rem; font-family: var(--font-display); font-size: clamp(.95rem,1.15vw,1.2rem); cursor: pointer; transition: color .3s ease, padding .35s var(--home-ease), background .3s ease; }
.page-home .sector-tabs button:last-child { border-bottom: 0; }.page-home .sector-tabs button span { font-family: var(--font-mono); font-size: .58rem; color: #9a9da1; }
.page-home .sector-tabs button:hover, .page-home .sector-tabs button:focus-visible, .page-home .sector-tabs button[aria-selected="true"] { color: var(--home-dark); background: #eeeae0; padding-left: 1.4rem; }
.page-home .sector-tabs button[aria-selected="true"] span { color: var(--home-blue); }
.page-home .sector-stage { min-height: 610px; padding: 1.3rem; background: #e9e5db; }
.page-home .sector-stage-meta { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: .59rem; text-transform: uppercase; letter-spacing: .1em; color: #767a7f; padding-bottom: 1rem; border-bottom: 1px solid var(--home-line); }
.page-home .sector-panels { height: calc(100% - 36px); position: relative; }
.page-home .sector-panel { min-height: 540px; display: grid; grid-template-columns: minmax(230px,.35fr) minmax(0,.65fr); gap: clamp(1rem, 3vw, 3rem); align-items: center; }
.js .page-home .sector-panel { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .42s ease, transform .5s var(--home-ease), visibility .42s; }
.js .page-home .sector-panel.is-active { opacity: 1; visibility: visible; transform: none; z-index: 2; }
.page-home .sector-panel-copy { padding: 2rem 0 2rem 1.2rem; }
.page-home .sector-code { font-family: var(--font-mono); font-size: .57rem; letter-spacing: .1em; color: var(--home-blue); }
.page-home .sector-panel-copy h3 { font-size: clamp(2.4rem, 4vw, 5rem); line-height: .93; margin: 1.2rem 0 1.5rem; }
.page-home .sector-panel-copy > p:not(.sector-code) { max-width: 370px; color: #50555a; font-size: .96rem; line-height: 1.6; }
.page-home .sector-panel-copy a, .page-home .service-copy a, .page-home .work-panel-copy a { display: inline-flex; gap: 1rem; margin-top: 1.4rem; padding-bottom: .35rem; border-bottom: 1px solid; color: var(--home-dark); text-decoration: none; font-size: .8rem; font-weight: 600; }
.page-home .sector-diagram { min-height: 455px; display: grid; place-items: center; background: var(--home-dark); overflow: hidden; }
.page-home .sector-diagram svg { width: 100%; height: 100%; max-height: 455px; }
.page-home .sector-diagram svg .sector-route { fill: none; stroke: #a8adb3; stroke-width: 1.3; vector-effect: non-scaling-stroke; }
.page-home .sector-diagram svg .sector-route-secondary { stroke: var(--home-blue-bright); stroke-dasharray: 5 8; }
.page-home .sector-diagram svg circle { fill: var(--home-dark); stroke: #e0e2e4; stroke-width: 1.2; }
.page-home .sector-diagram svg circle:nth-of-type(2) { fill: var(--home-blue); stroke: #9db2ff; }
.page-home .sector-node-labels text, .page-home .sector-small-data text { fill: #c5c9cd; font-family: var(--font-mono); font-size: 10px; text-anchor: middle; text-transform: uppercase; letter-spacing: 1px; }
.page-home .sector-small-data rect { fill: #1f2327; stroke: rgba(255,255,255,.2); }.page-home .sector-small-data text { text-anchor: start; font-size: 9px; }.page-home .sector-small-data text:nth-of-type(even) { fill: #fff; }
.page-home .enterprise-matrix rect { fill: #1c2024; stroke: rgba(255,255,255,.2); }.page-home .sector-enterprise .sector-node-labels text { dominant-baseline: middle; }
.js .page-home .sector-panel.is-active .sector-route { stroke-dasharray: 1; stroke-dashoffset: 1; animation: homePathDraw 1.1s var(--home-ease) .08s forwards; }

/* Point of view */
.page-home .home-pov-section { padding-top: 0; padding-bottom: 0; background: var(--home-dark); color: #fff; border-top-color: #282c30; }
.page-home .pov-grid { width: var(--home-container); margin: 0 auto; min-height: 1050px; display: grid; grid-template-columns: .9fr .62fr .9fr; gap: clamp(2rem, 5vw, 6rem); align-items: start; padding: var(--home-section-y) 0; }
.page-home .pov-sticky { position: sticky; top: calc(var(--header-height) + 3rem); }
.page-home .pov-sticky h2 { font-size: var(--home-display-lg); line-height: .91; letter-spacing: -.062em; color: #fff; margin: 2.5rem 0 3.2rem; }
.page-home .pov-mode-switch { display: flex; width: max-content; border: 1px solid var(--home-light-line); }
.page-home .pov-mode-switch button { appearance: none; border: 0; background: transparent; color: #91969c; font-family: var(--font-mono); font-size: .61rem; text-transform: uppercase; letter-spacing: .08em; padding: .9rem 1rem; cursor: pointer; }
.page-home .pov-mode-switch button[aria-selected="true"] { background: #fff; color: var(--home-dark); }
.page-home .pov-story { padding-top: clamp(8rem, 17vw, 18rem); }
.page-home .pov-story p { margin-bottom: clamp(3.5rem, 7vw, 7rem); color: #9ea3a9; font-size: clamp(1.08rem,1.35vw,1.4rem); line-height: 1.55; }
.page-home .pov-story .pov-lead { color: #fff; font-family: var(--font-display); font-size: clamp(1.65rem,2.2vw,2.6rem); line-height: 1.12; letter-spacing: -.035em; }
.page-home .pov-story .pov-conclusion { color: var(--home-amber); font-family: var(--font-display); font-size: clamp(1.65rem,2vw,2.35rem); line-height: 1.12; }
.page-home .pov-console { position: sticky; top: calc(var(--header-height) + 4rem); min-height: 570px; margin-top: clamp(7rem, 12vw, 12rem); background: #f3f0e8; color: var(--home-dark); }
.page-home .pov-console-bar { display: flex; justify-content: space-between; align-items: center; height: 43px; padding: 0 1rem; border-bottom: 1px solid var(--home-line); font-family: var(--font-mono); font-size: .56rem; text-transform: uppercase; letter-spacing: .08em; }
.page-home .pov-console-bar b { color: #a23e31; }
.page-home .pov-panel { padding: clamp(1.25rem,2.5vw,2.4rem); }
.js .page-home .pov-panel { display: none; }.js .page-home .pov-panel.is-active { display: block; animation: povPanelIn .45s var(--home-ease); }
@keyframes povPanelIn { from { opacity:0; transform: translateY(10px); } }
.page-home .feature-stack { height: 250px; position: relative; margin-bottom: 2rem; }
.page-home .feature-stack span { position: absolute; top: calc(var(--i) * 32px); left: calc(var(--i) * 7px); right: calc((5 - var(--i)) * 7px); height: 68px; padding: .9rem; border: 1px solid var(--home-line); background: #e7e2d6; font-family: var(--font-mono); font-size: .61rem; letter-spacing: .04em; box-shadow: 0 8px 18px rgba(16,17,19,.05); }
.page-home .feature-stack span:nth-child(even) { background: #efebe2; }
.page-home .pov-metric { display: flex; justify-content: space-between; padding: .9rem 0; border-top: 1px solid var(--home-line); font-size: .73rem; }.page-home .pov-metric span { color: #696e74; }.page-home .pov-metric b { font-family: var(--font-mono); font-size: .62rem; text-transform: uppercase; letter-spacing: .07em; }
.page-home .clarity-route { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; gap: .45rem; min-height: 190px; font-family: var(--font-mono); font-size: .58rem; text-transform: uppercase; letter-spacing: .05em; }
.page-home .clarity-route i { height: 1px; background: #a5a9ad; }.page-home .clarity-route strong { padding: .75rem; background: var(--home-blue); color: #fff; font-weight: 500; }
.page-home .clarity-decision { padding: 1.2rem; background: var(--home-dark); color: #fff; margin-bottom: 2rem; }.page-home .clarity-decision span { font-family: var(--font-mono); font-size: .55rem; color: var(--home-amber); text-transform: uppercase; }.page-home .clarity-decision p { font-family: var(--font-display); font-size: 1.15rem; line-height: 1.25; margin: 1rem 0 0; }

/* Work showcase */
.page-home .home-work-section { background: var(--home-paper); }
.page-home .work-showcase { width: var(--home-container); margin: 0 auto; display: grid; grid-template-columns: minmax(260px,.25fr) minmax(0,.75fr); gap: clamp(1.5rem,3vw,3rem); align-items: start; }
.page-home .work-index { position: sticky; top: calc(var(--header-height) + 2rem); border-top: 1px solid var(--home-line); }
.page-home .work-index button { width: 100%; appearance: none; border: 0; border-bottom: 1px solid var(--home-line); background: transparent; display: grid; grid-template-columns: 34px 1fr; gap: .2rem .8rem; padding: 1.25rem .3rem; text-align: left; cursor: pointer; color: #777b80; transition: color .3s ease, padding-left .35s var(--home-ease); }
.page-home .work-index button span { grid-row: 1 / 3; font-family: var(--font-mono); font-size: .57rem; padding-top: .15rem; }.page-home .work-index button b { font-family: var(--font-display); font-size: 1rem; font-weight: 550; }.page-home .work-index button small { font-family: var(--font-mono); font-size: .53rem; text-transform: uppercase; letter-spacing: .06em; }
.page-home .work-index button:hover, .page-home .work-index button:focus-visible, .page-home .work-index button[aria-selected="true"] { color: var(--home-dark); padding-left: .75rem; }.page-home .work-index button[aria-selected="true"] span { color: var(--home-blue); }
.page-home .work-stage { min-height: 810px; position: relative; }
.page-home .work-panel { min-height: 810px; }
.js .page-home .work-panel { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateY(15px); transition: opacity .45s ease, transform .55s var(--home-ease), visibility .45s; }.js .page-home .work-panel.is-active { opacity: 1; visibility: visible; transform: none; z-index: 2; }
.page-home .work-panel-meta { display: flex; justify-content: space-between; padding: 0 0 .85rem; font-family: var(--font-mono); font-size: .58rem; text-transform: uppercase; letter-spacing: .09em; color: #73777c; }
.page-home .product-environment { height: clamp(490px,50vw,630px); position: relative; overflow: hidden; background: var(--home-dark); border: 1px solid #22262a; }
.page-home .work-panel-copy { display: grid; grid-template-columns: 1.2fr .7fr; gap: 2rem; align-items: end; padding-top: 1.5rem; }
.page-home .work-panel-copy h3 { font-size: var(--home-title); line-height: 1; margin: 0; }
.page-home .work-panel-copy p { margin: 0; color: #565b61; line-height: 1.55; }
.page-home .work-panel-copy a { grid-column: 2; }
.page-home .product-topbar { height: 48px; background: #f3f0e8; display: flex; align-items: center; padding: 0 1.15rem; gap: 1rem; font-size: .7rem; }.page-home .product-topbar span { margin-left: auto; color: #6e7378; }.page-home .product-topbar i { width: 28px; height: 28px; border-radius: 50%; background: var(--home-blue); }
.page-home .enterprise-ui { display: grid; grid-template-columns: 170px 1fr; grid-template-rows: 48px 1fr; background: #e7e5df; color: var(--home-dark); }.page-home .enterprise-ui .product-topbar { grid-column: 1 / -1; }.page-home .product-sidebar { padding: 1.5rem 1rem; background: #17191c; color: #8f949a; display: grid; align-content: start; gap: 1rem; font-size: .68rem; }.page-home .product-sidebar strong { color: #fff; padding: .65rem; background: #2a2f34; }.page-home .product-main { padding: clamp(1.3rem,3vw,3rem); }.page-home .product-title span, .page-home .operation-cards span, .page-home .operation-cards small { font-family: var(--font-mono); font-size: .55rem; text-transform: uppercase; letter-spacing: .06em; color: #72777d; }.page-home .product-title h3 { max-width: 550px; font-size: clamp(2rem,3vw,3.7rem); margin: .6rem 0 2rem; }.page-home .operation-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: .7rem; }.page-home .operation-cards > div { padding: 1rem; background: #f7f6f1; border: 1px solid var(--home-line); }.page-home .operation-cards b { display: block; font-size: 2rem; margin: .7rem 0; }.page-home .operation-table { margin-top: 1rem; background: #f7f6f1; }.page-home .operation-table > div { display: grid; grid-template-columns: 1.3fr .8fr .5fr; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--home-line); font-size: .64rem; }.page-home .operation-table > div:first-child { font-family: var(--font-mono); text-transform: uppercase; color: #777b80; }.page-home .operation-table i { font-style: normal; color: var(--home-blue); }
.page-home .portal-ui { background: #dce3ef; padding: clamp(1.5rem,4vw,4rem); display: flex; justify-content: center; align-items: center; gap: 1.2rem; }.page-home .portal-shell { width: 75%; min-height: 88%; background: #fbfaf6; padding: clamp(1rem,2vw,2rem); color: var(--home-dark); box-shadow: 0 25px 70px rgba(33,45,65,.16); }.page-home .portal-header { display: flex; align-items: center; gap: 1.4rem; padding-bottom: 1rem; border-bottom: 1px solid var(--home-line); font-size: .65rem; }.page-home .portal-header span { margin-left: auto; }.page-home .portal-header i { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--home-blue); color: #fff; font-style: normal; }.page-home .portal-welcome { margin: 1.5rem 0; }.page-home .portal-welcome span, .page-home .portal-balance span, .page-home .portal-progress p { font-family: var(--font-mono); font-size: .53rem; text-transform: uppercase; color: #73777c; }.page-home .portal-welcome h3 { font-size: clamp(1.6rem,2.4vw,2.7rem); margin: .5rem 0; }.page-home .portal-balance { padding: 1.2rem; background: var(--home-dark); color: #fff; }.page-home .portal-balance b, .page-home .portal-balance small { display: block; }.page-home .portal-balance b { margin: .7rem 0; font-size: 1.25rem; }.page-home .portal-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin: .8rem 0; }.page-home .portal-actions span { border: 1px solid var(--home-line); padding: .8rem; font-size: .64rem; }.page-home .portal-progress { border-top: 1px solid var(--home-line); padding-top: 1rem; }.page-home .portal-progress i { display: block; height: 3px; background: #dadbd9; margin: .8rem 0; }.page-home .portal-progress i span { display: block; width: 67%; height: 100%; background: var(--home-blue); }.page-home .portal-progress small { font-size: .53rem; }.page-home .portal-mobile { width: 24%; min-height: 56%; background: var(--home-dark); color: #fff; padding: 1.2rem; box-shadow: 0 20px 60px rgba(33,45,65,.2); }.page-home .portal-mobile > * { display: block; }.page-home .portal-mobile span, .page-home .portal-mobile small { font-family: var(--font-mono); font-size: .52rem; text-transform: uppercase; color: #9da3aa; }.page-home .portal-mobile b { font-size: 1.25rem; line-height: 1.1; margin: 1.5rem 0; }.page-home .portal-mobile i { height: 100px; background: linear-gradient(135deg,var(--home-blue),#8ca4ef); margin-bottom: 1rem; }
.page-home .health-ui { background: #d8ddd8; display: grid; grid-template-columns: 190px 1fr; color: var(--home-dark); padding: 2.5rem; }.page-home .health-rail { background: #26312c; color: #aeb7b2; padding: 1.4rem; display: grid; align-content: start; gap: 1.15rem; font-size: .67rem; }.page-home .health-rail b { color: #fff; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,.16); }.page-home .health-main { background: #f8f7f2; padding: clamp(1.3rem,3vw,3rem); }.page-home .health-patient span, .page-home .health-patient small, .page-home .health-timeline span, .page-home .health-note span { font-family: var(--font-mono); font-size: .55rem; text-transform: uppercase; color: #6e7570; }.page-home .health-patient h3 { font-size: 2.5rem; margin: .4rem 0; }.page-home .health-timeline { margin: 2rem 0; }.page-home .health-timeline > div { position: relative; padding: 0 0 1.4rem 1.7rem; border-left: 1px solid #b8beb9; }.page-home .health-timeline i { position: absolute; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: #496f5d; }.page-home .health-timeline b { display: block; margin-top: .35rem; font-size: .78rem; }.page-home .health-note { padding: 1rem; border: 1px solid #b9c1bc; }.page-home .health-note p { margin: .6rem 0 0; font-size: .8rem; }
.page-home .government-ui { background: #cbd8ef; padding: clamp(1.7rem,4vw,4rem); display: grid; grid-template-columns: 1.15fr .7fr; gap: 1rem; color: var(--home-dark); }.page-home .gov-citizen, .page-home .gov-case { background: #f9f8f4; padding: clamp(1.25rem,3vw,3rem); }.page-home .gov-citizen > span { font-family: var(--font-mono); font-size: .56rem; text-transform: uppercase; color: var(--home-blue); }.page-home .gov-citizen h3 { font-size: clamp(2rem,3.2vw,3.9rem); max-width: 630px; margin: 1.2rem 0; }.page-home .gov-citizen p { max-width: 450px; color: #555b61; }.page-home .gov-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: .4rem; margin: 2.6rem 0 .7rem; }.page-home .gov-steps i { height: 4px; background: #d0d4d8; }.page-home .gov-steps .done { background: #6582c8; }.page-home .gov-steps .active { background: var(--home-blue); }.page-home .gov-citizen small { font-family: var(--font-mono); font-size: .54rem; }.page-home .gov-citizen button { margin-top: 2rem; border: 0; background: var(--home-blue); color: #fff; padding: .8rem 1rem; }.page-home .gov-case { align-self: center; box-shadow: 0 24px 60px rgba(27,52,97,.18); }.page-home .gov-case > div { display: flex; justify-content: space-between; padding: .9rem 0; border-bottom: 1px solid var(--home-line); font-size: .65rem; }.page-home .gov-case > div:first-child { display: grid; }.page-home .gov-case i { font-style: normal; color: var(--home-blue); }.page-home .gov-case strong { display: block; margin-top: 2rem; font-size: 1.25rem; }

/* Services */
.page-home .home-services-section { background: #e9e5dc; }
.page-home .services-intro { width: var(--home-container); margin: 0 auto clamp(4rem,7vw,7rem); display: grid; grid-template-columns: .62fr 1.55fr .82fr; gap: clamp(2rem,5vw,6rem); }.page-home .services-intro h2 { font-size: var(--home-display-md); line-height: .96; letter-spacing: -.055em; margin: 0; }.page-home .services-intro > p:last-child { color: #484d52; line-height: 1.6; }
.page-home .service-explorer { width: var(--home-container); margin: 0 auto; }
.page-home .service-lifecycle { position: relative; display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto; gap: .7rem; align-items: center; padding: 1rem 0 2rem; border-top: 1px solid var(--home-line); font-family: var(--font-mono); font-size: .54rem; text-transform: uppercase; letter-spacing: .08em; color: #74787d; }.page-home .service-lifecycle i { height: 1px; background: #b8b6b0; }.page-home .service-lifecycle b { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--home-blue); top: calc(1rem - 2px); left: 49%; transform: translateX(-50%); transition: left .65s var(--home-ease); box-shadow: 0 0 0 5px rgba(23,70,209,.12); }
.page-home .service-layout { display: grid; grid-template-columns: minmax(250px,.29fr) minmax(0,.71fr); border-top: 1px solid var(--home-line); }
.page-home .service-tabs { border-right: 1px solid var(--home-line); }.page-home .service-tabs button { width: 100%; appearance: none; border: 0; border-bottom: 1px solid var(--home-line); background: transparent; color: #73777c; text-align: left; padding: 1.15rem .8rem; display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: .7rem; font-family: var(--font-display); font-size: 1rem; cursor: pointer; transition: color .3s ease, padding-left .35s var(--home-ease), background .3s ease; }.page-home .service-tabs button span { font-family: var(--font-mono); font-size: .56rem; }.page-home .service-tabs button:hover, .page-home .service-tabs button:focus-visible, .page-home .service-tabs button[aria-selected="true"] { color: var(--home-dark); background: rgba(255,255,255,.35); padding-left: 1.3rem; }.page-home .service-tabs button[aria-selected="true"] span { color: var(--home-blue); }
.page-home .service-panels { position: relative; min-height: 620px; }.page-home .service-panel { min-height: 620px; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,4vw,5rem); padding: clamp(1.6rem,4vw,4rem); align-items: center; }.js .page-home .service-panel { position: absolute; inset: 0; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .4s ease, transform .5s var(--home-ease), visibility .4s; }.js .page-home .service-panel.is-active { opacity: 1; visibility: visible; transform: none; z-index: 2; }
.page-home .service-question { font-family: var(--font-mono); font-size: .58rem; text-transform: uppercase; letter-spacing: .09em; color: var(--home-blue); }.page-home .service-copy h3 { font-size: clamp(2.35rem,3.8vw,4.7rem); line-height: .96; margin: 1.25rem 0 1.6rem; }.page-home .service-copy > p:not(.service-question) { max-width: 480px; color: #50555a; line-height: 1.65; }
.page-home .service-visual { min-height: 460px; position: relative; background: var(--home-dark); overflow: hidden; color: #fff; }.page-home .service-visual > svg { position: absolute; inset: 0; width: 100%; height: 100%; }.page-home .service-visual svg path { fill: none; stroke: #9fa4aa; stroke-width: 1.2; }.page-home .service-visual svg circle { fill: var(--home-dark); stroke: #c9cdd1; stroke-width: 1.2; }.page-home .service-visual svg circle.accent { fill: var(--home-blue); stroke: #aabaff; }.page-home .service-annotations text { fill: #cbd0d4; font-family: var(--font-mono); font-size: 9px; text-transform: uppercase; }
.page-home .research-visual svg circle { fill: var(--home-blue); }.page-home .research-visual svg text { fill: #fff; text-anchor: middle; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; }

.page-home .role { position: absolute; z-index: 2; padding: .7rem .9rem; border: 1px solid var(--home-light-line); font-family: var(--font-mono); font-size: .56rem; }.page-home .role-a { top: 15%; left: 8%; }.page-home .role-b { bottom: 15%; left: 8%; }.page-home .role-c { top: calc(50% - 18px); right: 8%; }
.page-home .component-chaos { position: absolute; left: 7%; top: 15%; bottom: 15%; width: 33%; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }.page-home .component-chaos i { display: block; border: 1px solid #777e85; }.page-home .component-chaos i:nth-child(2) { border-radius: 18px; }.page-home .component-chaos i:nth-child(3) { background: #2a2f34; }.page-home .component-chaos i:nth-child(5) { border-width: 2px; }.page-home .component-system { position: absolute; z-index: 2; width: 34%; right: 7%; top: 18%; bottom: 18%; padding: 1rem; background: #f2efe7; color: var(--home-dark); }.page-home .component-system span, .page-home .component-system small { font-family: var(--font-mono); font-size: .54rem; text-transform: uppercase; }.page-home .component-system b { display: block; height: 24%; background: var(--home-blue); margin: .7rem 0; }.page-home .component-system b:nth-of-type(2) { background: #cdd7f7; }.page-home .component-system b:nth-of-type(3) { background: var(--home-dark); }.page-home .component-system small { display: block; margin-top: 1rem; }
.page-home .legacy-stack { position: absolute; z-index: 2; left: 8%; top: 18%; bottom: 18%; display: grid; gap: .7rem; width: 30%; }.page-home .legacy-stack span { border: 1px solid #6f767d; display: grid; place-items: center; font-family: var(--font-mono); font-size: .55rem; }.page-home .future-service { position: absolute; z-index: 2; width: 36%; right: 7%; top: 17%; bottom: 17%; padding: 1rem; background: var(--home-blue); }.page-home .future-service > * { display: block; }.page-home .future-service small { font-family: var(--font-mono); font-size: .54rem; text-transform: uppercase; color: #cbd7ff; }.page-home .future-service b { font-size: 1.25rem; margin: 1rem 0 2rem; }.page-home .future-service i { height: 20%; background: rgba(255,255,255,.18); margin-bottom: .7rem; }

/* Approach map */
.page-home .home-approach-section { background: var(--home-paper-soft); }
.page-home .approach-head { width: var(--home-container); margin: 0 auto clamp(4rem,7vw,7rem); display: grid; grid-template-columns: .62fr 1.55fr .82fr; gap: clamp(2rem,5vw,6rem); }.page-home .approach-head h2 { font-size: var(--home-display-md); line-height: .96; letter-spacing: -.055em; margin: 0; }.page-home .approach-head > div p { color: #474c52; line-height: 1.6; }






/* Why model */
.page-home .home-why-section { background: var(--home-dark); color: #fff; border-top-color: #292d31; }
.page-home .why-intro { width: var(--home-container); margin: 0 auto clamp(4rem,8vw,8rem); display: grid; grid-template-columns: .62fr 2.37fr; gap: clamp(2rem,5vw,6rem); }.page-home .why-intro h2 { font-size: var(--home-display-md); line-height: .95; letter-spacing: -.055em; color: #fff; margin: 0; }

.page-home .why-p1 { left: 4%; top: 10%; }.page-home .why-p2 { right: 4%; top: 10%; }.page-home .why-p3 { left: 4%; bottom: 10%; }.page-home .why-p4 { right: 4%; bottom: 10%; }

/* Insights */

.page-home .insights-head { width: var(--home-container); margin: 0 auto clamp(4rem,7vw,7rem); display: grid; grid-template-columns: .62fr 1.55fr .82fr; gap: clamp(2rem,5vw,6rem); }.page-home .insights-head h2 { font-size: var(--home-display-md); line-height: .96; letter-spacing: -.055em; margin: 0; }.page-home .insights-head > p:last-child { color: #4f5459; line-height: 1.6; }
.page-home .insight-art { position: relative; overflow: hidden; background: var(--home-dark); }
.page-home .insight-art-research { display: grid; place-items: center; }.page-home .insight-art-research i { position: absolute; width: 110px; height: 110px; border: 1px solid #6c737a; border-radius: 50%; }.page-home .insight-art-research i:nth-child(1) { transform: translateX(-45px); }.page-home .insight-art-research i:nth-child(2) { transform: translateX(45px); }.page-home .insight-art-research i:nth-child(3) { transform: translateY(35px); }.page-home .insight-art-research strong { position: relative; color: #fff; font-family: var(--font-mono); font-size: .65rem; text-transform: uppercase; }.page-home .insight-art-adoption svg { width: 100%; height: 100%; }.page-home .insight-art-adoption path { fill: none; stroke: #b0b5ba; }.page-home .insight-art-adoption circle { fill: var(--home-amber); }.page-home .insight-art-adoption span { position: absolute; color: #fff; font-family: var(--font-mono); font-size: .53rem; text-transform: uppercase; }.page-home .insight-art-adoption span:nth-of-type(1) { left: 5%; bottom: 10%; }.page-home .insight-art-adoption span:nth-of-type(2) { left: 37%; top: 10%; }.page-home .insight-art-adoption span:nth-of-type(3) { right: 5%; bottom: 10%; }

/* Final CTA and footer */
.page-home .home-final-cta { position: relative; min-height: 790px; padding: var(--home-section-y) var(--home-gutter); background: var(--home-blue); color: #fff; overflow: hidden; display: flex; align-items: center; }.page-home .home-final-cta::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size: 110px 110px; mask-image: linear-gradient(to bottom,#000,transparent 90%); }.page-home .final-cta-content { position: relative; z-index: 3; width: var(--home-container); margin: 0 auto; display: grid; grid-template-columns: .62fr 1.55fr .82fr; gap: clamp(2rem,5vw,6rem); align-items: end; }.page-home .final-cta-content h2 { font-size: var(--home-display-lg); line-height: .9; letter-spacing: -.062em; color: #fff; margin: 0; }.page-home .final-cta-content > div p { color: rgba(255,255,255,.78); line-height: 1.6; }.page-home .final-cta-system { position: absolute; inset: 0; pointer-events: none; }.page-home .final-cta-system svg { position: absolute; width: 100%; height: 100%; }.page-home .final-cta-system path { fill: none; stroke: rgba(255,255,255,.5); stroke-width: 1.2; }.page-home .final-cta-system circle { fill: #fff; }.page-home .final-cta-system circle:last-child { fill: var(--home-amber); stroke: #ffd1a0; }.page-home .final-cta-system span, .page-home .final-cta-system b { position: absolute; font-family: var(--font-mono); font-size: .56rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.58); }.page-home .final-cta-system span:nth-of-type(1) { left: 3%; top: 46%; }.page-home .final-cta-system span:nth-of-type(2) { left: 37%; top: 12%; }.page-home .final-cta-system span:nth-of-type(3) { left: 66%; bottom: 10%; }.page-home .final-cta-system b { right: 7%; top: 45%; color: #fff; }
.page-home .home-footer { position: relative; padding-top: 6rem; }.page-home .footer-system-mark { position: absolute; right: 4vw; top: 1.2rem; width: min(480px,38vw); }.page-home .footer-system-mark svg { width: 100%; }.page-home .footer-system-mark path { fill: none; stroke: #676c72; }.page-home .footer-system-mark circle { fill: #1d2023; stroke: #8d9399; }.page-home .footer-system-mark circle:last-child { fill: var(--home-amber); }.page-home .footer-system-mark span { position: absolute; top: 80%; font-family: var(--font-mono); font-size: .48rem; text-transform: uppercase; color: #747a80; }.page-home .footer-system-mark span:nth-of-type(1) { left: 2%; }.page-home .footer-system-mark span:nth-of-type(2) { left: 50%; }.page-home .footer-system-mark span:nth-of-type(3) { right: 0; }

/* Progressive enhancement and reveal restraint */
.js .page-home [data-home-section] .home-section-head > *, .js .page-home [data-home-section] .services-intro > *, .js .page-home [data-home-section] .approach-head > *, .js .page-home [data-home-section] .why-intro > *, .js .page-home [data-home-section] .insights-head > * { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .75s var(--home-ease); }
.js .page-home [data-home-section].is-home-visible .home-section-head > *, .js .page-home [data-home-section].is-home-visible .services-intro > *, .js .page-home [data-home-section].is-home-visible .approach-head > *, .js .page-home [data-home-section].is-home-visible .why-intro > *, .js .page-home [data-home-section].is-home-visible .insights-head > * { opacity: 1; transform: none; }
.js .page-home [data-home-section].is-home-visible :is(.home-section-head,.services-intro,.approach-head,.why-intro,.insights-head) > *:nth-child(2) { transition-delay: .08s; }.js .page-home [data-home-section].is-home-visible :is(.home-section-head,.services-intro,.approach-head,.why-intro,.insights-head) > *:nth-child(3) { transition-delay: .16s; }

/* Tablet */
@media (max-width: 1180px) {
  .page-home .home-hero-grid { grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr); gap: 2rem; }
  .page-home .home-hero h1 { font-size: clamp(3.8rem,7vw,6.7rem); }
  .page-home .hero-signal { width: 170px; }.page-home .hero-decision-interface { width: 52%; }
  .page-home .pov-grid { grid-template-columns: .85fr .65fr; }.page-home .pov-console { grid-column: 2; grid-row: 1; top: calc(var(--header-height) + 4rem); }.page-home .pov-story { grid-column: 2; grid-row: 1; padding-top: 650px; }.page-home .pov-sticky { grid-row: 1; }
  .page-home .service-panel { grid-template-columns: .9fr 1.1fr; }.page-home .service-visual { min-height: 400px; }
  
}

/* Small desktop / tablet */
@media (max-width: 960px) {
  .page-home .home-section-head, .page-home .services-intro, .page-home .approach-head, .page-home .insights-head { grid-template-columns: 1fr 1.4fr; }.page-home .home-section-head > div, .page-home .services-intro > p:last-child, .page-home .approach-head > div, .page-home .insights-head > p:last-child { grid-column: 2; }
  .page-home .home-hero { min-height: auto; padding-top: calc(var(--header-height) + 2rem); }.page-home .home-hero-grid { grid-template-columns: 1fr; }.page-home .home-hero-copy { padding-bottom: 1rem; }.page-home .home-hero h1 { max-width: 850px; }.page-home .hero-system { min-height: 610px; height: 70vw; }.page-home .hero-scroll-cue { display: none; }
  .page-home .sector-explorer { grid-template-columns: 1fr; }.page-home .sector-tabs { grid-template-columns: repeat(3,1fr); border-right: 0; border-bottom: 1px solid var(--home-line); }.page-home .sector-tabs button { border-right: 1px solid var(--home-line); font-size: .9rem; }.page-home .sector-stage { min-height: 590px; }
  .page-home .pov-grid { grid-template-columns: 1fr; min-height: auto; }.page-home .pov-sticky { position: static; }.page-home .pov-story { grid-column: 1; grid-row: auto; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }.page-home .pov-story p { margin: 0; }.page-home .pov-story .pov-lead, .page-home .pov-story .pov-conclusion { grid-column: 1 / -1; }.page-home .pov-console { grid-column: 1; grid-row: auto; position: relative; top: auto; margin-top: 1rem; }
  .page-home .work-showcase { grid-template-columns: 1fr; }.page-home .work-index { position: static; display: grid; grid-template-columns: repeat(4,1fr); }.page-home .work-index button { border-right: 1px solid var(--home-line); }.page-home .work-stage { min-height: 770px; }
  .page-home .service-layout { grid-template-columns: 1fr; }.page-home .service-tabs { display: grid; grid-template-columns: repeat(3,1fr); border-right: 0; }.page-home .service-tabs button { border-right: 1px solid var(--home-line); }.page-home .service-panels { min-height: 640px; }
  
  .page-home .why-intro { grid-template-columns: 1fr; }
  
  .page-home .final-cta-content { grid-template-columns: 1fr 1.4fr; }.page-home .final-cta-content > div { grid-column: 2; }
}

/* Mobile */
@media (max-width: 680px) {
  .page-home { --home-gutter: 1.1rem; --home-section-y: 5.5rem; --home-display-xl: clamp(3.45rem,15vw,5rem); --home-display-lg: clamp(3.2rem,14vw,4.8rem); --home-display-md: clamp(2.7rem,12vw,4rem); }
  .page-home .home-section-head, .page-home .services-intro, .page-home .approach-head, .page-home .insights-head { grid-template-columns: 1fr; gap: 1.8rem; margin-bottom: 3.5rem; }.page-home .home-section-head > div, .page-home .services-intro > p:last-child, .page-home .approach-head > div, .page-home .insights-head > p:last-child { grid-column: 1; }.page-home .home-section-head h2, .page-home .services-intro h2, .page-home .approach-head h2, .page-home .insights-head h2 { font-size: var(--home-display-md); }
  .page-home .home-hero { padding-top: calc(var(--header-height) + 1rem); }.page-home .home-hero-copy { padding: 1.5rem 0 1rem; }.page-home .home-hero h1 { line-height: .9; letter-spacing: -.063em; margin: 2rem 0; }.page-home .hero-emphasis { display: inline; }.page-home .hero-intro-grid { grid-template-columns: 1fr; gap: 1rem; }.page-home .home-actions { align-items: stretch; }.page-home .home-button { width: 100%; }.page-home .home-text-link { min-height: 48px; }.page-home .hero-sector-line { gap: .65rem 1rem; margin-top: 2.5rem; }.page-home .hero-sector-line span:not(:last-child)::after { margin-left: 1rem; }.page-home .hero-system { height: 620px; min-height: 620px; }.page-home .hero-signal { width: 145px; min-height: 82px; padding: .65rem; }.page-home .hero-signal b { font-size: .67rem; margin: .45rem 0; }.page-home .hero-signal-a { top: 9%; }.page-home .hero-signal-b { top: 25%; left: 3.8%; }.page-home .hero-signal-c { bottom: 27%; }.page-home .hero-signal-d { bottom: 12%; left: 3.8%; }.page-home .hero-decision-interface { width: 58%; right: 3%; top: 30%; min-height: 280px; }.page-home .decision-layout { grid-template-columns: 34px 1fr; min-height: 243px; }.page-home .decision-content { padding: .9rem; }.page-home .decision-content h2 { font-size: 1.25rem; }.page-home .decision-status { display: block; }.page-home .decision-status b { display: block; margin: .35rem 0 0 1rem; }.page-home .hero-system-axis { font-size: .47rem; }
  .page-home .sector-tabs { grid-template-columns: 1fr 1fr; }.page-home .sector-tabs button { grid-template-columns: 25px 1fr; min-height: 64px; padding: .8rem .6rem; font-size: .76rem; }.page-home .sector-tabs button:hover, .page-home .sector-tabs button:focus-visible, .page-home .sector-tabs button[aria-selected="true"] { padding-left: .8rem; }.page-home .sector-stage { min-height: 720px; padding: .9rem; }.page-home .sector-panel { min-height: 665px; grid-template-columns: 1fr; align-content: start; }.page-home .sector-panel-copy { padding: 1rem 0 0; }.page-home .sector-panel-copy h3 { font-size: 2.7rem; }.page-home .sector-diagram { min-height: 330px; }.page-home .sector-diagram svg { max-height: 350px; }
  .page-home .pov-grid { gap: 3rem; padding: 5.5rem 0; }.page-home .pov-sticky h2 { font-size: var(--home-display-lg); }.page-home .pov-mode-switch { width: 100%; }.page-home .pov-mode-switch button { flex: 1; }.page-home .pov-story { grid-template-columns: 1fr; }.page-home .pov-story .pov-lead, .page-home .pov-story .pov-conclusion { grid-column: 1; }.page-home .pov-story p { padding-top: 1.5rem; border-top: 1px solid var(--home-light-line); }.page-home .pov-console { min-height: 540px; }.page-home .clarity-route { grid-template-columns: 1fr; gap: .7rem; }.page-home .clarity-route i { height: 22px; width: 1px; margin-left: .5rem; }
  .page-home .work-index { grid-template-columns: 1fr 1fr; }.page-home .work-index button { min-height: 84px; }.page-home .work-stage { min-height: 750px; }.page-home .work-panel { min-height: 750px; }.page-home .product-environment { height: 480px; }.page-home .work-panel-copy { grid-template-columns: 1fr; }.page-home .work-panel-copy a { grid-column: 1; }.page-home .enterprise-ui { grid-template-columns: 70px 1fr; }.page-home .product-sidebar { padding: .8rem .45rem; }.page-home .product-sidebar span { font-size: 0; }.page-home .product-sidebar span::before { content: "—"; font-size: .7rem; }.page-home .product-main { padding: .9rem; }.page-home .operation-cards { grid-template-columns: 1fr; }.page-home .operation-cards > div { display: grid; grid-template-columns: 1fr auto; align-items: center; }.page-home .operation-cards b { font-size: 1.3rem; margin: 0; }.page-home .operation-cards small { grid-column: 1 / -1; }.page-home .operation-table > div { grid-template-columns: 1fr auto; }.page-home .operation-table > div span:nth-child(2) { display: none; }.page-home .portal-ui { padding: 1rem; }.page-home .portal-shell { width: 100%; }.page-home .portal-mobile { display: none; }.page-home .portal-actions { grid-template-columns: 1fr; }.page-home .health-ui { grid-template-columns: 70px 1fr; padding: 1rem; }.page-home .health-rail { padding: .8rem .4rem; }.page-home .health-rail span { font-size: 0; }.page-home .health-rail span::before { content: "—"; font-size: .65rem; }.page-home .health-main { padding: .9rem; }.page-home .health-patient h3 { font-size: 1.7rem; }.page-home .government-ui { grid-template-columns: 1fr; padding: 1rem; }.page-home .gov-case { display: none; }.page-home .gov-citizen h3 { font-size: 2.2rem; }
  .page-home .service-lifecycle { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; gap: .3rem; font-size: .43rem; }.page-home .service-lifecycle i { display: none; }.page-home .service-tabs { grid-template-columns: 1fr 1fr; }.page-home .service-tabs button { min-height: 68px; padding: .75rem .55rem; font-size: .75rem; }.page-home .service-tabs button:hover, .page-home .service-tabs button:focus-visible, .page-home .service-tabs button[aria-selected="true"] { padding-left: .75rem; }.page-home .service-panels { min-height: 790px; }.page-home .service-panel { min-height: 790px; grid-template-columns: 1fr; padding: 1.2rem 0; align-content: start; }.page-home .service-copy { padding: 0 .4rem; }.page-home .service-copy h3 { font-size: 2.7rem; }.page-home .service-visual { min-height: 370px; }.page-home .role { font-size: .48rem; }
  
  .page-home .why-intro h2 { font-size: var(--home-display-md); }
  
  .page-home .home-final-cta { min-height: 720px; }.page-home .final-cta-content { grid-template-columns: 1fr; align-items: start; }.page-home .final-cta-content > div { grid-column: 1; }.page-home .final-cta-content h2 { font-size: var(--home-display-lg); }.page-home .final-cta-system { opacity: .42; }.page-home .final-cta-system span { display: none; }
  .page-home .home-footer { padding-top: 4rem; }.page-home .footer-system-mark { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .page-home .hero-moving-signals { display: none; }
  .js .page-home .hero-input-paths path, .js .page-home .hero-output-paths path, .js .page-home .sector-panel.is-active .sector-route { animation: none; stroke-dashoffset: 0; }
  .page-home .hero-system.is-resolved .hero-signal, .page-home .hero-system.is-resolved .hero-decision-interface { transform: none; }
  .js .page-home [data-home-section] .home-section-head > *, .js .page-home [data-home-section] .services-intro > *, .js .page-home [data-home-section] .approach-head > *, .js .page-home [data-home-section] .why-intro > *, .js .page-home [data-home-section] .insights-head > * { opacity: 1; transform: none; }
}

.page-home .gov-action { display: inline-block; margin-top: 2rem; background: var(--home-blue); color: #fff; padding: .8rem 1rem; font-size: .72rem; }
@media (max-width: 960px) {
  .page-home .header-cta { display: none; }
  .page-home .menu-toggle { display: block; }
}
.js .page-home [role="tabpanel"][hidden] { display: none !important; }
.js .page-home :is(.sector-panel,.work-panel,.service-panel,.pov-panel).is-active { animation: homePanelIn .48s var(--home-ease); }
@keyframes homePanelIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 960px) {
  .no-js .page-home .menu-toggle { display: none; }
}

/* ==========================================================
   HOMEPAGE HERO — CENTERED RECOMPOSITION
   A calm, centered promise followed by a wide system model.
   ========================================================== */
.page-home .home-hero {
  min-height: 0;
  padding: calc(76px + clamp(4.5rem, 8vw, 8rem)) var(--home-gutter) clamp(5rem, 8vw, 8rem);
  overflow: hidden;
}
.page-home .home-hero::after {
  width: min(28vw, 380px);
  top: 4%;
  right: -11%;
  opacity: .62;
}
.page-home .home-hero-grid {
  width: var(--home-container);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  gap: 0;
  align-items: start;
}
.page-home .hero-copy-primary {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: 1420px;
  margin: 0 auto;
  padding: 0;
  text-align: center;
}
.page-home .hero-copy-primary .home-label { justify-content: center; }
.page-home .home-hero h1 {
  max-width: 1420px;
  margin: clamp(2rem, 3.5vw, 3.5rem) auto 0;
  font-size: clamp(3.8rem, 5.65vw, 6.9rem);
  line-height: .94;
  letter-spacing: -.058em;
  color: var(--home-ink);
  text-align: center;
}
.page-home .hero-line { display: block; }
.page-home .hero-emphasis { color: inherit; }
.page-home .hero-emphasis > span::after { display: none; }
.page-home .hero-support {
  grid-column: 1;
  grid-row: 2;
  width: min(1050px, 100%);
  margin: 0 auto;
  padding: clamp(2.2rem, 4vw, 3.75rem) 0 clamp(2rem, 3.5vw, 3.25rem);
  text-align: center;
}
.page-home .hero-intro-grid {
  width: min(930px, 100%);
  max-width: none;
  margin: 0 auto;
  padding: 0;
  border: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: .9rem;
}
.page-home .hero-intro-grid p {
  max-width: 900px;
  margin: 0 auto;
  color: #343a35;
  font-size: clamp(1rem, 1.18vw, 1.22rem);
  line-height: 1.55;
  text-wrap: balance;
}
.page-home .hero-support .home-actions {
  justify-content: center;
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
}
.page-home .hero-sector-line {
  justify-content: center;
  margin: clamp(2.6rem, 4vw, 4rem) auto 0;
  padding-top: 1.1rem;
  font-size: clamp(.62rem, .62vw, .72rem);
}
.page-home .hero-system {
  grid-column: 1;
  grid-row: 3;
  width: 100%;
  height: clamp(590px, 45vw, 700px);
  min-height: 590px;
  margin: 0 auto;
}
.page-home .hero-brand-burst {
  width: 30%;
  left: 43%;
  top: 8%;
}
.page-home .hero-signal {
  width: 25%;
  min-height: 96px;
  padding: .9rem 1rem;
}
.page-home .hero-signal-a { top: 13%; left: 4%; }
.page-home .hero-signal-b { top: 31.5%; left: 4%; }
.page-home .hero-signal-c { top: 50%; bottom: auto; left: 4%; }
.page-home .hero-signal-d { top: 68.5%; bottom: auto; left: 4%; }
.page-home .hero-decision-interface {
  width: 49%;
  min-height: 340px;
  right: 4%;
  top: 20%;
}
.page-home .decision-layout { min-height: 299px; }
.page-home .decision-content h2 { font-size: clamp(1.75rem, 2.65vw, 3.15rem); }
.page-home .hero-system.is-resolved .hero-signal { transform: translateX(6px) scale(.985); }
.page-home .hero-system.is-resolved .hero-decision-interface { transform: translate(-1%, 1%) scale(1.01); }

@media (min-width: 1101px) {
  .page-home .home-hero h1 .hero-line { white-space: nowrap; }
}

@media (max-width: 960px) {
  .page-home .home-hero {
    padding-top: calc(70px + clamp(3.5rem, 8vw, 6rem));
  }
  .page-home .home-hero-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; }
  .page-home .hero-copy-primary { grid-column: 1; grid-row: 1; padding: 0; }
  .page-home .hero-support { grid-column: 1; grid-row: 2; padding: 2.25rem 0 2.75rem; }
  .page-home .hero-system { grid-column: 1; grid-row: 3; height: clamp(560px, 72vw, 650px); min-height: 560px; }
  .page-home .hero-intro-grid { margin-top: 0; }
  .page-home .home-hero h1 { font-size: clamp(3.6rem, 8vw, 5.8rem); }
  .page-home .hero-signal { width: 25%; }
  .page-home .hero-decision-interface { width: 50%; right: 3%; }
}

@media (max-width: 680px) {
  .page-home .home-hero {
    padding-top: calc(70px + 3rem);
    padding-bottom: 4.5rem;
  }
  .page-home .home-hero h1 {
    margin-top: 1.75rem;
    font-size: clamp(3rem, 13.4vw, 4.25rem);
    line-height: .96;
    letter-spacing: -.052em;
  }
  .page-home .hero-line:first-child,
  .page-home .hero-line:nth-child(2) { max-width: none; }
  .page-home .hero-support { padding: 2rem 0 2.4rem; }
  .page-home .hero-intro-grid { gap: 1rem; padding: 0; }
  .page-home .hero-intro-grid p { font-size: 1rem; line-height: 1.55; }
  .page-home .hero-support .home-actions { gap: 1rem; margin-top: 1.75rem; }
  .page-home .hero-sector-line { gap: .65rem 1rem; margin-top: 2.4rem; }
  .page-home .hero-system {
    height: 780px;
    min-height: 780px;
    margin-inline: 0;
  }
  .page-home .hero-input-paths,
  .page-home .hero-output-paths,
  .page-home .hero-nodes,
  .page-home .hero-moving-signals { display: none; }
  .page-home .hero-brand-burst { width: 62%; left: 20%; top: 33%; opacity: .09; }
  .page-home .hero-signal {
    width: calc(50% - 1.5rem);
    min-height: 96px;
    padding: .65rem;
  }
  .page-home .hero-signal-a { top: 4.6rem; left: 1rem; }
  .page-home .hero-signal-b { top: 4.6rem; left: auto; right: 1rem; }
  .page-home .hero-signal-c { top: 11.8rem; left: 1rem; }
  .page-home .hero-signal-d { top: 11.8rem; left: auto; right: 1rem; }
  .page-home .hero-signal span,
  .page-home .hero-signal i { font-size: .55rem; }
  .page-home .hero-signal b { font-size: .72rem; line-height: 1.25; }
  .page-home .hero-decision-interface {
    width: calc(100% - 2rem);
    min-height: 315px;
    left: 1rem;
    right: auto;
    top: 19.4rem;
  }
  .page-home .decision-layout { min-height: 274px; }
  .page-home .decision-content { padding: 1rem; }
  .page-home .decision-content h2 { font-size: clamp(1.45rem, 7vw, 2rem); margin-bottom: 1.35rem; }
  .page-home .decision-status { display: flex; font-size: .64rem; }
  .page-home .decision-status b { display: block; margin: 0; }
  .page-home .hero-outcome-chip { width: min(235px, 68%); right: 1rem; bottom: 3.7rem; }
  .page-home .hero-system-axis { bottom: 1.3rem; }
  .page-home .hero-system.is-resolved .hero-signal,
  .page-home .hero-system.is-resolved .hero-decision-interface { transform: none; }
}

/* ==========================================================
   HOMEPAGE 2026 — BRAND-LED REFINEMENT
   This layer is intentionally scoped to .page-home. The other
   seven pages retain their existing layout and styling.
   ========================================================== */
.page-home {
  --home-gold: #F1B547;
  --home-orange: #DF7730;
  --home-green: #008B41;
  --home-green-deep: #005f31;
  --home-cream: #f6f1e5;
  --home-mint: #edf4ed;
  --home-peach: #f7e9de;
  --home-ink: #101311;
  --home-blue: var(--home-green);
  --home-blue-bright: #0aa55a;
  --home-amber: var(--home-gold);
  --home-small: clamp(.68rem, .58vw, .76rem);
  --home-display-xl: clamp(4.4rem, 6.85vw, 8.15rem);
  --home-display-lg: clamp(3.55rem, 5.45vw, 6.4rem);
  --home-display-md: clamp(2.9rem, 4.1vw, 4.95rem);
  position: relative;
  background: var(--home-cream);
  isolation: isolate;
}
.page-home main,
.page-home .site-header,
.page-home .home-footer { position: relative; z-index: 2; }
.page-home .home-atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 10%, rgba(241,181,71,.21), transparent 32%),
    radial-gradient(circle at 86% 72%, rgba(0,139,65,.12), transparent 34%),
    #f6f1e5;
  transition: background 1.1s var(--home-ease);
}
.page-home .home-atmosphere-grid {
  position: absolute;
  inset: 0;
  opacity: .22;
  background-image:
    linear-gradient(rgba(16,19,17,.065) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,19,17,.065) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, #000, transparent 80%);
}
.page-home .home-atmosphere-noise {
  position: absolute;
  inset: 0;
  opacity: .11;
  background-image: url("assets/illustrations/noise.svg");
  mix-blend-mode: multiply;
}
.page-home[data-home-tone="green"] .home-atmosphere,
.page-home[data-home-tone="green-soft"] .home-atmosphere {
  background:
    radial-gradient(circle at 82% 18%, rgba(0,139,65,.22), transparent 32%),
    radial-gradient(circle at 14% 82%, rgba(241,181,71,.13), transparent 34%),
    #eef3e9;
}
.page-home[data-home-tone="orange-soft"] .home-atmosphere,
.page-home[data-home-tone="orange-dark"] .home-atmosphere {
  background:
    radial-gradient(circle at 16% 25%, rgba(223,119,48,.2), transparent 33%),
    radial-gradient(circle at 88% 75%, rgba(241,181,71,.13), transparent 34%),
    #f6eee5;
}
.page-home[data-home-tone="dark-green"] .home-atmosphere {
  background: radial-gradient(circle at 50% 50%, rgba(0,139,65,.18), transparent 42%), #121713;
}

/* Brand and navigation */
.page-home .site-header { height: 76px; }
.page-home .site-header.is-hidden { transform: none; }
.page-home .site-header:not(.is-scrolled) { background: rgba(246,241,229,.82); }
.page-home .site-header.is-scrolled { background: rgba(250,247,239,.94); border-color: rgba(16,19,17,.14); }
.page-home .header-inner { height: 76px; }
.page-home .brand { width: clamp(142px, 13vw, 184px); line-height: 0; }
.page-home .brand-logo { display: block; width: 100%; height: auto; }
.page-home .desktop-nav a { font-size: .86rem; }
.page-home .desktop-nav a::after { background: var(--home-green); height: 2px; }
.page-home .header-cta { border-bottom: 0; padding: .65rem .75rem .65rem 1rem; background: var(--home-ink); color: #fff; }
.page-home .header-cta i { border-color: rgba(255,255,255,.65); }
.page-home .header-cta:hover i { background: var(--home-gold); border-color: var(--home-gold); color: var(--home-ink); }
.page-home .home-scroll-progress { height: 2px; }
.page-home .home-scroll-progress span { background: linear-gradient(90deg,var(--home-gold),var(--home-orange),var(--home-green)); }
.page-home .mobile-menu { background: #f7f2e7; color: var(--home-ink); }
.page-home .mobile-menu-brand { width: 165px; height: auto; margin: 0 0 2rem; }
.page-home .mobile-menu p { color: #575d57; }

/* Shared section atmosphere and readable details */
.page-home .home-section,
.page-home .home-final-cta { transition: background-color .8s var(--home-ease), color .5s ease; }
.page-home .home-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .24;
  background-image: linear-gradient(90deg, transparent 0 49.92%, rgba(16,19,17,.07) 50%, transparent 50.08%);
  background-size: 24vw 100%;
  mask-image: linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
}
.page-home .home-section > * { position: relative; z-index: 1; }
.page-home .home-label { color: #4f5650; font-size: var(--home-small); }
.page-home .home-label span { width: 32px; height: 32px; background: rgba(255,255,255,.24); }
.page-home .home-label-light { color: rgba(255,255,255,.72); }
.page-home .home-label-light span { background: rgba(255,255,255,.05); }
.page-home .sector-code, .page-home .work-panel-meta, .page-home .service-question, .page-home .hero-system-topline, .page-home .hero-system-axis, .page-home .service-lifecycle{ font-size: clamp(.66rem, .62vw, .76rem); }
.page-home .sector-node-labels text, .page-home .sector-small-data text, .page-home .service-annotations text, .page-home .research-visual text{ font-size: 13px; }
.page-home .home-button::before { background: var(--home-green); }
.page-home .home-button-light::before { background: var(--home-gold); }
.page-home .home-button-dark:hover,
.page-home .home-button-dark:focus-visible { color: #fff; }
.page-home .home-text-link { text-decoration-thickness: 1px; text-underline-offset: .3em; }
.page-home .home-text-link:hover { text-decoration: underline; }

/* Hero: product visual sits in the opening viewport on all sizes. */
.page-home .home-hero {
  min-height: max(830px, 100svh);
  padding-top: calc(76px + clamp(1.75rem, 3vw, 3rem));
  background:
    linear-gradient(125deg, rgba(241,181,71,.12), transparent 42%),
    rgba(246,241,229,.82);
  overflow: hidden;
}
.page-home .home-hero::after {
  content: "";
  position: absolute;
  width: min(34vw, 480px);
  aspect-ratio: 1;
  top: 2%;
  right: -8%;
  border-radius: 50%;
  border: 1px solid rgba(0,139,65,.18);
  box-shadow: 0 0 0 46px rgba(241,181,71,.045), 0 0 0 92px rgba(223,119,48,.035);
  pointer-events: none;
}
.page-home .home-hero-grid {
  grid-template-columns: minmax(0,.88fr) minmax(540px,1.12fr);
  grid-template-rows: auto auto;
  gap: clamp(1.75rem, 3.6vw, 4.6rem) clamp(2.4rem, 5vw, 6.2rem);
  align-items: end;
}
.page-home .hero-copy-primary { grid-column: 1; grid-row: 1; padding: clamp(2rem,4vw,4.5rem) 0 0; align-self: end; }
.page-home .hero-support { grid-column: 1; grid-row: 2; padding: 0 0 clamp(2rem,4vw,4rem); align-self: start; }
.page-home .hero-system { grid-column: 2; grid-row: 1 / 3; }
.page-home .home-hero h1 {
  margin: clamp(1.65rem,3vw,3rem) 0 0;
  max-width: 900px;
  font-size: var(--home-display-xl);
  line-height: .9;
  letter-spacing: -.064em;
}
.page-home .hero-line { display: block; overflow: hidden; padding-bottom: .06em; }
.page-home .hero-line > span { display: block; }
.js .page-home .hero-line > span { animation: heroTextReveal .95s var(--home-ease) both; }
.js .page-home .hero-line:nth-child(2) > span { animation-delay: .09s; }
.js .page-home .hero-line:nth-child(3) > span { animation-delay: .18s; }
@keyframes heroTextReveal { from { transform: translateY(108%); opacity: .2; } to { transform: none; opacity: 1; } }
.page-home .hero-emphasis { color: var(--home-green); }
.page-home .hero-emphasis > span { position: relative; }
.page-home .hero-emphasis > span::after {
  content: "";
  position: absolute;
  height: .1em;
  left: .04em;
  right: .04em;
  bottom: -.02em;
  background: linear-gradient(90deg,var(--home-gold),var(--home-orange),var(--home-green));
  transform-origin: left;
  animation: heroUnderline 1.2s .65s var(--home-ease) both;
}
@keyframes heroUnderline { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.page-home .hero-intro-grid { margin: 0 0 1.8rem; }
.page-home .hero-sector-line { margin-top: clamp(2.2rem,4vw,4rem); }
.page-home .hero-system {
  height: clamp(600px, 73vh, 760px);
  min-height: 600px;
  background:
    linear-gradient(rgba(255,255,255,.033) 1px, transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.033) 1px, transparent 1px),
    #111713;
  background-size: 58px 58px;
  border-color: rgba(0,139,65,.4);
  box-shadow: 0 34px 100px rgba(21,25,20,.2);
}
.page-home .hero-system::before {
  background:
    radial-gradient(circle at 51% 45%, rgba(241,181,71,.18), transparent 24%),
    radial-gradient(circle at 72% 35%, rgba(0,139,65,.16), transparent 33%),
    radial-gradient(circle at 22% 72%, rgba(223,119,48,.12), transparent 29%);
}
.page-home .hero-system::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: url("assets/illustrations/noise.svg");
  opacity: .08;
  mix-blend-mode: screen;
}
.page-home .hero-brand-burst {
  position: absolute;
  z-index: 2;
  width: 48%;
  left: 28%;
  top: 8%;
  opacity: .13;
  transform: rotate(-12deg) scale(.94);
  filter: saturate(1.15);
  transition: transform 1.1s var(--home-ease), opacity .8s ease;
}
.page-home .hero-brand-burst img { width: 100%; }
.page-home .hero-system.is-resolved .hero-brand-burst { transform: rotate(0) scale(1.06); opacity: .2; }
.page-home .hero-input-paths path:nth-child(1) { stroke: var(--home-gold); }
.page-home .hero-input-paths path:nth-child(2) { stroke: var(--home-orange); }
.page-home .hero-input-paths path:nth-child(3) { stroke: #cda544; }
.page-home .hero-input-paths path:nth-child(4) { stroke: #df8a43; }
.page-home .hero-output-paths path { stroke: var(--home-green); stroke-width: 1.8; }
.page-home .hero-nodes circle:nth-child(-n+4) { stroke: var(--home-gold); }
.page-home .hero-nodes circle:nth-last-child(-n+3) { stroke: #5fc688; }
.page-home .hero-nodes .hero-core-node { fill: var(--home-green); stroke: #84d6a5; }
.page-home .hero-moving-signals circle:nth-child(1) { fill: var(--home-gold); }
.page-home .hero-moving-signals circle:nth-child(2) { fill: var(--home-orange); }
.page-home .hero-moving-signals circle:nth-child(3) { fill: #62cf8d; }
.page-home .hero-signal { border-color: rgba(241,181,71,.28); background: rgba(12,19,14,.86); }
.page-home .hero-signal:nth-of-type(even) { border-color: rgba(223,119,48,.33); }
.page-home .hero-signal i { color: var(--home-gold); }
.page-home .hero-signal-b i,
.page-home .hero-signal-d i { color: #f29a5d; }
.page-home .hero-decision-interface { border-top: 4px solid var(--home-green); }
.page-home .decision-nav i.active { background: var(--home-green); }
.page-home .decision-status i { background: var(--home-green); }
.page-home .decision-status b { color: var(--home-green-deep); }
.page-home .hero-outcome-chip {
  position: absolute;
  z-index: 8;
  right: 3.6%;
  bottom: 7%;
  width: min(230px, 36%);
  padding: .9rem 1rem;
  background: var(--home-gold);
  color: var(--home-ink);
  transform: translateY(12px);
  opacity: 0;
  transition: opacity .55s ease, transform .6s var(--home-ease);
}
.page-home .hero-system.is-resolved .hero-outcome-chip { opacity: 1; transform: none; }
.page-home .hero-outcome-chip span { display: block; font-family: var(--font-mono); font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; }
.page-home .hero-outcome-chip b { display: block; margin-top: .35rem; font-size: .8rem; }

/* Sector explorer: each sector gets a genuine color and visual state. */
.page-home .home-sector-section { background: rgba(237,244,237,.88); }
.page-home .sector-tabs button { position: relative; overflow: hidden; }
.page-home .sector-tabs button::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--sector-accent,var(--home-green)); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--home-ease); }
.page-home .sector-tabs button[aria-selected="true"]::after { transform: scaleX(1); }
.page-home .sector-tabs button[aria-selected="true"] span { color: var(--sector-accent,var(--home-green)); }
.page-home .sector-stage { background: #111713; border-color: rgba(0,139,65,.3); }
.page-home .sector-stage::after { content:""; position:absolute; inset:0; pointer-events:none; background:url("assets/illustrations/noise.svg"); opacity:.07; mix-blend-mode:screen; }
.page-home .sector-panel { z-index: 1; }
.page-home .sector-panel-copy h3 { color: #fff; }
.page-home .sector-panel-copy a { color: var(--sector-accent,var(--home-gold)); }
.page-home .sector-route { stroke: var(--sector-accent,var(--home-green)); stroke-width: 2; filter: drop-shadow(0 0 7px color-mix(in srgb,var(--sector-accent,var(--home-green)) 45%, transparent)); }
.page-home .sector-route-secondary { stroke: color-mix(in srgb,var(--sector-accent,var(--home-green)) 55%, #fff); }
.page-home .sector-diagram circle { stroke: var(--sector-accent,var(--home-green)); fill: color-mix(in srgb,var(--sector-accent,var(--home-green)) 12%, #101713); }
.page-home .sector-small-data rect,
.page-home .enterprise-matrix rect { stroke: color-mix(in srgb,var(--sector-accent,var(--home-green)) 55%, #fff); }
.page-home .sector-small-data text:last-child { fill: var(--sector-accent,var(--home-green)); }
.js .page-home .sector-panel.is-active .sector-diagram circle { animation: sectorNodePulse 2.2s var(--home-ease) both; }
@keyframes sectorNodePulse { 0% { transform: scale(.72); opacity: .25; } 65% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }

/* Point of view: tighter argument, larger visual, clear orange-to-green transformation. */
.page-home .home-pov-section {
  background:
    radial-gradient(circle at 14% 18%, rgba(223,119,48,.15), transparent 28%),
    radial-gradient(circle at 84% 76%, rgba(0,139,65,.12), transparent 30%),
    #121513;
  overflow: hidden;
}
.page-home .pov-grid { grid-template-columns: minmax(310px,.78fr) minmax(420px,1.2fr); gap: clamp(3rem,7vw,8rem); padding-block: clamp(6rem,9vw,9rem); }
.page-home .pov-sticky { grid-column: 1; grid-row: 1; }
.page-home .pov-sticky h2 { font-size: var(--home-display-lg); max-width: 700px; }
.page-home .pov-spectrum { grid-column: 2; grid-row: 1; align-self: end; display: grid; grid-template-columns: auto 1fr auto; align-items:center; gap:1rem; font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#a9b0aa; }
.page-home .pov-spectrum i { height: 3px; background: linear-gradient(90deg,var(--home-orange),var(--home-gold),var(--home-green)); position:relative; }
.page-home .pov-spectrum b { position:absolute; width:13px; height:13px; border-radius:50%; background:#fff; top:50%; transform:translate(-50%,-50%); left:12%; transition:left .7s var(--home-ease), background .4s ease; }
.page-home .pov-console:has(.pov-panel[data-pov-panel="clarity"].is-active) + * { color: inherit; }
.page-home .pov-grid:has([data-pov-panel="clarity"].is-active) .pov-spectrum b { left:88%; background:var(--home-green); }
.page-home .pov-console { grid-column: 2; grid-row: 2; min-height: 620px; border-top: 4px solid var(--home-orange); background: #f5f1e8; color: var(--home-ink); box-shadow: 0 34px 90px rgba(0,0,0,.28); }
.page-home .pov-grid:has([data-pov-panel="clarity"].is-active) .pov-console { border-top-color: var(--home-green); }
.page-home .pov-console-bar { color:#5d635e; border-color:rgba(16,19,17,.16); }
.page-home .pov-panel { color:var(--home-ink); }
.page-home .feature-stack span { background:#fff; border-color:rgba(223,119,48,.28); box-shadow: 0 8px 20px rgba(57,33,15,.06); }
.page-home .feature-stack span:nth-child(2n) { border-left:3px solid var(--home-orange); }
.page-home .feature-stack span:nth-child(2n+1) { border-left:3px solid var(--home-gold); }
.page-home .clarity-route strong { background:var(--home-green); color:#fff; }
.page-home .clarity-route i { background:linear-gradient(90deg,var(--home-gold),var(--home-green)); }
.page-home .clarity-decision { background:color-mix(in srgb,var(--home-green) 9%,#fff); border-color:color-mix(in srgb,var(--home-green) 35%,#fff); }
.page-home .pov-story { grid-column:1 / -1; grid-row:3; grid-template-columns:1.2fr repeat(3,1fr) 1.2fr; gap:1.25rem; }
.page-home .pov-story p { font-size:clamp(.98rem,1.05vw,1.13rem); color:#bdc4be; padding:1.25rem 0 0; border-top:1px solid rgba(255,255,255,.15); }
.page-home .pov-story .pov-lead { grid-column:auto; font-size:clamp(1.25rem,1.65vw,1.7rem); color:#fff; }
.page-home .pov-story .pov-conclusion { grid-column:auto; color:var(--home-gold); font-size:clamp(1.2rem,1.5vw,1.55rem); }
.page-home .pov-brand-motif { position:absolute; width:min(30vw,420px); right:-7%; top:5%; opacity:.07; transform:rotate(14deg); }

/* Product environments: stronger differentiation and honest framing. */
.page-home .home-work-section { background: rgba(250,248,241,.92); }
.page-home .work-context-badge { color:var(--work-accent,var(--home-green)); margin-left:auto; }
.page-home .work-index button[aria-selected="true"] { box-shadow: inset 0 -4px 0 var(--work-accent,var(--home-green)); }
.page-home .work-panel { --work-accent: var(--home-green); }
.page-home .product-environment { border:1px solid color-mix(in srgb,var(--work-accent) 35%,#d0d0ca); box-shadow: 0 30px 85px rgba(18,28,20,.11); }
.page-home .product-topbar,
.page-home .portal-header,
.page-home .health-rail,
.page-home .gov-case { border-color:color-mix(in srgb,var(--work-accent) 28%,#d9d9d4); }
.page-home .product-topbar::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,var(--work-accent),transparent 68%); }
.page-home .product-topbar { position:relative; }
.page-home .operation-cards > div:nth-child(1),
.page-home .portal-balance,
.page-home .health-note,
.page-home .gov-citizen { background:color-mix(in srgb,var(--work-accent) 9%,#fff); }
.page-home .operation-cards b,
.page-home .portal-actions span:hover,
.page-home .health-timeline i,
.page-home .gov-action { color:var(--work-accent); }
.page-home .gov-action { background:var(--work-accent); color:#fff; }
.page-home .work-panel-copy h3 { max-width:900px; }

/* Services: six genuinely different visual states, larger labels. */
.page-home .home-services-section { background: rgba(246,239,222,.9); }
.page-home .service-lifecycle { font-size:.72rem; }
.page-home .service-lifecycle b { background:var(--home-orange); box-shadow:0 0 0 5px rgba(223,119,48,.12); }
.page-home .service-tabs button[aria-selected="true"] { color:var(--service-accent,var(--home-green)); border-left-color:var(--service-accent,var(--home-green)); }
.page-home .service-panel { --service-accent:var(--home-green); }
.page-home .service-copy h3 { font-size:clamp(2.65rem,4.15vw,5rem); line-height:.98; max-width:880px; }
.page-home .service-copy a { color:var(--service-accent); }
.page-home .service-visual { background:
  linear-gradient(rgba(16,19,17,.055) 1px,transparent 1px),
  linear-gradient(90deg,rgba(16,19,17,.055) 1px,transparent 1px),
  color-mix(in srgb,var(--service-accent) 4%,#f7f4ec);
  background-size:48px 48px;
}
.page-home .service-paths path,
.page-home .research-visual path,
.page-home .design-visual svg path,
.page-home .enterprise-visual svg path { stroke:var(--service-accent); }
.page-home .service-nodes .accent, .page-home .service-visual svg circle{ border-color:var(--service-accent); }
.page-home .service-nodes .accent { fill:var(--service-accent); stroke:var(--service-accent); }

.page-home .research-visual svg circle { fill:color-mix(in srgb,var(--service-accent) 12%,#fff); stroke:var(--service-accent); }


.page-home .role { background:#fff; border-color:color-mix(in srgb,var(--service-accent) 35%,#b8b8b2); }
.page-home .service-panel.is-active .service-visual { animation:serviceStateEnter .65s var(--home-ease) both; }
@keyframes serviceStateEnter { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0); } }

/* Approach: animated gradient path, no tiny mobile SVG labels. */
.page-home .home-approach-section { background:rgba(235,243,234,.91); }












/* Why Luminor: connected model remains clear on mobile and gains brand identity. */
.page-home .home-why-section { background:
  radial-gradient(circle at 50% 50%,rgba(0,139,65,.16),transparent 34%),
  #121713; }








.page-home .why-copy { display:block; color:#aeb7b0; line-height:1.55; margin-top:.65rem; font-size:.88rem; }




/* Insights: article-specific editorial color, no unfinished metadata. */

.page-home .insight-art { overflow:hidden; }
.page-home .insight-art::after { content:""; position:absolute; inset:0; background:url("assets/illustrations/noise.svg"); opacity:.08; mix-blend-mode:multiply; pointer-events:none; }




.page-home .insight-art-research { background:color-mix(in srgb,var(--home-gold) 25%,#f6f2e8); }
.page-home .insight-art-research i { background:var(--home-orange); }
.page-home .insight-art-research i:nth-child(2) { background:var(--home-gold); }
.page-home .insight-art-research i:nth-child(3) { background:var(--home-green); }
.page-home .insight-art-adoption { background:color-mix(in srgb,var(--home-green) 12%,#f5f1e8); }
.page-home .insight-art-adoption path { stroke:var(--home-green); stroke-width:2; }
.page-home .insight-art-adoption circle:nth-of-type(2) { fill:var(--home-gold); }


/* Final CTA and quieter footer conclusion. */
.page-home .home-final-cta {
  color:#fff;
  background:
    radial-gradient(circle at 78% 28%,rgba(241,181,71,.26),transparent 28%),
    radial-gradient(circle at 18% 80%,rgba(223,119,48,.2),transparent 30%),
    linear-gradient(135deg,#006a36,#008B41 56%,#006b36);
}
.page-home .final-cta-system path { stroke:rgba(255,255,255,.42); }
.page-home .final-cta-system circle:nth-of-type(1) { fill:var(--home-gold); }
.page-home .final-cta-system circle:nth-of-type(2) { fill:var(--home-orange); }
.page-home .final-cta-system circle:nth-of-type(3) { fill:#fff; }
.page-home .final-cta-mark { position:absolute; width:min(27vw,390px); right:2%; top:7%; opacity:.18; filter:saturate(.8) brightness(1.22); transform:rotate(7deg); }
.page-home .final-cta-content { position:relative; }
.page-home .final-cta-content > *:not(.final-cta-mark) { position:relative; z-index:1; }
.page-home .home-footer { background:#f4efe3; color:var(--home-ink); padding-top:clamp(3.5rem,6vw,6rem); }
.page-home .footer-system-mark { width:var(--home-container); margin:0 auto clamp(3rem,5vw,5rem); padding:0 0 2rem; border-bottom:1px solid rgba(16,19,17,.16); }
.page-home .footer-system-mark img { width:clamp(180px,19vw,260px); height:auto; }
.page-home .footer-lead h2 { font-size:clamp(2rem,3.2vw,3.75rem); max-width:850px; }
.page-home .footer-links a,
.page-home .footer-placeholder,
.page-home .footer-bottom { color:#4f5750; }
.page-home .footer-placeholder { display:block; }
.page-home .footer-bottom { border-color:rgba(16,19,17,.16); }

/* Never hide meaningful headings while waiting for JavaScript. */
.js .page-home [data-home-section] .home-section-head > *,
.js .page-home [data-home-section] .services-intro > *,
.js .page-home [data-home-section] .approach-head > *,
.js .page-home [data-home-section] .why-intro > *,
.js .page-home [data-home-section] .insights-head > * { opacity:1; transform:none; }

/* Tablet */
@media (max-width: 1100px) {
  .page-home .home-hero-grid { grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr); gap:2rem; }
  .page-home .hero-system { min-height:570px; height:650px; }
  .page-home .pov-grid { grid-template-columns:1fr 1.1fr; }
  .page-home .pov-story { grid-template-columns:1fr 1fr; }
  .page-home .pov-story p { grid-column:auto; }
}

/* Tablet and mobile: deliberately recomposed rather than scaled. */
@media (max-width: 960px) {
  .page-home .site-header { height:70px; }
  .page-home .header-inner { height:70px; }
  .page-home .brand { width:150px; }
  .page-home .home-hero { padding-top:calc(70px + 1.5rem); }
  .page-home .home-hero-grid { grid-template-columns:1fr; grid-template-rows:auto auto auto; align-items:start; }
  .page-home .hero-copy-primary { grid-column:1; grid-row:1; padding:1rem 0 0; }
  .page-home .hero-system { grid-column:1; grid-row:2; height:clamp(500px,72vw,640px); min-height:500px; }
  .page-home .hero-support { grid-column:1; grid-row:3; padding:0 0 2rem; }
  .page-home .home-hero h1 { max-width:880px; }
  .page-home .hero-intro-grid { margin-top:2rem; }
  .page-home .pov-grid { grid-template-columns:1fr; }
  .page-home .pov-sticky { position:relative; grid-column:1; grid-row:1; }
  .page-home .pov-spectrum { grid-column:1; grid-row:2; }
  .page-home .pov-console { grid-column:1; grid-row:3; }
  .page-home .pov-story { grid-column:1; grid-row:4; grid-template-columns:1fr 1fr; }
  .page-home .pov-brand-motif { width:45vw; }
  .page-home .service-copy h3 { font-size:clamp(2.8rem,6vw,4.5rem); }
}

@media (max-width: 680px) {
  .page-home {
    --home-gutter:1rem;
    --home-section-y:5.5rem;
    --home-display-xl:clamp(3.25rem,14vw,4.75rem);
    --home-display-lg:clamp(3rem,12.7vw,4.25rem);
    --home-display-md:clamp(2.65rem,11.4vw,3.8rem);
  }
  .page-home .home-atmosphere-grid { background-size:44px 44px; opacity:.17; }
  .page-home .home-section::after { display:none; }
  .page-home .brand { width:140px; }
  .page-home .mobile-menu-brand { width:145px; }
  .page-home .home-hero { min-height:0; padding-inline:var(--home-gutter); }
  .page-home .home-hero-grid { gap:1.5rem; }
  .page-home .home-hero h1 { font-size:var(--home-display-xl); line-height:.92; margin-top:1.55rem; }
  .page-home .hero-line:first-child { max-width:95%; }
  .page-home .hero-line:nth-child(2) { max-width:82%; }
  .page-home .hero-emphasis { max-width:100%; }
  .page-home .hero-system { height:465px; min-height:465px; margin-inline:-.2rem; }
  .page-home .hero-system-topline { font-size:.64rem; }
  .page-home .hero-system-axis { font-size:.58rem; }
  .page-home .hero-brand-burst { width:55%; left:24%; top:11%; }
  .page-home .hero-signal { width:122px; min-height:68px; padding:.55rem; }
  .page-home .hero-signal span,
  .page-home .hero-signal i { font-size:.58rem; }
  .page-home .hero-signal b { font-size:.68rem; margin:.35rem 0; }
  .page-home .hero-signal-a { top:11%; left:3%; }
  .page-home .hero-signal-b { top:27%; left:3%; }
  .page-home .hero-signal-c { bottom:24%; left:3%; }
  .page-home .hero-signal-d { bottom:8%; left:3%; }
  .page-home .hero-decision-interface { width:58%; right:2%; top:26%; min-height:240px; }
  .page-home .decision-layout { min-height:203px; }
  .page-home .decision-content h2 { font-size:1.15rem; }
  .page-home .decision-content p { font-size:.65rem; }
  .page-home .decision-status { font-size:.65rem; }
  .page-home .hero-outcome-chip { width:47%; bottom:5%; right:2%; padding:.65rem; }
  .page-home .hero-outcome-chip b { font-size:.7rem; }
  .page-home .hero-support { padding-top:.5rem; }
  .page-home .hero-intro-grid { margin-top:.5rem; padding-top:1.1rem; }
  .page-home .hero-sector-line { font-size:.68rem; }

  .page-home .sector-tabs button { font-size:.8rem; }
  .page-home .sector-stage { min-height:650px; }
  .page-home .sector-panel { min-height:600px; }
  .page-home .sector-diagram { min-height:300px; }
  .page-home .sector-node-labels text,
  .page-home .sector-small-data text { font-size:14px; }

  .page-home .pov-grid { padding-block:5rem; gap:2rem; }
  .page-home .pov-sticky h2 { font-size:var(--home-display-lg); }
  .page-home .pov-spectrum { font-size:.64rem; }
  .page-home .pov-console { min-height:480px; }
  .page-home .pov-story { grid-template-columns:1fr; gap:0; }
  .page-home .pov-story p { padding-block:1.25rem; margin:0; }
  .page-home .pov-brand-motif { display:none; }

  .page-home .work-context-badge { display:none; }
  .page-home .work-stage,
  .page-home .work-panel { min-height:690px; }
  .page-home .product-environment { height:430px; overflow:hidden; }
  .page-home .operation-cards { grid-template-columns:repeat(3,minmax(105px,1fr)); overflow-x:auto; padding-bottom:.4rem; }
  .page-home .operation-cards > div { display:block; min-width:105px; }
  .page-home .operation-table { display:none; }
  .page-home .product-main { min-width:0; }
  .page-home .portal-actions { grid-template-columns:repeat(3,1fr); font-size:.66rem; }

  .page-home .service-lifecycle { display:none; }
  .page-home .service-panels,
  .page-home .service-panel { min-height:700px; }
  .page-home .service-copy h3 { font-size:clamp(2.5rem,10.5vw,3.45rem); }
  .page-home .service-visual { min-height:330px; }
  .page-home .service-annotations text,
  .page-home .research-visual text { font-size:16px; }
  .page-home .role{ font-size:.62rem; }

  
  
  
  
  
  
  

  
  
  
  
  .page-home .why-copy { font-size:.94rem; }

  
  
  .page-home .home-final-cta { min-height:680px; }
  .page-home .final-cta-mark { width:58vw; top:8%; right:-10%; opacity:.14; }
  .page-home .final-cta-content { padding-top:2rem; }
  .page-home .footer-system-mark img { width:190px; }
}

@media (prefers-reduced-motion: reduce) {
  .js .page-home .hero-line > span,
  .page-home .hero-emphasis > span::after,
  .page-home .service-panel.is-active .service-visual,
  .js .page-home .sector-panel.is-active .sector-diagram circle { animation:none; transform:none; opacity:1; clip-path:none; }
  
  .page-home .home-atmosphere { transition:none; }
}

.page-home .work-index button:nth-child(1) { --work-accent:#008B41; }
.page-home .work-index button:nth-child(2) { --work-accent:#F1B547; }
.page-home .work-index button:nth-child(3) { --work-accent:#DF7730; }
.page-home .work-index button:nth-child(4) { --work-accent:#008B41; }
.page-home .service-tabs button:nth-child(1) { --service-accent:#F1B547; }
.page-home .service-tabs button:nth-child(2) { --service-accent:#DF7730; }
.page-home .service-tabs button:nth-child(3) { --service-accent:#008B41; }
.page-home .service-tabs button:nth-child(4) { --service-accent:#008B41; }
.page-home .service-tabs button:nth-child(5) { --service-accent:#F1B547; }
.page-home .service-tabs button:nth-child(6) { --service-accent:#DF7730; }
/* Final conflict-resolution overrides for the brand-led homepage layer. */
.page-home .pov-console { position: relative; top: auto; margin-top: 0; }
.page-home .pov-story { padding-top: 0; }
.page-home .pov-story p { margin: 0; }
.page-home .service-visual {
  color: #fff;
  background:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    color-mix(in srgb,var(--service-accent) 9%,#111713);
  background-size:48px 48px;
}
.page-home .footer-lead .eyebrow,
.page-home .footer-label { color:#697069; }
.page-home .footer-links a:hover { color:var(--home-green-deep); }
.page-home .footer-lead .button-light { background:var(--home-ink); color:#fff; border-color:var(--home-ink); }
.page-home .footer-lead .button-light:hover,
.page-home .footer-lead .button-light:focus-visible { background:var(--home-green); border-color:var(--home-green); }
@media (max-width:680px) {
  .page-home .pov-console { margin-top:0; }
  .page-home .pov-story { padding-top:0; }
}

/* Work page — homepage-aligned editorial system */
.page-work {
  --work-gutter:clamp(1.25rem,4vw,4.75rem);
  --work-container:min(1520px,calc(100vw - (var(--work-gutter) * 2)));
  --work-green:#102219;
  --work-green-soft:#dfe8dc;
  --work-paper:#f3f0e7;
  --work-cream:#faf7ef;
  background:var(--work-paper);
}
.page-work .work-header { background:rgba(243,240,231,.94); border-bottom:1px solid rgba(17,19,18,.14); backdrop-filter:blur(18px); }
.page-work .header-inner { width:var(--work-container); }
.page-work .brand { width:clamp(145px,15vw,210px); }
.page-work .brand-logo { width:100%; height:auto; }
.page-work .header-cta {
  min-height:46px;
  padding:.75rem 1rem;
  display:flex;
  align-items:center;
  gap:1rem;
  border:0;
  background:#111311;
  color:#fff;
}
.page-work .header-cta i { width:19px; height:19px; border:1px solid currentColor; border-radius:50%; position:relative; }
.page-work .header-cta i::after { content:"→"; position:absolute; inset:-5px 0 0; display:grid; place-items:center; font-size:.72rem; }
.page-work .mobile-menu-brand { width:180px; height:auto; margin-bottom:2rem; filter:brightness(0) invert(1); }

.page-work .page-hero { background:var(--work-paper); }
.page-work .page-hero .section-shell {
  width:var(--work-container);
  min-height:auto;
  padding:calc(var(--header-height) + clamp(5rem,9vw,10rem)) 0 clamp(6rem,10vw,11rem);
  display:block;
  text-align:center;
}
.page-work .page-hero .eyebrow { width:max-content; margin:0 auto 2.5rem; }
.page-work .page-hero h1 {
  max-width:12ch;
  margin:0 auto 2rem;
  font-size:clamp(4.5rem,7.8vw,9.5rem);
  line-height:.88;
  letter-spacing:-.065em;
}
.page-work .page-hero > .section-shell > p:not(.eyebrow) {
  max-width:820px;
  margin:0 auto .85rem;
  color:#383f3a;
  font-size:clamp(1rem,1.2vw,1.2rem);
  line-height:1.6;
}
.page-work .work-visual {
  width:100%;
  min-height:420px;
  margin-top:clamp(4rem,7vw,7rem);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:1fr;
  gap:1px;
  border:1px solid rgba(17,19,18,.2);
  background:rgba(17,19,18,.2);
}
.page-work .work-preview { min-height:420px; padding:1.3rem; text-align:left; }
.page-work .work-preview.enterprise { grid-column:auto; grid-row:auto; background:#dfe8dc; }
.page-work .work-preview.portal { background:#f0dfc0; }
.page-work .work-preview.health { background:var(--work-green); }
.page-work .work-preview.civic { background:#e2e1da; }
.page-work .visual-kicker { font-size:.6rem; }
.page-work .ui-shell { left:10%; right:-12%; bottom:7%; height:62%; }
.page-work .portal-phone { width:52%; right:11%; }

.page-work .section-introduction { background:#faf8f2; }
.page-work .section-introduction .section-shell {
  width:var(--work-container);
  padding:clamp(6rem,10vw,11rem) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:0;
}
.page-work .section-introduction .eyebrow { grid-column:1 / -1; width:max-content; margin:0 auto 2.5rem; }
.page-work .section-introduction h2 {
  grid-column:2 / 12;
  max-width:12ch;
  margin:0 auto clamp(4rem,7vw,7rem);
  text-align:center;
  font-size:clamp(4rem,6.5vw,8rem);
  line-height:.9;
}
.page-work .section-introduction .section-shell > p:not(.eyebrow) {
  grid-column:span 6;
  max-width:none;
  min-height:180px;
  margin:0;
  padding:clamp(2rem,3.5vw,4rem);
  border-top:1px solid rgba(17,19,18,.18);
  color:#303632;
  font-size:clamp(1rem,1.18vw,1.18rem);
  line-height:1.62;
}
.page-work .section-introduction .section-shell > p:nth-of-type(even) { border-right:1px solid rgba(17,19,18,.18); }
.page-work .section-introduction .section-shell > p:nth-last-of-type(-n+2) { border-bottom:1px solid rgba(17,19,18,.18); }

.page-work .section-how-we-document-projects { background:var(--work-green); color:#fff; }
.page-work .section-how-we-document-projects .section-shell {
  width:var(--work-container);
  padding:clamp(6rem,10vw,11rem) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:0 clamp(2rem,4vw,5rem);
}
.page-work .section-how-we-document-projects h2 {
  grid-column:1 / 9;
  margin-bottom:clamp(4rem,7vw,7rem);
  color:#fff;
  font-size:clamp(4rem,6.5vw,8rem);
  line-height:.9;
}
.page-work .section-how-we-document-projects > .section-shell > p:first-of-type {
  grid-column:9 / -1;
  margin-top:.5rem;
  color:rgba(255,255,255,.68);
  font-size:1.08rem;
}
.page-work .section-how-we-document-projects h3 {
  grid-column:1 / 5;
  margin:0;
  padding:1.6rem 0;
  border-top:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:clamp(1.45rem,2vw,2.2rem);
}
.page-work .section-how-we-document-projects > .section-shell > h3 + p {
  grid-column:5 / -1;
  margin:0;
  padding:1.6rem 0;
  border-top:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.7);
  font-size:1rem;
}
.page-work .section-how-we-document-projects h3:last-of-type,
.page-work .section-how-we-document-projects > .section-shell > h3:last-of-type + p { border-bottom:1px solid rgba(255,255,255,.18); }

.page-work .project-section {
  min-height:1080px;
  padding:0 var(--work-gutter);
  overflow:hidden;
  background:#f3f0e7;
  border-top:1px solid rgba(17,19,18,.2);
}
.page-work .project-section:nth-of-type(even),
.page-work .project-section:nth-of-type(odd) { background:#f3f0e7; }
.page-work .project-section .section-shell {
  width:var(--work-container);
  min-height:1080px;
  margin:0 auto;
  padding:clamp(5rem,8vw,8rem) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-flow:row;
  align-content:start;
  gap:0 clamp(1rem,2vw,2rem);
}
.page-work .project-section .section-shell::after { display:none; }
.page-work .project-section .section-shell > * {
  grid-column:1 / 6;
  margin-left:0;
  margin-right:0;
}
.page-work .project-section .case-meta {
  grid-column:1 / -1;
  margin:0 0 clamp(4rem,7vw,7rem) !important;
  padding-top:1rem;
  color:#58605a;
}
.page-work .project-section .section-name {
  margin:0 0 1.2rem;
  color:#59615b;
  font-size:.68rem;
}
.page-work .project-section .section-statement {
  max-width:8ch;
  margin:0 0 2rem;
  color:#111311;
  font-size:clamp(3.5rem,5.3vw,6.7rem);
  line-height:.9;
  letter-spacing:-.06em;
}
.page-work .project-section .section-shell > p {
  max-width:38rem;
  color:#3d4440;
  font-size:clamp(.96rem,1.02vw,1.06rem);
  line-height:1.62;
}
.page-work .project-section .section-shell > p:last-of-type {
  margin-top:1.2rem;
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#6b736d;
}
.page-work .project-section .section-shell > ul {
  max-width:none;
  margin:1rem 0 2rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid rgba(17,19,18,.17);
}
.page-work .project-section .section-shell > ul li {
  min-height:48px;
  padding:.72rem .5rem .72rem 1.15rem;
  border-bottom:1px solid rgba(17,19,18,.14);
  color:#4a514c;
  font-size:.76rem;
  line-height:1.35;
}
.page-work .project-section .section-shell > ul li:nth-child(odd) { border-right:1px solid rgba(17,19,18,.14); }
.page-work .project-section .section-shell > ul li::before { top:1.15rem; width:5px; height:5px; background:#111311; }
.page-work .project-section .button {
  align-self:auto;
  justify-self:start;
  margin:1rem 0 0;
  background:#111311;
  color:#fff;
}
.page-work .project-section::before,
.page-work .project-section::after { content:none; }

/* Case panels — plate-grammar previews replacing the old gradient collages.
   Sticky beside the copy so the model stays present while the case scrolls. */
.page-work .project-section { --case-accent:var(--services-gold,#f1b547); }
.page-work .section-customer-portal { --case-accent:#00934d; }
.page-work .project-section .section-shell > .work-case-panel {
  grid-column:7 / -1;
  grid-row:2 / span 7;
  align-self:start;
  position:sticky;
  top:calc(var(--header-height) + 2rem);
  display:grid;
  grid-template-rows:auto 1fr;
  min-height:620px;
  border:1px solid rgba(17,19,18,.2);
  box-shadow:0 28px 70px rgba(16,34,25,.14);
  background:#102219;
  color:rgba(255,255,255,.5);
  overflow:hidden;
}
.page-work .section-customer-portal .section-shell > .work-case-panel { background:#eadfc9; color:rgba(17,19,18,.52); }
.page-work .section-government-service .section-shell > .work-case-panel { background:#dfe8dc; color:rgba(17,19,18,.52); }
.page-work .work-case-panel-head {
  min-height:54px;
  padding:1rem 1.2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  border-bottom:1px solid rgba(255,255,255,.16);
  font-family:var(--font-mono);
  font-size:.58rem;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.page-work .section-customer-portal .work-case-panel-head,
.page-work .section-government-service .work-case-panel-head { border-bottom-color:rgba(17,19,18,.16); }
.page-work .work-case-panel-head strong { color:var(--case-accent); font-weight:500; }
.page-work .section-customer-portal .work-case-panel-head strong,
.page-work .section-government-service .work-case-panel-head strong { color:#4d544f; }
.page-work .work-case-panel svg { width:100%; height:100%; min-height:540px; display:block; }
.page-work .work-case-panel svg path,
.page-work .work-case-panel svg rect,
.page-work .work-case-panel svg circle,
.page-work .work-case-panel svg ellipse { vector-effect:non-scaling-stroke; }
.page-work .work-case-panel svg text { fill:currentColor; font-family:var(--font-mono); font-size:9px; letter-spacing:.08em; }
.page-work .wc-grid path { fill:none; stroke:currentColor; stroke-width:1; opacity:.14; }
.page-work .wc-grid .wc-register { opacity:.5; }
.page-work .wc-coords text { font-size:7px; opacity:.55; }
.page-work .wc-coords .wc-plate-id { fill:var(--case-accent); opacity:.8; }
.page-work .wc-box { fill:rgba(7,21,15,.32); stroke:currentColor; stroke-width:1; opacity:.85; }
.page-work .section-customer-portal .wc-box,
.page-work .section-government-service .wc-box { fill:rgba(255,255,255,.5); }
.page-work .wc-line { fill:none; stroke:currentColor; stroke-width:1; opacity:.55; }
.page-work .wc-track,
.page-work .wc-spoke { fill:none; stroke:currentColor; stroke-width:1.2; opacity:.55; }
.page-work .wc-spoke { stroke-dasharray:2 5; }
.page-work .wc-flow,
.page-work .wc-flowarc { fill:none; stroke:var(--case-accent); stroke-width:2; }
.page-work .wc-node { fill:none; stroke:currentColor; stroke-width:1.3; }
.page-work .wc-rings circle { fill:none; stroke:var(--case-accent); stroke-width:1; stroke-dasharray:3 5; opacity:.7; transform-box:fill-box; transform-origin:center; }
.page-work .wc-active { fill:var(--case-accent); stroke:var(--case-accent); }
.page-work .wc-check { fill:none; stroke:#102219; stroke-width:1.6; }
.page-work .section-customer-portal .wc-check,
.page-work .section-government-service .wc-check { stroke:#f5f1e7; }
.page-work .wc-gate { fill:none; stroke:var(--case-accent); stroke-width:1.3; }
.page-work .wc-glyph { fill:none; stroke:#102219; stroke-width:1.4; }
.page-work .wc-port,
.page-work .wc-mark { fill:var(--case-accent); }
.page-work .wc-action { fill:var(--case-accent); }
.page-work .wc-chip { fill:none; stroke:var(--case-accent); stroke-width:1.2; }
.page-work .wc-label { opacity:.85; }
.page-work .wc-value { fill:var(--case-accent); }
.page-work .wc-micro { font-size:7.5px; opacity:.6; }
.page-work .wc-audit { fill:none; stroke:currentColor; stroke-width:1; opacity:.3; }
.page-work .wc-traveller { fill:var(--case-accent); stroke:#102219; stroke-width:1; }
.page-work .wc-doc { fill:var(--case-accent); stroke:#102219; stroke-width:1; }
.page-work .section-customer-portal .wc-traveller,
.page-work .section-government-service .wc-traveller,
.page-work .section-government-service .wc-doc { stroke:#f5f1e7; }

/* Work page interactions: linked previews, numbered documentation rows,
   cascading case lists and staged panel reveals. */
.page-work .page-hero h1,
.page-work .section-introduction h2,
.page-work .section-how-we-document-projects h2,
.page-work .project-section .section-statement,
.page-work .section-closing-cta h2 { text-wrap:balance; }
.page-work .project-section,
.page-work .section-introduction,
.page-work .section-how-we-document-projects { scroll-margin-top:calc(var(--header-height) + 1rem); }
.page-work a.work-preview {
  position:relative;
  display:block;
  color:inherit;
  text-decoration:none;
  transition:transform .45s var(--home-ease,ease),box-shadow .45s ease;
}
.page-work a.work-preview::after {
  content:"↗";
  position:absolute;
  top:1.1rem;
  right:1.2rem;
  font-size:.9rem;
  opacity:0;
  transform:translate(-4px,4px);
  transition:opacity .3s ease,transform .3s ease;
}
.page-work .work-preview.health::after { color:#f5f1e7; }
.page-work a.work-preview:hover,
.page-work a.work-preview:focus-visible {
  transform:translateY(-5px);
  box-shadow:0 22px 55px rgba(16,34,25,.16);
  z-index:1;
}
.page-work a.work-preview:hover::after,
.page-work a.work-preview:focus-visible::after { opacity:1; transform:none; }
.page-work a.work-preview:focus-visible { outline:2px solid #111311; outline-offset:-6px; }
.page-work .section-how-we-document-projects .section-shell { counter-reset:docrow; }
.page-work .section-how-we-document-projects h3::before {
  counter-increment:docrow;
  content:"0" counter(docrow);
  display:block;
  margin-bottom:.7rem;
  color:#f1b547;
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.09em;
}
@media (prefers-reduced-motion:no-preference) {
  .js .page-work .page-hero.is-visible .work-preview { opacity:0; transform:translateY(16px); animation:wcRise .55s var(--ease) both; }
  .js .page-work .page-hero.is-visible .work-preview:nth-child(1) { animation-delay:.25s; }
  .js .page-work .page-hero.is-visible .work-preview:nth-child(2) { animation-delay:.35s; }
  .js .page-work .page-hero.is-visible .work-preview:nth-child(3) { animation-delay:.45s; }
  .js .page-work .page-hero.is-visible .work-preview:nth-child(4) { animation-delay:.55s; }
  .js .page-work .project-section.is-visible .section-shell > ul li { opacity:0; animation:wcRise .4s var(--ease) both; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(1) { animation-delay:.1s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(2) { animation-delay:.16s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(3) { animation-delay:.22s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(4) { animation-delay:.28s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(5) { animation-delay:.34s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(6) { animation-delay:.4s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(7) { animation-delay:.46s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(8) { animation-delay:.52s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(9) { animation-delay:.58s; }
  .js .page-work .project-section.is-visible .section-shell > ul li:nth-child(10) { animation-delay:.64s; }
  .js .page-work .project-section:not(.is-visible) .work-case-panel { opacity:0; transform:translateY(18px); }
  .js .page-work .project-section.is-visible .work-case-panel { animation:wcRise .6s .1s var(--ease) both; }
  .js .page-work .project-section.is-visible .wc-flow,
  .js .page-work .project-section.is-visible .wc-flowarc { stroke-dasharray:800; stroke-dashoffset:800; animation:wcDraw .9s .55s ease-out forwards; }
  .js .page-work .project-section.is-visible .wc-s1 { animation:wcRise .45s .3s ease-out both; }
  .js .page-work .project-section.is-visible .wc-s2 { animation:wcRise .45s .45s ease-out both; }
  .js .page-work .project-section.is-visible .wc-s3 { animation:wcRise .45s .65s ease-out both; }
  .js .page-work .project-section.is-visible .wc-s4 { animation:wcRise .45s .85s ease-out both; }
  .page-work .wc-rings circle { animation:fsRingRotate 18s linear infinite; }
}
@keyframes wcRise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes wcDraw { to { stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce) {
  .page-work .wc-traveller,
  .page-work .wc-doc { display:none; }
  .page-work .work-case-panel *,
  .page-work a.work-preview,
  .page-work a.work-preview::after { animation:none !important; transition:none !important; }
}

.page-work .section-closing-cta {
  padding:0 var(--work-gutter);
  background:#102219;
  color:#fff;
}
.page-work .section-closing-cta .section-shell {
  width:var(--work-container);
  min-height:720px;
  padding:clamp(6rem,10vw,10rem) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  align-content:center;
  gap:2rem;
}
.page-work .section-closing-cta .eyebrow { grid-column:1 / -1; color:rgba(255,255,255,.64); }
.page-work .section-closing-cta h2 {
  grid-column:1 / 9;
  margin:2rem 0 0;
  color:#fff;
  font-size:clamp(4rem,7vw,8.5rem);
  line-height:.88;
}
.page-work .section-closing-cta p:not(.eyebrow) { grid-column:9 / -1; color:rgba(255,255,255,.72); align-self:end; }
.page-work .section-closing-cta .button { grid-column:9 / -1; justify-self:start; background:#f5f1e7; color:#111311; min-height:64px; padding-inline:1.4rem; }

.page-work .work-footer {
  position:relative;
  padding:clamp(5rem,8vw,8rem) var(--work-gutter) 2rem;
  background:#f0eadc;
  color:#111311;
}
.page-work .work-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-work .work-footer-brand img { width:100%; height:auto; }
.page-work .work-footer .footer-grid,
.page-work .work-footer .footer-bottom { width:var(--work-container); }
.page-work .work-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-work .work-footer .footer-lead { grid-column:1 / 8; }
.page-work .work-footer .footer-lead h2 { max-width:800px; color:#111311; font-size:clamp(2.3rem,3.7vw,4.5rem); }
.page-work .work-footer .footer-lead .eyebrow,
.page-work .work-footer .footer-links a,
.page-work .work-footer .footer-links span,
.page-work .work-footer .footer-bottom { color:#3d443f; }
.page-work .work-footer .footer-lead .button-light { background:#111311; color:#fff; }
.page-work .work-footer .footer-links { grid-column:8 / -1; }
.page-work .work-footer .footer-links a:hover { color:#006c3a; }
.page-work .work-footer .footer-bottom { border-color:rgba(17,19,18,.16); }

@media (max-width:1050px) {
  .page-work .work-visual { grid-template-columns:1fr 1fr; }
  .page-work .work-preview { min-height:320px; }
  .page-work .project-section { min-height:0; }
  .page-work .project-section .section-shell { min-height:0; }
  .page-work .project-section .section-shell > * { grid-column:1 / -1; }
  .page-work .project-section .case-meta { grid-column:1 / -1; }
  .page-work .project-section .section-shell > .work-case-panel { grid-column:1 / -1; grid-row:auto; position:static; min-height:560px; margin-top:2.5rem; }
  .page-work .work-footer .footer-lead { grid-column:1 / 8; }
  .page-work .work-footer .footer-links { grid-column:8 / -1; }
}

@media (max-width:680px) {
  .page-work .page-hero .section-shell { padding-top:calc(var(--header-height) + 4rem); }
  .page-work .page-hero h1 { font-size:clamp(3.6rem,15vw,5.2rem); }
  .page-work .work-visual { grid-template-columns:1fr; }
  .page-work .work-preview { min-height:280px; }
  .page-work .section-introduction h2,
  .page-work .section-how-we-document-projects h2 { grid-column:1 / -1; font-size:clamp(3.5rem,14vw,5rem); }
  .page-work .section-introduction .section-shell > p:not(.eyebrow) { grid-column:1 / -1; min-height:0; border-right:0; }
  .page-work .section-how-we-document-projects > .section-shell > p:first-of-type,
  .page-work .section-how-we-document-projects h3,
  .page-work .section-how-we-document-projects > .section-shell > h3 + p { grid-column:1 / -1; }
  .page-work .section-how-we-document-projects h3 { padding-bottom:.6rem; }
  .page-work .section-how-we-document-projects > .section-shell > h3 + p { padding-top:0; border-top:0; }
  .page-work .project-section { min-height:0; padding:0 var(--work-gutter); }
  .page-work .project-section .section-shell { min-height:0; padding-top:4rem; }
  .page-work .project-section .section-shell > * { grid-column:1 / -1; }
  .page-work .project-section .case-meta { margin-bottom:3.5rem !important; }
  .page-work .project-section .section-statement { font-size:clamp(3.4rem,15vw,5rem); }
  .page-work .project-section .section-shell > ul { grid-template-columns:1fr; }
  .page-work .project-section .section-shell > ul li:nth-child(odd) { border-right:0; }
  .page-work .project-section .section-shell > .work-case-panel { min-height:440px; margin-top:2rem; }
  .page-work .work-case-panel svg { min-height:360px; }
  .page-work .wc-micro,.page-work .wc-coords text { display:none; }
  .page-work .section-closing-cta .section-shell { grid-template-columns:1fr; min-height:700px; }
  .page-work .section-closing-cta .eyebrow,
  .page-work .section-closing-cta h2,
  .page-work .section-closing-cta p:not(.eyebrow),
  .page-work .section-closing-cta .button { grid-column:1; }
  .page-work .section-closing-cta h2 { font-size:clamp(3.8rem,16vw,5.5rem); }
  .page-work .work-footer-brand { width:220px; }
  .page-work .work-footer .footer-grid { grid-template-columns:1fr; }
  .page-work .work-footer .footer-lead,
  .page-work .work-footer .footer-links { grid-column:1; }
  .page-work .work-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-work .work-footer .footer-links > div:last-child { grid-column:1 / -1; }
}
/* SVG sequence polish: final route only draws when the conclusion enters view. */
.js .page-home .final-cta-system path { stroke-dasharray:1; stroke-dashoffset:1; }
.js .page-home .home-final-cta.is-home-visible .final-cta-system path { animation:homePathDraw 1.8s .15s var(--home-ease) forwards; }
.page-home .brand-logo { transition:transform .45s var(--home-ease); }
.page-home .brand:hover .brand-logo,
.page-home .brand:focus-visible .brand-logo { transform:translateY(-1px) scale(1.015); }
@media (prefers-reduced-motion:reduce) {
  .js .page-home .final-cta-system path { stroke-dashoffset:0; animation:none; }
  .page-home .brand-logo { transition:none; }
}
/* Remove residual cobalt from homepage concept environments; use the logo palette. */
.page-home .portal-ui { background:linear-gradient(135deg,#f5dfaa,#f4ead3); }
.page-home .portal-mobile i { background:linear-gradient(135deg,var(--home-gold),var(--home-orange)); }
.page-home .health-ui { background:linear-gradient(135deg,#dcebdd,#eef3e9); }
.page-home .government-ui { background:linear-gradient(135deg,#e3eee2,#f2dfb1); }
.page-home .gov-steps .done { background:var(--home-gold); }
.page-home .gov-steps .active { background:var(--home-green); }
.page-home .enterprise-ui { background:#e8eee5; }

/* Services page — decision-led service chapters */
.page-services {
  --services-gutter:clamp(1.25rem,4vw,4.75rem);
  --services-container:min(1520px,calc(100vw - (var(--services-gutter) * 2)));
  --services-green:#102219;
  --services-paper:#f3f0e7;
  --services-cream:#faf8f2;
  --services-gold:#f1b547;
  --services-orange:#df7730;
  background:var(--services-paper);
}
.page-services .services-shell { width:var(--services-container); margin-inline:auto; }
.page-services .services-header { background:rgba(243,240,231,.94); border-bottom:1px solid rgba(17,19,18,.14); backdrop-filter:blur(18px); }
.page-services .header-inner { width:var(--services-container); }
.page-services .brand { width:clamp(145px,15vw,210px); }
.page-services .brand-logo { width:100%; height:auto; }
.page-services .header-cta { min-height:46px; padding:.75rem 1rem; display:flex; align-items:center; gap:1rem; border:0; background:#111311; color:#fff; }
.page-services .header-cta i { width:19px; height:19px; border:1px solid currentColor; border-radius:50%; position:relative; }
.page-services .header-cta i::after { content:"→"; position:absolute; inset:-5px 0 0; display:grid; place-items:center; font-size:.72rem; }
.page-services .mobile-menu-brand { width:180px; height:auto; margin-bottom:2rem; filter:brightness(0) invert(1); }

.page-services .services-page-hero { min-height:100svh; padding:0 var(--services-gutter); background:var(--services-paper); }
.page-services .services-hero-grid {
  min-height:100svh;
  padding:calc(var(--header-height) + clamp(5rem,9vw,10rem)) 0 clamp(4rem,7vw,7rem);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  align-content:center;
  gap:clamp(2rem,4vw,5rem) clamp(1rem,2vw,2rem);
}
.page-services .services-hero-copy { grid-column:1 / 9; }
.page-services .services-hero-copy h1 { max-width:10.5ch; margin:2.2rem 0 0; font-size:clamp(4.8rem,8.3vw,10rem); line-height:.86; letter-spacing:-.068em; }
.page-services .services-hero-intro { grid-column:9 / -1; align-self:end; padding-bottom:.4rem; }
.page-services .services-hero-intro p { color:#343a36; font-size:clamp(1rem,1.2vw,1.18rem); line-height:1.62; }
.page-services .services-hero-intro .button { margin-top:1.3rem; background:#111311; color:#fff; }
.page-services .services-hero-system {
  grid-column:1 / -1;
  margin-top:clamp(2rem,5vw,5rem);
  padding:1.4rem 0;
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto 1fr auto;
  align-items:center;
  gap:1rem;
  border-top:1px solid rgba(17,19,18,.18);
  border-bottom:1px solid rgba(17,19,18,.18);
}
.page-services .services-hero-system span { color:#111311; font-family:var(--font-mono); font-size:.67rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.page-services .services-hero-system i { height:1px; background:rgba(17,19,18,.24); }

.page-services .services-index-section { padding:clamp(6rem,10vw,11rem) var(--services-gutter); background:var(--services-cream); }
.page-services .services-index-heading { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1rem 2rem; margin-bottom:clamp(4rem,7vw,7rem); }
.page-services .services-index-heading .eyebrow { grid-column:1 / -1; }
.page-services .services-index-heading h2 { grid-column:1 / 9; margin:2rem 0 0; font-size:clamp(4rem,6.7vw,8rem); line-height:.89; }
.page-services .services-index-heading > p:last-child { grid-column:9 / -1; align-self:end; color:#434a45; }
.page-services .services-index-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(17,19,18,.2); border-left:1px solid rgba(17,19,18,.2); }
.page-services .services-index-grid a { min-height:185px; padding:1.3rem; display:grid; grid-template-columns:auto 1fr auto; grid-template-rows:auto 1fr; gap:1.5rem; border-right:1px solid rgba(17,19,18,.2); border-bottom:1px solid rgba(17,19,18,.2); color:#111311; text-decoration:none; transition:background .35s ease; }
.page-services .services-index-grid a:hover { background:#e6ecdf; }
.page-services .services-index-grid span,.page-services .services-index-grid em { font-family:var(--font-mono); font-size:.62rem; font-style:normal; letter-spacing:.08em; text-transform:uppercase; }
.page-services .services-index-grid em { justify-self:end; color:#676e69; }
.page-services .services-index-grid strong { grid-column:1 / -1; align-self:end; max-width:17ch; font-family:var(--font-display); font-size:clamp(1.45rem,2vw,2.2rem); font-weight:500; line-height:1.04; letter-spacing:-.035em; }

.page-services .service-detail { --detail-accent:var(--services-gold); padding:0 var(--services-gutter); background:var(--services-paper); color:#111311; overflow:hidden; }
.page-services .service-research,.page-services .service-transformation { background:var(--services-green); color:#fff; }
.page-services .service-research { --detail-accent:var(--services-orange); }
.page-services .service-design { --detail-accent:#00934d; background:#e4ebe1; }
.page-services .service-development { --detail-accent:#00934d; }
.page-services .service-systems { --detail-accent:var(--services-gold); background:#efe3c9; }
.page-services .service-transformation { --detail-accent:var(--services-gold); }
.page-services .service-detail-shell {
  min-height:1120px;
  padding:clamp(6rem,9vw,10rem) 0;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:auto auto auto;
  align-content:start;
  gap:clamp(3rem,5vw,6rem) clamp(1rem,2vw,2rem);
}
.page-services .service-detail-heading { grid-column:1 / 6; }
.page-services .service-detail-heading .eyebrow { margin-bottom:2rem; color:#59605b; }
.page-services .service-detail-heading h2 { max-width:8ch; margin:0; color:inherit; font-size:clamp(4.2rem,6.5vw,8rem); line-height:.88; letter-spacing:-.064em; }
.page-services .service-promise { max-width:22ch; margin:2.4rem 0 0; color:#303632; font-family:var(--font-display); font-size:clamp(1.7rem,2.4vw,2.8rem); line-height:1.08; letter-spacing:-.035em; }
.page-services .service-research .service-detail-heading .eyebrow,.page-services .service-transformation .service-detail-heading .eyebrow { color:rgba(255,255,255,.58); }
.page-services .service-research .service-promise,.page-services .service-transformation .service-promise { color:rgba(255,255,255,.82); }
.page-services .service-detail-visual { grid-column:6 / -1; min-height:650px; align-self:start; background:var(--services-green); border:1px solid rgba(17,19,18,.2); box-shadow:0 26px 70px rgba(16,34,25,.12); }
.page-services .service-research .service-detail-visual,.page-services .service-transformation .service-detail-visual { background:#f5f1e7; border-color:rgba(255,255,255,.22); }
.page-services .service-detail-visual svg { width:100%; height:100%; min-height:650px; display:block; color:rgba(255,255,255,.46); }
.page-services .service-research .service-detail-visual svg,.page-services .service-transformation .service-detail-visual svg { color:rgba(17,19,18,.5); }
.page-services .service-detail-visual text { fill:currentColor; font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; }
.page-services .service-detail-visual path,.page-services .service-detail-visual rect,.page-services .service-detail-visual circle { vector-effect:non-scaling-stroke; }
.page-services .sv-bezel path { fill:none; stroke:currentColor; stroke-width:1; opacity:.4; }
.page-services .sv-paths path { fill:none; stroke:currentColor; stroke-width:1.4; }
.page-services .sv-paths .sv-accent-path { stroke:var(--detail-accent); stroke-width:2; }
.page-services .sv-nodes circle { fill:var(--services-green); stroke:currentColor; stroke-width:1.5; }
.page-services .service-research .sv-nodes circle,.page-services .service-transformation .sv-nodes circle { fill:#f5f1e7; }
.page-services .sv-nodes .sv-active { fill:var(--detail-accent); stroke:var(--detail-accent); }
.page-services .sv-traveller { fill:var(--detail-accent); stroke:#fff; stroke-width:1.5; }
.page-services .service-research .sv-traveller,.page-services .service-transformation .sv-traveller { stroke:var(--services-green); }
.page-services .sv-frames rect,.page-services .sv-boxes rect,.page-services .sv-chip rect { fill:none; stroke:currentColor; stroke-width:1.2; }
.page-services .sv-frames path { fill:none; stroke:currentColor; stroke-width:1.1; opacity:.7; }
.page-services .sv-frames .sv-active-frame,.page-services .sv-boxes .sv-active-frame { stroke:var(--detail-accent); stroke-width:2; }
.page-services .service-detail-copy { grid-column:1 / 6; }
.page-services .service-detail-copy p { max-width:39rem; color:#3e4540; font-size:clamp(1rem,1.15vw,1.16rem); line-height:1.64; }
.page-services .service-research .service-detail-copy p,.page-services .service-transformation .service-detail-copy p { color:rgba(255,255,255,.72); }
.page-services .service-detail-spec { grid-column:6 / -1; display:grid; grid-template-columns:.75fr 1.25fr; border-top:1px solid rgba(17,19,18,.2); border-bottom:1px solid rgba(17,19,18,.2); }
.page-services .service-research .service-detail-spec,.page-services .service-transformation .service-detail-spec { border-color:rgba(255,255,255,.2); }
.page-services .service-detail-spec > div { padding:1.5rem 1.5rem 1.8rem 0; }
.page-services .service-detail-spec > div + div { padding-left:1.5rem; border-left:1px solid rgba(17,19,18,.2); }
.page-services .service-research .service-detail-spec > div + div,.page-services .service-transformation .service-detail-spec > div + div { border-color:rgba(255,255,255,.2); }
.page-services .service-detail-spec h3 { margin:0 0 1.1rem; color:inherit; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
.page-services .service-detail-spec p { color:#49504b; font-size:.9rem; line-height:1.55; }
.page-services .service-research .service-detail-spec p,.page-services .service-transformation .service-detail-spec p { color:rgba(255,255,255,.68); }
.page-services .service-detail-spec ul { margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:.7rem 1.2rem; border:0; list-style:none; }
.page-services .service-detail-spec li { padding:0 0 0 .8rem; border:0; color:inherit; font-size:.8rem; line-height:1.4; position:relative; }
.page-services .service-detail-spec li::before { content:""; position:absolute; top:.48em; left:0; width:4px; height:4px; border-radius:50%; background:var(--detail-accent); }
.page-services .service-detail-link { grid-column:1 / 6; justify-self:start; color:inherit; font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.35rem; }
.page-services .service-detail-link span { margin-left:1rem; }

.page-services .services-closing-cta { padding:0 var(--services-gutter); background:#111311; color:#fff; }
.page-services .services-closing-cta .services-shell { min-height:760px; padding:clamp(6rem,10vw,10rem) 0; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-content:center; gap:2rem; }
.page-services .services-closing-cta .eyebrow { grid-column:1 / -1; color:rgba(255,255,255,.58); }
.page-services .services-closing-cta h2 { grid-column:1 / 9; margin:2rem 0 0; color:#fff; font-size:clamp(4rem,7vw,8.5rem); line-height:.88; }
.page-services .services-closing-cta > .services-shell > div { grid-column:9 / -1; align-self:end; }
.page-services .services-closing-cta p { color:rgba(255,255,255,.7); line-height:1.6; }
.page-services .services-closing-cta .button { min-height:64px; margin-top:1.5rem; background:#f5f1e7; color:#111311; }

.page-services .services-footer { position:relative; padding:clamp(5rem,8vw,8rem) var(--services-gutter) 2rem; background:#f0eadc; color:#111311; }
.page-services .services-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-services .services-footer-brand img { width:100%; height:auto; }
.page-services .services-footer .footer-grid,.page-services .services-footer .footer-bottom { width:var(--services-container); }
.page-services .services-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-services .services-footer .footer-lead { grid-column:1 / 8; }
.page-services .services-footer .footer-lead h2 { max-width:800px; color:#111311; font-size:clamp(2.3rem,3.7vw,4.5rem); }
.page-services .services-footer .footer-lead .eyebrow,.page-services .services-footer .footer-links a,.page-services .services-footer .footer-links span,.page-services .services-footer .footer-bottom { color:#3d443f; }
.page-services .services-footer .footer-lead .button-light { background:#111311; color:#fff; }
.page-services .services-footer .footer-links { grid-column:8 / -1; }
.page-services .services-footer .footer-links a:hover { color:#006c3a; }
.page-services .services-footer .footer-bottom { border-color:rgba(17,19,18,.16); }

@media (max-width:1050px) {
  .page-services .services-hero-copy { grid-column:1 / 8; }
  .page-services .services-hero-intro { grid-column:8 / -1; }
  .page-services .services-index-grid { grid-template-columns:1fr 1fr; }
  .page-services .service-detail-shell { min-height:0; grid-template-rows:auto; }
  .page-services .service-detail-heading { grid-column:1 / -1; }
  .page-services .service-detail-heading h2 { max-width:10ch; }
  .page-services .service-detail-visual { grid-column:1 / -1; min-height:560px; }
  .page-services .service-detail-visual svg { min-height:560px; }
  .page-services .service-detail-copy { grid-column:1 / 6; }
  .page-services .service-detail-spec { grid-column:6 / -1; }
  .page-services .service-detail-link { grid-column:1 / 6; }
  .page-services .services-footer .footer-lead { grid-column:1 / 8; }
  .page-services .services-footer .footer-links { grid-column:8 / -1; }
}

@media (max-width:960px) {
  .page-services .header-cta { display:none; }
  .page-services .menu-toggle { display:block; }
  .page-services .header-inner { grid-template-columns:1fr auto; }
}

@media (max-width:680px) {
  .page-services .brand { width:142px; }
  .page-services .services-page-hero,.page-services .services-hero-grid { min-height:auto; }
  .page-services .services-hero-grid { padding-top:calc(var(--header-height) + 4rem); grid-template-columns:1fr; }
  .page-services .services-hero-copy,.page-services .services-hero-intro,.page-services .services-hero-system { grid-column:1; }
  .page-services .services-hero-copy h1 { font-size:clamp(3.8rem,16vw,5.5rem); }
  .page-services .services-hero-system { grid-template-columns:repeat(3,1fr); gap:.7rem; }
  .page-services .services-hero-system i { display:none; }
  .page-services .services-hero-system span,
  .page-services .services-hero-system a { padding:.7rem .8rem; border:1px solid rgba(17,19,18,.18); text-align:center; }
  .page-services .services-index-heading h2,.page-services .services-index-heading > p:last-child { grid-column:1 / -1; }
  .page-services .services-index-heading h2 { font-size:clamp(3.6rem,15vw,5.2rem); }
  .page-services .services-index-grid { grid-template-columns:1fr; }
  .page-services .services-index-grid a { min-height:150px; }
  .page-services .service-detail-shell { grid-template-columns:1fr; padding:5rem 0; gap:3.5rem; }
  .page-services .service-detail-heading,.page-services .service-detail-visual,.page-services .service-detail-copy,.page-services .service-detail-spec,.page-services .service-detail-link { grid-column:1; }
  .page-services .service-detail-heading h2 { font-size:clamp(3.6rem,14.5vw,5.2rem); }
  .page-services .service-promise { font-size:clamp(1.6rem,7vw,2.2rem); }
  .page-services .service-detail-visual,.page-services .service-detail-visual svg { min-height:360px; }
  .page-services .service-detail-spec { grid-template-columns:1fr; }
  .page-services .service-detail-spec > div + div { padding-left:0; border-left:0; border-top:1px solid rgba(17,19,18,.2); }
  .page-services .service-research .service-detail-spec > div + div,.page-services .service-transformation .service-detail-spec > div + div { border-color:rgba(255,255,255,.2); }
  .page-services .service-detail-spec ul { grid-template-columns:1fr; }
  .page-services .services-closing-cta .services-shell { grid-template-columns:1fr; min-height:720px; }
  .page-services .services-closing-cta .eyebrow,.page-services .services-closing-cta h2,.page-services .services-closing-cta > .services-shell > div { grid-column:1; }
  .page-services .services-closing-cta h2 { font-size:clamp(3.8rem,16vw,5.5rem); }
  .page-services .services-footer-brand { width:220px; }
  .page-services .services-footer .footer-grid { grid-template-columns:1fr; }
  .page-services .services-footer .footer-lead,.page-services .services-footer .footer-links { grid-column:1; }
  .page-services .services-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-services .services-footer .footer-links > div:last-child { grid-column:1 / -1; }
}

@media (prefers-reduced-motion:reduce) {
  .page-services .sv-traveller { display:none; }
  .page-services .services-index-grid a { transition:none; }
}

/* Services page v2 — lifecycle nav, plate detail, staged reveals and quiet hovers. */
.page-services .services-hero-copy h1,
.page-services .services-index-heading h2,
.page-services .service-detail-heading h2,
.page-services .services-closing-cta h2 { text-wrap:balance; }
.page-services .service-promise { text-wrap:balance; }
.page-services .services-hero-system a {
  color:#111311;
  font-family:var(--font-mono);
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;
  position:relative;
  padding-bottom:.3rem;
}
.page-services .services-hero-system a::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--services-gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
}
.page-services .services-hero-system a:hover::after,
.page-services .services-hero-system a:focus-visible::after { transform:scaleX(1); }
.page-services .services-hero-system a:focus-visible { outline:2px solid var(--services-gold); outline-offset:3px; }
.page-services .service-detail,
.page-services .services-index-section { scroll-margin-top:calc(var(--header-height) + 1rem); }
.page-services .service-stage-meter {
  display:block;
  width:126px;
  height:4px;
  margin-top:1.6rem;
  background:linear-gradient(90deg,var(--detail-accent,var(--services-gold)) calc(var(--filled) * 16.66%),rgba(17,19,18,.16) 0);
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 17px,transparent 17px 21px);
  mask:repeating-linear-gradient(90deg,#000 0 17px,transparent 17px 21px);
}
.page-services .service-research .service-stage-meter,
.page-services .service-transformation .service-stage-meter {
  background:linear-gradient(90deg,var(--detail-accent,var(--services-gold)) calc(var(--filled) * 16.66%),rgba(255,255,255,.22) 0);
}
.page-services .sv-plate .sv-ruler { fill:none; stroke:var(--detail-accent); stroke-width:1; opacity:.4; }
.page-services .sv-plate .sv-coord { font-size:8px; opacity:.55; }
.page-services .sv-plate .sv-plate-id { font-size:8px; fill:var(--detail-accent); opacity:.7; }
.page-services .sv-micro { font-size:8px; opacity:.6; }
.page-services .sv-detail .sv-detail-line { fill:none; stroke:currentColor; stroke-width:1; opacity:.55; }
.page-services .sv-detail .sv-detail-accent { fill:none; stroke:var(--detail-accent); stroke-width:1.4; }
.page-services .sv-gate { fill:var(--services-green); stroke:var(--detail-accent); stroke-width:1.3; }
.page-services .service-research .sv-gate,
.page-services .service-transformation .sv-gate { fill:#f5f1e7; }
.page-services .sv-ports circle { fill:currentColor; stroke:none; opacity:.7; }
.page-services .sv-meter rect,
.page-services .sv-meter-track { fill:rgba(255,255,255,.16); stroke:none; }
.page-services .service-research .sv-meter-track,
.page-services .service-transformation .sv-meter-track { fill:rgba(17,19,18,.14); }
.page-services .sv-meter-done,
.page-services .sv-meter-live { fill:var(--detail-accent) !important; stroke:none; }
.page-services .sv-meter-done { opacity:.55; }
.page-services .sv-chips rect { fill:color-mix(in srgb,var(--detail-accent) 32%,transparent); stroke:color-mix(in srgb,var(--detail-accent) 65%,transparent); stroke-width:1; }
.page-services .sv-chips .sv-chip-off { fill:none; stroke:currentColor; stroke-opacity:.4; }
.page-services .sv-blink { fill:var(--detail-accent); stroke:none; }
.page-services .services-index-grid a { position:relative; }
.page-services .services-index-grid a::before { content:""; position:absolute; top:-1px; left:0; right:0; height:2px; background:var(--services-gold); transform:scaleX(0); transform-origin:left; transition:transform .45s ease; }
.page-services .services-index-grid a:hover::before,
.page-services .services-index-grid a:focus-visible::before { transform:scaleX(1); }
.page-services .services-index-grid a:hover em { color:#8e630d; }
.page-services .service-detail-link { position:relative; padding-bottom:.45rem; border-bottom-color:color-mix(in srgb,var(--detail-accent) 55%,currentColor); }
.page-services .service-detail-link::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--detail-accent); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
.page-services .service-detail-link:hover::after,
.page-services .service-detail-link:focus-visible::after { transform:scaleX(1); }
.page-services .service-detail-link span { display:inline-block; transition:transform .3s ease; }
.page-services .service-detail-link:hover span,
.page-services .service-detail-link:focus-visible span { transform:translate(3px,-3px); }
@media (prefers-reduced-motion:no-preference) {
  .js .page-services .service-detail:not(.is-visible) :is(.sv-nodes,.sv-labels,.sv-detail,.sv-chip,.sv-plate,.sv-frames,.sv-boxes) { opacity:0; }
  .js .page-services .service-detail.is-visible .sv-paths path { stroke-dasharray:900; stroke-dashoffset:900; animation:svDraw .95s .2s ease-out forwards; }
  .js .page-services .service-detail.is-visible .sv-paths .sv-accent-path { animation-delay:.75s; animation-duration:.7s; }
  .js .page-services .service-detail.is-visible :is(.sv-frames,.sv-boxes) { animation:svRise .5s .15s ease-out both; }
  .js .page-services .service-detail.is-visible .sv-nodes { animation:svRise .5s .45s ease-out both; }
  .js .page-services .service-detail.is-visible .sv-detail { animation:svRise .5s .8s ease-out both; }
  .js .page-services .service-detail.is-visible .sv-labels { animation:svRise .5s .95s ease-out both; }
  .js .page-services .service-detail.is-visible .sv-chip { animation:svRise .5s 1.1s ease-out both; }
  .js .page-services .service-detail.is-visible .sv-plate { animation:svRise .5s 1.2s ease-out both; }
  .page-services .sv-blink { animation:fsStatusBlink 4.8s 1.6s step-end infinite; }
}
@keyframes svDraw { to { stroke-dashoffset:0; } }
@keyframes svRise { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  .page-services .service-detail-visual *,
  .page-services .services-hero-system a::after,
  .page-services .services-index-grid a::before,
  .page-services .service-detail-link::after,
  .page-services .service-detail-link span { animation:none !important; transition:none !important; }
}

/* ==========================================================
   ABOUT v3 — THE MANIFESTO PAGE
   The one page that speaks in the studio's own voice: typography-
   first, no instrument panels. Same tokens (paper, deep green,
   gold, mono), a different grammar — line-mask reveals, gold
   underline sweeps, ghost numerals and a centred values glossary.
   ========================================================== */
.page-about {
  --abt-gutter:clamp(1.25rem,4vw,4.75rem);
  --abt-container:min(1520px,calc(100vw - (var(--abt-gutter) * 2)));
  --abt-green:#102219;
  --abt-paper:#f3f0e7;
  --abt-cream:#faf8f2;
  --abt-gold:#f1b547;
  --abt-ink:#111311;
  --abt-line:rgba(17,19,18,.2);
  background:var(--abt-paper);
}
.page-about .abt-shell { width:var(--abt-container); margin-inline:auto; }
.page-about .content-section { scroll-margin-top:calc(var(--header-height) + 1rem); }
.page-about .abt-kicker {
  margin:0 0 clamp(2rem,4vw,3.5rem);
  font-family:var(--font-mono);
  font-size:.64rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#59605b;
  display:flex;
  align-items:center;
  gap:.9rem;
}
.page-about .abt-kicker::before { content:""; width:2.4rem; height:1px; background:var(--abt-gold); }
.page-about mark {
  background:transparent;
  color:inherit;
  background-image:linear-gradient(var(--abt-gold),var(--abt-gold));
  background-repeat:no-repeat;
  background-position:0 92%;
  background-size:100% .08em;
}

/* 01 — Manifesto hero */
.page-about .abt-hero { padding:0 var(--abt-gutter); background:var(--abt-paper); }
.page-about .abt-hero .abt-shell { min-height:100svh; padding:calc(var(--header-height) + clamp(4rem,7vw,7rem)) 0 clamp(4rem,6vw,6rem); display:flex; flex-direction:column; }
.page-about .abt-meta {
  display:flex;
  align-items:center;
  gap:1.1rem;
  margin:0 0 clamp(3rem,7vh,6rem);
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#59605b;
}
.page-about .abt-meta i { flex:0 0 5px; width:5px; height:5px; border-radius:50%; background:var(--abt-gold); }
.page-about .abt-hero h1 { margin:auto 0; font-size:clamp(3.4rem,9.2vw,11.5rem); line-height:.93; letter-spacing:-.062em; font-weight:500; }
.page-about .abt-line { display:block; overflow:hidden; padding-bottom:.06em; margin-bottom:-.06em; }
.page-about .abt-line > span { display:inline-block; }
.page-about .abt-line:nth-child(2) { margin-left:clamp(1.5rem,8vw,11rem); }
.page-about .abt-line:nth-child(3) { margin-left:clamp(.5rem,3vw,4rem); }
.page-about .abt-line em { font-style:normal; color:transparent; -webkit-text-stroke:1.5px var(--abt-ink); }
.page-about .abt-hero-foot { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,560px); gap:clamp(2rem,5vw,6rem); align-items:end; margin-top:clamp(3rem,7vh,6rem); }
.page-about .abt-hero-rule { align-self:end; padding-bottom:.4rem; }
.page-about .abt-hero-rule i { display:block; height:1px; background:var(--abt-line); transform-origin:left; }
.page-about .abt-hero-intro p { margin:0 0 1rem; color:#414842; font-size:clamp(.98rem,1.1vw,1.14rem); line-height:1.65; }
.page-about .abt-hero-intro p:last-child { margin-bottom:0; }

/* 02 — Creed: mission + vision on deep green */
.page-about .abt-creed { padding:clamp(7rem,12vw,13rem) var(--abt-gutter); background:var(--abt-green); color:#f5f1e7; }
.page-about .abt-creed .abt-kicker { color:rgba(245,241,231,.55); }
.page-about .abt-creed-block { max-width:1180px; }
.page-about .abt-creed-block h2 { margin:0 0 2rem; color:#fff; font-size:clamp(2.7rem,5.2vw,6rem); line-height:1; letter-spacing:-.055em; text-wrap:balance; }
.page-about .abt-creed-block p:not(.abt-kicker) { max-width:40rem; margin:0; color:rgba(245,241,231,.68); font-size:clamp(1rem,1.12vw,1.15rem); line-height:1.65; }
.page-about .abt-creed-offset { margin:clamp(6rem,10vw,10rem) 0 0 auto; text-align:left; }
.page-about .abt-creed-offset .abt-kicker { justify-content:flex-start; }
.page-about .abt-creed mark { background-position:0 94%; background-size:100% .07em; }

/* 03 — Philosophy: thesis + columns + pull line */
.page-about .abt-philosophy { padding:clamp(7rem,12vw,13rem) var(--abt-gutter); background:var(--abt-paper); }
.page-about .abt-thesis { max-width:16ch; margin:0 0 clamp(3.5rem,6vw,6rem); font-size:clamp(3rem,6vw,7.4rem); line-height:.95; letter-spacing:-.06em; text-wrap:balance; }
.page-about .abt-philosophy-cols { columns:2; column-gap:clamp(2.5rem,5vw,6rem); max-width:1180px; margin-left:auto; }
.page-about .abt-philosophy-cols p { break-inside:avoid; margin:0 0 1.4rem; color:#3e4540; font-size:clamp(1rem,1.14vw,1.16rem); line-height:1.66; }
.page-about .abt-pull {
  max-width:26ch;
  margin:clamp(4rem,7vw,7rem) 0 0;
  padding-top:2rem;
  border-top:1px solid var(--abt-line);
  font-family:var(--font-display);
  font-size:clamp(1.7rem,2.6vw,3rem);
  line-height:1.12;
  letter-spacing:-.035em;
  color:var(--abt-ink);
  text-wrap:balance;
}

/* 04 — Convictions: ghost numerals, alternating */
.page-about .abt-convictions { padding:clamp(7rem,12vw,13rem) var(--abt-gutter); background:var(--abt-cream); overflow:hidden; }
.page-about .abt-conviction-list { margin:0; padding:0; list-style:none; }
.page-about .abt-conviction-list li {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  padding:clamp(2.4rem,4.5vw,4.5rem) 0;
  border-top:1px solid var(--abt-line);
}
.page-about .abt-conviction-list li:last-child { border-bottom:1px solid var(--abt-line); }
.page-about .abt-conviction-list li > i {
  position:absolute;
  top:50%;
  right:-.04em;
  transform:translateY(-50%);
  font-style:normal;
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(6rem,14vw,15rem);
  line-height:1;
  letter-spacing:-.05em;
  color:transparent;
  -webkit-text-stroke:1px rgba(17,19,18,.16);
  pointer-events:none;
  user-select:none;
}
.page-about .abt-conviction-list li:nth-child(even) > i { right:auto; left:-.04em; }
.page-about .abt-conviction-list li > div { position:relative; max-width:34rem; }
.page-about .abt-conviction-list li:nth-child(even) > div { margin-left:auto; }
.page-about .abt-conviction-list h3 { margin:0 0 1rem; font-size:clamp(1.75rem,2.6vw,3rem); line-height:1; letter-spacing:-.045em; color:var(--abt-ink); text-wrap:balance; }
.page-about .abt-conviction-list p { margin:0; color:#424943; line-height:1.62; }

/* 05 — Difference: sticky chapter head + rows */
.page-about .abt-difference { padding:clamp(7rem,12vw,13rem) var(--abt-gutter); background:var(--abt-paper); }
.page-about .abt-difference-grid { display:grid; grid-template-columns:minmax(280px,5fr) minmax(0,7fr); gap:clamp(2.5rem,5vw,6rem); align-items:start; }
.page-about .abt-difference-head { position:sticky; top:calc(var(--header-height) + 2rem); }
.page-about .abt-difference-head h2 { max-width:9ch; margin:0; font-size:clamp(2.8rem,4.6vw,5.6rem); line-height:.94; letter-spacing:-.055em; }
.page-about .abt-difference-list article { padding:clamp(1.8rem,3vw,2.8rem) 0; border-top:1px solid var(--abt-line); counter-increment:abtdiff; }
.page-about .abt-difference-list { counter-reset:abtdiff; }
.page-about .abt-difference-list article:last-child { border-bottom:1px solid var(--abt-line); }
.page-about .abt-difference-list h3 { position:relative; margin:0 0 1.1rem; padding-left:3.2rem; font-size:clamp(1.45rem,2vw,2.2rem); line-height:1.05; letter-spacing:-.035em; color:var(--abt-ink); text-wrap:balance; }
.page-about .abt-difference-list h3::before {
  content:"0" counter(abtdiff);
  position:absolute;
  left:0;
  top:.35em;
  font-family:var(--font-mono);
  font-size:.64rem;
  font-weight:500;
  letter-spacing:.09em;
  color:var(--abt-gold);
}
.page-about .abt-difference-list div { padding-left:3.2rem; }
.page-about .abt-difference-list div p { max-width:33rem; margin:0 0 .9rem; color:#424943; font-size:.96rem; line-height:1.6; }
.page-about .abt-difference-list div p:last-child { margin-bottom:0; }

/* 06 — Founder dossier */
.page-about .abt-founder { padding:clamp(6rem,10vw,10rem) var(--abt-gutter); background:var(--abt-paper); }
.page-about .abt-dossier { background:var(--abt-green); color:#f5f1e7; box-shadow:0 28px 75px rgba(16,34,25,.18); }
.page-about .abt-dossier-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.1rem clamp(1.5rem,3vw,3rem);
  border-bottom:1px solid rgba(245,241,231,.16);
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(245,241,231,.55);
}
.page-about .abt-dossier-head strong { color:var(--abt-gold); font-weight:500; }
.page-about .abt-dossier-body { display:grid; grid-template-columns:minmax(0,7fr) minmax(260px,5fr); gap:clamp(2rem,4vw,4rem); padding:clamp(2.5rem,4.5vw,4.5rem) clamp(1.5rem,3vw,3rem); }
.page-about .abt-dossier-copy h2 { margin:0 0 1.8rem; color:#fff; font-size:clamp(2.4rem,4vw,4.6rem); line-height:.96; letter-spacing:-.05em; text-wrap:balance; }
.page-about .abt-dossier-copy p { max-width:36rem; margin:0 0 1rem; color:rgba(245,241,231,.7); line-height:1.64; }
.page-about .abt-dossier-aside { align-self:start; padding:1.4rem; border:1px solid rgba(245,241,231,.2); background:rgba(7,21,15,.35); }
.page-about .abt-dossier-aside h3 { margin:0 0 1.2rem; font-family:var(--font-mono); font-size:.62rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(245,241,231,.55); }
.page-about .abt-dossier-aside ul { margin:0; padding:0; list-style:none; }
.page-about .abt-dossier-aside li { position:relative; padding:.75rem 0 .75rem 1.4rem; display:grid; gap:.22rem; border-bottom:1px solid rgba(245,241,231,.12); color:rgba(245,241,231,.72); font-size:.86rem; line-height:1.45; }
.page-about .abt-dossier-aside li:last-child { border-bottom:0; }
.page-about .abt-dossier-aside li::before { content:""; position:absolute; left:0; top:.92em; width:8px; height:8px; border:1px solid var(--abt-gold); }
.page-about .abt-dossier-aside li span { color:rgba(245,241,231,.45); font-family:var(--font-mono); font-size:.56rem; letter-spacing:.08em; text-transform:uppercase; }
.page-about .abt-dossier-aside li strong { color:#f5f1e7; font-size:.9rem; font-weight:500; }

/* 07 — Values: centred glossary */
.page-about .abt-values { padding:clamp(7rem,12vw,13rem) var(--abt-gutter); background:var(--abt-cream); }
.page-about .abt-values .abt-kicker { justify-content:center; }
.page-about .abt-values .abt-kicker::before { display:none; }
.page-about .abt-values .abt-kicker::after { content:""; width:2.4rem; height:1px; background:var(--abt-gold); order:-1; }
.page-about .abt-values-heading { max-width:14ch; margin:0 auto clamp(4.5rem,8vw,8.5rem); font-size:clamp(2.8rem,5vw,6rem); line-height:.94; letter-spacing:-.055em; text-wrap:balance; text-align:center; }
.page-about .abt-value-list { margin:0; padding:0; list-style:none; border-bottom:1px solid var(--abt-line); }
.page-about .abt-value-list li {
  position:relative;
  display:grid;
  grid-template-columns:2.6rem minmax(0,1fr) minmax(0,24rem);
  align-items:center;
  column-gap:clamp(1.25rem,3vw,3rem);
  padding:clamp(1.5rem,2.6vw,2.4rem) 0;
  border-top:1px solid var(--abt-line);
}
.page-about .abt-value-index { font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; color:rgba(17,19,18,.4); transition:color .45s var(--ease); }
.page-about .abt-value-word h3 {
  margin:0;
  font-size:clamp(2.6rem,5.4vw,5.4rem);
  line-height:.98;
  letter-spacing:-.05em;
  color:var(--abt-ink);
  -webkit-text-stroke:1px var(--abt-ink);
  transition:color .5s var(--ease),-webkit-text-stroke-color .5s var(--ease);
}
.page-about .abt-value-list h3 b { display:inline-block; color:var(--abt-gold); -webkit-text-stroke:0; }
.page-about .abt-value-list p { margin:0; color:#4a514c; font-size:.96rem; line-height:1.6; }

/* 08 — Closing */
.page-about .abt-closing { padding:0 var(--abt-gutter); background:#111311; color:#fff; }
.page-about .abt-closing .abt-shell { min-height:720px; padding:clamp(6rem,10vw,10rem) 0; display:flex; flex-direction:column; justify-content:center; }
.page-about .abt-closing .abt-kicker { color:rgba(255,255,255,.5); }
.page-about .abt-closing h2 { max-width:16ch; margin:0 0 clamp(3rem,5vw,5rem); color:#fff; font-size:clamp(3rem,6vw,7.6rem); line-height:.93; letter-spacing:-.06em; text-wrap:balance; }
.page-about .abt-closing-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.18); }
.page-about .abt-closing-foot p { max-width:34rem; margin:0; color:rgba(255,255,255,.7); line-height:1.6; }
.page-about .abt-closing .button { min-height:64px; background:#f5f1e7; color:#111311; }

/* Footer (unchanged treatment) */
.page-about .about-footer { position:relative; padding:clamp(5rem,8vw,8rem) var(--abt-gutter) 2rem; background:#f0eadc; color:#111311; }
.page-about .about-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-about .about-footer-brand img { width:100%; height:auto; }
.page-about .about-footer .footer-grid,.page-about .about-footer .footer-bottom { width:var(--abt-container); }
.page-about .about-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-about .about-footer .footer-lead { grid-column:1 / 8; }
.page-about .about-footer .footer-lead h2 { max-width:800px; color:#111311; font-size:clamp(2.3rem,3.7vw,4.5rem); }
.page-about .about-footer .footer-lead .eyebrow,.page-about .about-footer .footer-links a,.page-about .about-footer .footer-links span,.page-about .about-footer .footer-bottom { color:#3d443f; }
.page-about .about-footer .footer-lead .button-light { background:#111311; color:#fff; }
.page-about .about-footer .footer-links { grid-column:8 / -1; }
.page-about .about-footer .footer-links a:hover { color:#006c3a; }
.page-about .about-footer .footer-bottom { border-color:rgba(17,19,18,.16); }

/* About transitions — the page's own motion grammar: masked lines,
   underline sweeps, ghost numerals settling and glossary cascade. */
@media (prefers-reduced-motion:no-preference) {
  .js .page-about mark { background-size:0% .08em; transition:background-size .9s var(--ease) .35s; }
  .js .page-about .is-visible mark,
  .js .page-about .abt-creed.is-visible mark { background-size:100% .08em; }
  .js .page-about .abt-hero .abt-line > span { transform:translateY(112%); transition:transform .85s var(--ease); }
  .js .page-about .abt-hero .abt-line:nth-child(2) > span { transition-delay:.1s; }
  .js .page-about .abt-hero .abt-line:nth-child(3) > span { transition-delay:.2s; }
  .js .page-about .abt-hero.is-visible .abt-line > span { transform:none; }
  .js .page-about .abt-hero .abt-meta { opacity:0; transition:opacity .6s ease .05s; }
  .js .page-about .abt-hero.is-visible .abt-meta { opacity:1; }
  .js .page-about .abt-hero .abt-hero-intro { opacity:0; transform:translateY(14px); transition:opacity .7s var(--ease) .5s,transform .7s var(--ease) .5s; }
  .js .page-about .abt-hero.is-visible .abt-hero-intro { opacity:1; transform:none; }
  .js .page-about .abt-hero .abt-hero-rule i { transform:scaleX(0); transition:transform 1.1s var(--ease) .45s; }
  .js .page-about .abt-hero.is-visible .abt-hero-rule i { transform:scaleX(1); }
  .js .page-about :is(.abt-creed,.abt-philosophy,.abt-convictions,.abt-difference,.abt-founder,.abt-values,.abt-closing).reveal-ready .abt-shell > * { opacity:0; transform:translateY(20px); }
  .js .page-about :is(.abt-creed,.abt-philosophy,.abt-convictions,.abt-difference,.abt-founder,.abt-values,.abt-closing).reveal-ready.is-visible .abt-shell > * { opacity:1; transform:none; transition:opacity .75s var(--ease),transform .75s var(--ease); }
  .js .page-about .reveal-ready.is-visible .abt-shell > *:nth-child(2) { transition-delay:.12s; }
  .js .page-about .reveal-ready.is-visible .abt-shell > *:nth-child(3) { transition-delay:.22s; }
  .js .page-about .reveal-ready.is-visible .abt-shell > *:nth-child(4) { transition-delay:.32s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li { opacity:0; animation:abtRise .6s var(--ease) both; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(1) { animation-delay:.15s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(2) { animation-delay:.25s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(3) { animation-delay:.35s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(4) { animation-delay:.45s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(5) { animation-delay:.55s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li:nth-child(6) { animation-delay:.65s; }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li > i { opacity:0; transform:translateY(-50%) scale(.96); animation:abtGhost .9s var(--ease) both; animation-delay:inherit; }
  .js .page-about .abt-values.is-visible .abt-value-list li { opacity:0; animation:abtRise .55s var(--ease) both; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(1) { animation-delay:.1s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(2) { animation-delay:.18s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(3) { animation-delay:.26s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(4) { animation-delay:.34s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(5) { animation-delay:.42s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(6) { animation-delay:.5s; }
  .js .page-about .abt-values.is-visible .abt-value-list li:nth-child(7) { animation-delay:.58s; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article { opacity:0; animation:abtRise .6s var(--ease) both; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article:nth-child(1) { animation-delay:.15s; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article:nth-child(2) { animation-delay:.25s; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article:nth-child(3) { animation-delay:.35s; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article:nth-child(4) { animation-delay:.45s; }
  .js .page-about .abt-difference.is-visible .abt-difference-list article:nth-child(5) { animation-delay:.55s; }
}
@keyframes abtRise { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
@keyframes abtGhost { from { opacity:0; transform:translateY(-50%) scale(.96); } to { opacity:1; transform:translateY(-50%) scale(1); } }
@keyframes abtGhostCorner { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@media (prefers-reduced-motion:no-preference) {
  .js .page-about .abt-value-list li h3 { color:transparent; -webkit-text-stroke-color:rgba(17,19,18,.32); }
  .js .page-about .abt-value-list li h3 b { opacity:0; transform:scale(.3); transition:opacity .35s var(--ease),transform .5s cubic-bezier(.34,1.56,.64,1); }
  .js .page-about .abt-value-list li p { opacity:0; transform:translateX(16px); transition:opacity .5s var(--ease),transform .55s var(--ease); }
  .js .page-about .abt-value-list li.is-lit .abt-value-index,
  .js .page-about .abt-value-list li:hover .abt-value-index { color:var(--abt-gold); }
  .js .page-about .abt-value-list li.is-lit h3,
  .js .page-about .abt-value-list li:hover h3 { color:var(--abt-ink); -webkit-text-stroke-color:var(--abt-ink); }
  .js .page-about .abt-value-list li.is-lit h3 b,
  .js .page-about .abt-value-list li:hover h3 b { opacity:1; transform:scale(1); }
  .js .page-about .abt-value-list li.is-lit p,
  .js .page-about .abt-value-list li:hover p { opacity:1; transform:none; }
}

@media (max-width:1100px) {
  .page-about .abt-hero h1 { font-size:clamp(3.4rem,10.5vw,8.5rem); }
  .page-about .abt-philosophy-cols { columns:1; max-width:44rem; margin-left:0; }
  .page-about .abt-difference-grid { grid-template-columns:1fr; }
  .page-about .abt-difference-head { position:static; }
  .page-about .abt-difference-head h2 { max-width:14ch; margin-bottom:1rem; }
  .page-about .abt-dossier-body { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .page-about .abt-hero .abt-shell { min-height:0; padding-top:calc(var(--header-height) + 3.5rem); }
  .page-about .abt-meta { flex-wrap:wrap; gap:.6rem .9rem; margin-bottom:3rem; }
  .page-about .abt-hero h1 { margin:0 0 3rem; font-size:clamp(2.9rem,12.5vw,4.6rem); }
  .page-about .abt-line:nth-child(2) { margin-left:1rem; }
  .page-about .abt-line:nth-child(3) { margin-left:.25rem; }
  .page-about .abt-hero-foot { grid-template-columns:1fr; gap:1.5rem; margin-top:0; }
  .page-about .abt-hero-rule { display:none; }
  .page-about .abt-creed,.page-about .abt-philosophy,.page-about .abt-convictions,.page-about .abt-difference,.page-about .abt-values { padding-top:6rem; padding-bottom:6rem; }
  .page-about .abt-creed-block h2 { font-size:clamp(2.1rem,9vw,3rem); }
  .page-about .abt-creed-offset { margin-top:5rem; }
  .page-about .abt-thesis { font-size:clamp(2.5rem,11vw,3.6rem); }
  .page-about .abt-pull { max-width:none; font-size:clamp(1.45rem,6.5vw,1.9rem); }
  .page-about .abt-conviction-list li > i,
  .page-about .abt-conviction-list li:nth-child(even) > i { top:2.1rem; right:0; left:auto; transform:none; font-size:3.1rem; -webkit-text-stroke:1px rgba(17,19,18,.24); }
  .js .page-about .abt-convictions.is-visible .abt-conviction-list li > i { transform:scale(.96); animation-name:abtGhostCorner; }
  .page-about .abt-conviction-list li > div,.page-about .abt-conviction-list li:nth-child(even) > div { max-width:none; margin:0; }
  .page-about .abt-conviction-list h3 { padding-right:4.6rem; }
  .page-about .abt-difference-list h3,.page-about .abt-difference-list div { padding-left:2.4rem; }
  .page-about .abt-dossier-body { padding:1.75rem 1.25rem; }
  .page-about .abt-dossier-copy h2 { font-size:clamp(2rem,9vw,2.8rem); }
  .page-about .abt-values-heading { font-size:clamp(2.3rem,10vw,3.2rem); }
  .page-about .abt-value-list li { grid-template-columns:minmax(0,1fr); row-gap:.65rem; padding:1.9rem 0; }
  .page-about .abt-value-list h3 { font-size:clamp(2.2rem,10.5vw,3.2rem); }
  .page-about .abt-value-list p { max-width:none; }
  .page-about .abt-closing .abt-shell { min-height:600px; }
  .page-about .abt-closing h2 { font-size:clamp(2.5rem,11vw,3.6rem); }
  .page-about .about-footer-brand { width:220px; }
  .page-about .about-footer .footer-grid { grid-template-columns:1fr; }
  .page-about .about-footer .footer-lead,.page-about .about-footer .footer-links { grid-column:1; }
  .page-about .about-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-about .about-footer .footer-links > div:last-child { grid-column:1 / -1; }
}
@media (prefers-reduced-motion:reduce) {
  .page-about mark { background-size:100% .08em !important; }
  .page-about .abt-line > span,
  .page-about .abt-hero-rule i,
  .page-about .abt-conviction-list li,
  .page-about .abt-conviction-list li > i,
  .page-about .abt-value-list li,
  .page-about .abt-difference-list article { animation:none !important; transition:none !important; transform:none !important; opacity:1 !important; }
  .page-about .abt-conviction-list li > i { transform:translateY(-50%) !important; }
}
@media (prefers-reduced-motion:reduce) and (max-width:680px) {
  .page-about .abt-conviction-list li > i { transform:none !important; }
}

/* Industries page — operating-environment chapters */
.page-industries {
  --industries-gutter:clamp(1.25rem,4vw,4.75rem);
  --industries-container:min(1520px,calc(100vw - (var(--industries-gutter) * 2)));
  --industries-green:#102219;
  --industries-paper:#f3f0e7;
  --industries-cream:#faf8f2;
  --industries-gold:#f1b547;
  --industries-orange:#df7730;
  background:var(--industries-paper);
}
.page-industries .industries-shell { width:var(--industries-container); margin-inline:auto; }
.page-industries .industries-header { background:rgba(243,240,231,.94); border-bottom:1px solid rgba(17,19,18,.14); backdrop-filter:blur(18px); }
.page-industries .header-inner { width:var(--industries-container); }
.page-industries .brand { width:clamp(145px,15vw,210px); }
.page-industries .brand-logo { width:100%; height:auto; }
.page-industries .header-cta { min-height:46px; padding:.75rem 1rem; display:flex; align-items:center; gap:1rem; border:0; background:#111311; color:#fff; }
.page-industries .header-cta i { width:19px; height:19px; border:1px solid currentColor; border-radius:50%; position:relative; }
.page-industries .header-cta i::after { content:"→"; position:absolute; inset:-5px 0 0; display:grid; place-items:center; font-size:.72rem; }
.page-industries .mobile-menu-brand { width:180px; height:auto; margin-bottom:2rem; filter:brightness(0) invert(1); }

.page-industries .industries-page-hero { min-height:100svh; padding:0 var(--industries-gutter); background:var(--industries-paper); }
.page-industries .industries-hero-grid { min-height:100svh; padding:calc(var(--header-height) + clamp(5rem,8vw,9rem)) 0 clamp(4rem,7vw,7rem); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-content:center; gap:clamp(2rem,4vw,5rem) clamp(1rem,2vw,2rem); }
.page-industries .industries-hero-grid > .eyebrow { grid-column:1 / -1; }
.page-industries .industries-hero-grid h1 { grid-column:1 / 10; max-width:11ch; margin:0; font-size:clamp(4.8rem,8vw,9.7rem); line-height:.87; letter-spacing:-.068em; }
.page-industries .industries-hero-copy { grid-column:10 / -1; align-self:end; }
.page-industries .industries-hero-copy p { color:#373e39; font-size:clamp(1rem,1.18vw,1.16rem); line-height:1.62; }
.page-industries .industries-hero-readout { grid-column:1 / -1; min-height:118px; margin-top:clamp(1rem,3vw,3rem); padding:1.5rem; display:grid; grid-template-columns:auto 1fr auto 1fr auto 1fr auto auto; align-items:center; gap:1rem; background:var(--industries-green); color:#fff; }
.page-industries .industries-hero-readout span,.page-industries .industries-hero-readout b { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
.page-industries .industries-hero-readout i { height:1px; background:rgba(255,255,255,.24); }
.page-industries .industries-hero-readout b { padding:.8rem 1rem; background:var(--industries-gold); color:#111311; font-weight:600; }

.page-industries .industries-index-section { padding:clamp(6rem,10vw,11rem) var(--industries-gutter); background:var(--industries-green); color:#fff; }
.page-industries .industries-index-section .industries-shell { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(3rem,6vw,7rem) 2rem; }
.page-industries .industries-index-intro { grid-column:1 / 6; align-self:start; }
.page-industries .industries-index-intro .eyebrow { color:rgba(255,255,255,.58); }
.page-industries .industries-index-intro h2 { margin:2rem 0; color:#fff; font-size:clamp(3.8rem,5.7vw,7rem); line-height:.9; }
.page-industries .industries-index-intro > p:last-child { max-width:32rem; color:rgba(255,255,255,.68); line-height:1.6; }
.page-industries .industries-index-grid { grid-column:6 / -1; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.2); border-left:1px solid rgba(255,255,255,.2); }
.page-industries .industries-index-grid a { min-height:205px; padding:1.4rem; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto 1fr auto; gap:1.2rem; border-right:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); color:#fff; text-decoration:none; transition:background .35s ease; }
.page-industries .industries-index-grid a:hover { background:rgba(255,255,255,.07); }
.page-industries .industries-index-grid span,.page-industries .industries-index-grid em { font-family:var(--font-mono); font-size:.62rem; font-style:normal; letter-spacing:.08em; text-transform:uppercase; }
.page-industries .industries-index-grid em { color:rgba(255,255,255,.55); }
.page-industries .industries-index-grid strong { grid-column:1 / -1; align-self:end; max-width:15ch; font-family:var(--font-display); font-size:clamp(1.55rem,2.3vw,2.6rem); font-weight:500; line-height:1; letter-spacing:-.04em; }

.page-industries .industry-chapter { --industry-accent:var(--industries-gold); padding:0 var(--industries-gutter); background:var(--industries-paper); color:#111311; }
.page-industries .industry-healthcare,.page-industries .industry-utilities,.page-industries .industry-logistics { background:var(--industries-green); color:#fff; }
.page-industries .industry-healthcare { --industry-accent:#00934d; }
.page-industries .industry-government { --industry-accent:var(--industries-gold); background:#e5ece2; }
.page-industries .industry-utilities { --industry-accent:#00934d; }
.page-industries .industry-enterprise { --industry-accent:var(--industries-gold); background:#efe3c9; }
.page-industries .industry-logistics { --industry-accent:var(--industries-orange); }
.page-industries .industry-chapter-shell { padding:clamp(6rem,10vw,11rem) 0; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(3rem,6vw,6rem) clamp(1rem,2vw,2rem); }
.page-industries .industry-chapter header { grid-column:1 / -1; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1.5rem 2rem; align-items:end; }
.page-industries .industry-chapter header .eyebrow { grid-column:1 / -1; color:#5b625d; }
.page-industries .industry-chapter header h2 { grid-column:1 / 10; margin:0; max-width:none; color:inherit; font-size:clamp(5rem,8.5vw,10.5rem); line-height:.84; letter-spacing:-.072em; }
.page-industries .industry-chapter header > p:last-child { grid-column:10 / -1; margin:0; color:#343b36; font-family:var(--font-display); font-size:clamp(1.6rem,2.3vw,2.7rem); line-height:1.08; letter-spacing:-.035em; }
.page-industries .industry-healthcare header .eyebrow,.page-industries .industry-utilities header .eyebrow,.page-industries .industry-logistics header .eyebrow { color:rgba(255,255,255,.58); }
.page-industries .industry-healthcare header > p:last-child,.page-industries .industry-utilities header > p:last-child,.page-industries .industry-logistics header > p:last-child { color:rgba(255,255,255,.8); }
.page-industries .industry-instrument { grid-column:1 / -1; min-height:720px; background:var(--industries-green); border:1px solid rgba(17,19,18,.2); box-shadow:0 28px 75px rgba(16,34,25,.14); }
.page-industries .industry-healthcare .industry-instrument,.page-industries .industry-utilities .industry-instrument,.page-industries .industry-logistics .industry-instrument { background:#f5f1e7; border-color:rgba(255,255,255,.2); }
.page-industries .industry-instrument svg { width:100%; height:100%; min-height:720px; display:block; color:rgba(255,255,255,.48); }
.page-industries .industry-healthcare .industry-instrument svg,.page-industries .industry-utilities .industry-instrument svg,.page-industries .industry-logistics .industry-instrument svg { color:rgba(17,19,18,.52); }
.page-industries .industry-instrument text { fill:currentColor; font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; }
.page-industries .industry-instrument path,.page-industries .industry-instrument rect,.page-industries .industry-instrument circle,.page-industries .industry-instrument ellipse { vector-effect:non-scaling-stroke; }
.page-industries .industry-chapter-notes { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(17,19,18,.2); border-bottom:1px solid rgba(17,19,18,.2); }
.page-industries .industry-healthcare .industry-chapter-notes,.page-industries .industry-utilities .industry-chapter-notes,.page-industries .industry-logistics .industry-chapter-notes { border-color:rgba(255,255,255,.2); }
.page-industries .industry-chapter-notes article { min-height:235px; padding:1.6rem 2rem 2rem 0; }
.page-industries .industry-chapter-notes article + article { padding-left:2rem; border-left:1px solid rgba(17,19,18,.2); }
.page-industries .industry-healthcare .industry-chapter-notes article + article,.page-industries .industry-utilities .industry-chapter-notes article + article,.page-industries .industry-logistics .industry-chapter-notes article + article { border-color:rgba(255,255,255,.2); }
.page-industries .industry-chapter-notes h3 { margin:0 0 1.2rem; color:inherit; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
.page-industries .industry-chapter-notes p { color:#454c47; font-size:.94rem; line-height:1.58; }
.page-industries .industry-healthcare .industry-chapter-notes p,.page-industries .industry-utilities .industry-chapter-notes p,.page-industries .industry-logistics .industry-chapter-notes p { color:rgba(255,255,255,.7); }
.page-industries .industry-chapter-notes ul { margin:0; padding:0; border:0; list-style:none; }
.page-industries .industry-chapter-notes li { padding:.35rem 0 .35rem .85rem; border:0; color:inherit; font-size:.82rem; position:relative; }
.page-industries .industry-chapter-notes li::before { content:""; position:absolute; top:.78rem; left:0; width:4px; height:4px; border-radius:50%; background:var(--industry-accent); }
.page-industries .industry-chapter-link { grid-column:9 / -1; justify-self:end; color:inherit; font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.35rem; }
.page-industries .industry-chapter-link span { margin-left:1rem; }

.page-industries .industries-closing-cta { padding:0 var(--industries-gutter); background:#111311; color:#fff; }
.page-industries .industries-closing-cta .industries-shell { min-height:760px; padding:clamp(6rem,10vw,10rem) 0; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-content:center; gap:2rem; }
.page-industries .industries-closing-cta .eyebrow { grid-column:1 / -1; color:rgba(255,255,255,.58); }
.page-industries .industries-closing-cta h2 { grid-column:1 / 9; margin:2rem 0 0; color:#fff; font-size:clamp(4rem,7vw,8.5rem); line-height:.88; }
.page-industries .industries-closing-cta > .industries-shell > div { grid-column:9 / -1; align-self:end; }
.page-industries .industries-closing-cta p { color:rgba(255,255,255,.7); line-height:1.6; }
.page-industries .industries-closing-cta .button { min-height:64px; margin-top:1.5rem; background:#f5f1e7; color:#111311; }

.page-industries .industries-footer { position:relative; padding:clamp(5rem,8vw,8rem) var(--industries-gutter) 2rem; background:#f0eadc; color:#111311; }
.page-industries .industries-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-industries .industries-footer-brand img { width:100%; height:auto; }
.page-industries .industries-footer .footer-grid,.page-industries .industries-footer .footer-bottom { width:var(--industries-container); }
.page-industries .industries-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-industries .industries-footer .footer-lead { grid-column:1 / 8; }
.page-industries .industries-footer .footer-lead h2 { max-width:800px; color:#111311; font-size:clamp(2.3rem,3.7vw,4.5rem); }
.page-industries .industries-footer .footer-lead .eyebrow,.page-industries .industries-footer .footer-links a,.page-industries .industries-footer .footer-links span,.page-industries .industries-footer .footer-bottom { color:#3d443f; }
.page-industries .industries-footer .footer-lead .button-light { background:#111311; color:#fff; }
.page-industries .industries-footer .footer-links { grid-column:8 / -1; }
.page-industries .industries-footer .footer-links a:hover { color:#006c3a; }
.page-industries .industries-footer .footer-bottom { border-color:rgba(17,19,18,.16); }

@media (max-width:1050px) {
  .page-industries .industries-hero-grid h1 { grid-column:1 / 9; }
  .page-industries .industries-hero-copy { grid-column:9 / -1; }
  .page-industries .industries-index-intro { grid-column:1 / 6; }
  .page-industries .industries-index-grid { grid-column:6 / -1; }
  .page-industries .industry-chapter header h2 { grid-column:1 / 9; }
  .page-industries .industry-chapter header > p:last-child { grid-column:9 / -1; }
  .page-industries .industry-instrument,.page-industries .industry-instrument svg { min-height:620px; }
  .page-industries .industries-footer .footer-lead { grid-column:1 / 8; }
  .page-industries .industries-footer .footer-links { grid-column:8 / -1; }
}

@media (max-width:960px) {
  .page-industries .header-cta { display:none; }
  .page-industries .menu-toggle { display:block; }
  .page-industries .header-inner { grid-template-columns:1fr auto; }
  .page-industries .industries-hero-grid h1,.page-industries .industries-hero-copy { grid-column:1 / -1; }
  .page-industries .industries-index-intro,.page-industries .industries-index-grid { grid-column:1 / -1; }
  .page-industries .industries-index-section .industries-shell { grid-template-columns:1fr; }
  .page-industries .industry-chapter header h2,.page-industries .industry-chapter header > p:last-child { grid-column:1 / -1; }
  .page-industries .industry-chapter-notes { grid-template-columns:1fr 1fr; }
  .page-industries .industry-chapter-notes article:last-child { grid-column:1 / -1; border-top:1px solid rgba(17,19,18,.2); border-left:0; padding-left:0; }
  .page-industries .industry-healthcare .industry-chapter-notes article:last-child,.page-industries .industry-utilities .industry-chapter-notes article:last-child,.page-industries .industry-logistics .industry-chapter-notes article:last-child { border-color:rgba(255,255,255,.2); }
}

@media (max-width:680px) {
  .page-industries .brand { width:142px; }
  .page-industries .industries-page-hero,.page-industries .industries-hero-grid { min-height:auto; }
  .page-industries .industries-hero-grid { padding-top:calc(var(--header-height) + 4rem); grid-template-columns:1fr; }
  .page-industries .industries-hero-grid > * { grid-column:1; }
  .page-industries .industries-hero-grid h1 { font-size:clamp(3.7rem,15vw,5.3rem); }
  .page-industries .industries-hero-readout { grid-template-columns:1fr 1fr; }
  .page-industries .industries-hero-readout i { display:none; }
  .page-industries .industries-hero-readout span { padding:.75rem; border:1px solid rgba(255,255,255,.18); text-align:center; }
  .page-industries .industries-hero-readout b { grid-column:1 / -1; text-align:center; }
  .page-industries .industries-index-intro h2 { font-size:clamp(3.6rem,14vw,5rem); }
  .page-industries .industries-index-grid { grid-template-columns:1fr; }
  .page-industries .industries-index-grid a { min-height:165px; }
  .page-industries .industry-chapter-shell { grid-template-columns:1fr; padding:5rem 0; gap:3.5rem; }
  .page-industries .industry-chapter header { grid-column:1; grid-template-columns:1fr; }
  .page-industries .industry-chapter header > * { grid-column:1; }
  .page-industries .industry-chapter header h2 { font-size:clamp(3.9rem,16vw,5.7rem); }
  .page-industries .industry-chapter header > p:last-child { font-size:clamp(1.6rem,7vw,2.2rem); }
  .page-industries .industry-instrument,.page-industries .industry-instrument svg { grid-column:1; min-height:360px; }
  .page-industries .industry-chapter-notes { grid-column:1; grid-template-columns:1fr; }
  .page-industries .industry-chapter-notes article,.page-industries .industry-chapter-notes article + article,.page-industries .industry-chapter-notes article:last-child { grid-column:1; min-height:0; padding:1.5rem 0; border-left:0; border-top:1px solid rgba(17,19,18,.2); }
  .page-industries .industry-healthcare .industry-chapter-notes article,.page-industries .industry-utilities .industry-chapter-notes article,.page-industries .industry-logistics .industry-chapter-notes article { border-color:rgba(255,255,255,.2); }
  .page-industries .industry-chapter-link { grid-column:1; justify-self:start; }
  .page-industries .industries-closing-cta .industries-shell { grid-template-columns:1fr; min-height:720px; }
  .page-industries .industries-closing-cta .eyebrow,.page-industries .industries-closing-cta h2,.page-industries .industries-closing-cta > .industries-shell > div { grid-column:1; }
  .page-industries .industries-closing-cta h2 { font-size:clamp(3.8rem,16vw,5.5rem); }
  .page-industries .industries-footer-brand { width:220px; }
  .page-industries .industries-footer .footer-grid { grid-template-columns:1fr; }
  .page-industries .industries-footer .footer-lead,.page-industries .industries-footer .footer-links { grid-column:1; }
  .page-industries .industries-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-industries .industries-footer .footer-links > div:last-child { grid-column:1 / -1; }
}

@media (prefers-reduced-motion:reduce) {
  .page-industries .industries-index-grid a { transition:none; }
}

/* Industries rework — static technical plates and alternating field dossiers */
.page-industries .industries-page-hero { min-height:0; background:var(--industries-green); color:#fff; }
.page-industries .industries-hero-grid {
  min-height:920px;
  padding:calc(var(--header-height) + clamp(5rem,8vw,8rem)) 0 clamp(5rem,8vw,8rem);
  grid-template-columns:repeat(12,minmax(0,1fr));
  align-items:center;
  gap:3rem clamp(1rem,2vw,2rem);
}
.page-industries .industries-hero-copy { grid-column:1 / 8; align-self:center; }
.page-industries .industries-hero-copy .eyebrow { margin-bottom:clamp(3rem,6vw,6rem); color:rgba(255,255,255,.58); }
.page-industries .industries-hero-copy h1 { max-width:9.5ch; margin:0 0 clamp(3rem,5vw,5rem); color:#fff; font-size:clamp(4.5rem,7vw,8.3rem); line-height:.87; letter-spacing:-.068em; }
.page-industries .industries-hero-copy > p:not(.eyebrow) { max-width:36rem; color:rgba(255,255,255,.7); font-size:clamp(1rem,1.15vw,1.15rem); line-height:1.62; }
.page-industries .industries-hero-context { grid-column:8 / -1; min-height:660px; align-self:center; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr auto; background:#f5f1e7; color:#111311; border:1px solid rgba(255,255,255,.2); box-shadow:0 28px 75px rgba(0,0,0,.2); }
.page-industries .industries-hero-context > * { width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
.page-industries .hero-context-head { padding:1.2rem; display:flex; justify-content:space-between; border-bottom:1px solid rgba(17,19,18,.2); font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; }
.page-industries .hero-context-head strong { font-weight:500; }
.page-industries .hero-context-grid { padding:1.2rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:rgba(17,19,18,.16); }
.page-industries .hero-context-grid article { min-width:0; min-height:190px; padding:1.2rem; display:grid; grid-template-rows:auto 1fr auto; background:#f5f1e7; }
.page-industries .hero-context-grid span,.page-industries .hero-context-grid small,.page-industries .hero-context-output span { font-family:var(--font-mono); font-size:.6rem; letter-spacing:.08em; text-transform:uppercase; }
.page-industries .hero-context-grid strong { align-self:center; font-family:var(--font-display); font-size:clamp(1.7rem,2.5vw,2.8rem); font-weight:500; letter-spacing:-.04em; overflow-wrap:break-word; }
.page-industries .hero-context-grid small { color:#616863; }
.page-industries .hero-context-output { min-height:118px; padding:1.2rem; display:grid; grid-template-columns:1fr auto; align-items:center; gap:.75rem; border-top:1px solid rgba(17,19,18,.2); position:relative; }
.page-industries .hero-context-output span { grid-column:1 / -1; color:#59605b; }
.page-industries .hero-context-output strong { font-family:var(--font-display); font-size:clamp(1.6rem,2vw,2.25rem); font-weight:500; letter-spacing:-.035em; }
.page-industries .hero-context-output i { width:18px; height:18px; border-radius:50%; background:var(--industries-gold); box-shadow:0 0 0 7px rgba(241,181,71,.18); }
.page-industries .industries-hero-readout { display:none; }

.page-industries .industries-index-section { background:var(--industries-cream); color:#111311; }
.page-industries .industries-index-section .industries-shell { gap:clamp(3rem,6vw,7rem) 2rem; }
.page-industries .industries-index-intro { grid-column:1 / 7; }
.page-industries .industries-index-intro .eyebrow { color:#59605b; }
.page-industries .industries-index-intro h2 { color:#111311; font-size:clamp(4rem,6.2vw,7.6rem); }
.page-industries .industries-index-intro > p:last-child { color:#424943; }
.page-industries .industries-index-grid { grid-column:7 / -1; border-color:rgba(17,19,18,.2); }
.page-industries .industries-index-grid a { min-height:180px; color:#111311; border-color:rgba(17,19,18,.2); }
.page-industries .industries-index-grid a:hover { background:#e4ebe1; }
.page-industries .industries-index-grid em { color:#606762; }

.page-industries .industry-chapter-shell { padding:clamp(6rem,9vw,9rem) 0; gap:clamp(3rem,5vw,5rem) clamp(1rem,2vw,2rem); }
.page-industries .industry-chapter header { grid-column:1 / -1; padding-bottom:clamp(2rem,3vw,3rem); border-bottom:1px solid rgba(17,19,18,.2); }
.page-industries .industry-healthcare header,.page-industries .industry-utilities header,.page-industries .industry-logistics header { border-color:rgba(255,255,255,.2); }
.page-industries .industry-chapter header h2 { grid-column:1 / 9; font-size:clamp(4.4rem,7vw,8.6rem); }
.page-industries .industry-chapter header > p:last-child { grid-column:9 / -1; font-size:clamp(1.45rem,2vw,2.35rem); }
.page-industries .industry-instrument { grid-column:1 / 9; min-height:640px; position:relative; background-color:var(--industries-green); background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:48px 48px; }
.page-industries .industry-healthcare .industry-instrument,.page-industries .industry-utilities .industry-instrument,.page-industries .industry-logistics .industry-instrument { background-color:#f5f1e7; background-image:linear-gradient(rgba(17,19,18,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,19,18,.045) 1px,transparent 1px); }
.page-industries .industry-instrument svg { min-height:640px; }
.page-industries .industry-chapter-notes { grid-column:9 / -1; display:block; align-self:stretch; border:0; }
.page-industries .industry-chapter-notes article,.page-industries .industry-chapter-notes article + article { min-height:0; padding:1.5rem 0 1.8rem; border-left:0; border-top:1px solid rgba(17,19,18,.2); }
.page-industries .industry-healthcare .industry-chapter-notes article,.page-industries .industry-utilities .industry-chapter-notes article,.page-industries .industry-logistics .industry-chapter-notes article { border-color:rgba(255,255,255,.2); }
.page-industries .industry-chapter-notes article:last-child { border-bottom:1px solid rgba(17,19,18,.2); }
.page-industries .industry-healthcare .industry-chapter-notes article:last-child,.page-industries .industry-utilities .industry-chapter-notes article:last-child,.page-industries .industry-logistics .industry-chapter-notes article:last-child { border-color:rgba(255,255,255,.2); }
.page-industries .industry-chapter-link { grid-column:9 / -1; justify-self:start; }
.page-industries .industry-chapter:nth-of-type(even) .industry-instrument { grid-column:5 / -1; }
.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-notes { grid-column:1 / 5; grid-row:2; }
.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-link { grid-column:1 / 5; justify-self:start; }

/* Financial services — layered verification and decision system */
.page-industries .finance-system-map {
  --fs-bg:var(--industries-green);
  --fs-line:rgba(239,236,225,.56);
  --fs-muted:rgba(239,236,225,.34);
  --fs-faint:rgba(239,236,225,.09);
  --fs-accent:var(--industries-gold);
  overflow:hidden;
}
.page-industries .finance-system-map svg { color:var(--fs-line); }
.page-industries .finance-system-map text { fill:var(--fs-muted); font-family:var(--font-mono); font-size:8px; letter-spacing:.08em; }
.page-industries .finance-system-map path,.page-industries .finance-system-map circle,.page-industries .finance-system-map rect { vector-effect:non-scaling-stroke; }
.page-industries .fs-grid path { fill:none; }
.page-industries .fs-grid-major { stroke:rgba(239,236,225,.13); stroke-width:1; }
.page-industries .fs-grid-minor { stroke:rgba(239,236,225,.045); stroke-width:1; }
.page-industries .fs-register { stroke:rgba(239,236,225,.3); stroke-width:1; }
.page-industries .fs-coordinates text,.page-industries .fs-layer-labels text { font-size:7px; }
.page-industries .fs-layer-labels text { fill:rgba(239,236,225,.48); letter-spacing:.14em; }
.page-industries .fs-support-systems rect,.page-industries .fs-operation-box rect { fill:rgba(8,24,17,.74); stroke:rgba(239,236,225,.3); stroke-width:1; }
.page-industries .fs-system-box text,.page-industries .fs-operation-box text { fill:rgba(239,236,225,.55); font-size:7px; }
.page-industries .fs-system-box .fs-value,.page-industries .fs-operation-box .fs-value { fill:rgba(239,236,225,.82); }
.page-industries .fs-operation-box circle { fill:var(--fs-accent); stroke:none; }
.page-industries .fs-secondary-paths path,.page-industries .fs-operations > path { fill:none; stroke:rgba(239,236,225,.26); stroke-width:1; }
.page-industries .fs-secondary-paths .fs-converge { stroke:rgba(241,181,71,.62); }
.page-industries .fs-signal-dots > circle:first-child,.page-industries .fs-traveller { fill:var(--fs-accent); stroke:var(--fs-bg); stroke-width:1; }
.page-industries .fs-signal-ring { fill:none; stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-primary-track,.page-industries .fs-primary-fill,.page-industries .fs-route-ticks { fill:none; }
.page-industries .fs-primary-track { stroke:rgba(239,236,225,.36); stroke-width:1.2; }
.page-industries .fs-primary-fill { stroke:var(--fs-accent); stroke-width:2; }
.page-industries .fs-route-ticks { stroke:rgba(239,236,225,.28); stroke-width:1; }
.page-industries .fs-stage { cursor:default; outline:none; }
.page-industries .fs-stage .fs-node { transform-box:fill-box; transform-origin:center; transition:opacity .2s ease,transform .2s ease; }
.page-industries .fs-stage .fs-node path,.page-industries .fs-stage .fs-node circle,.page-industries .fs-stage .fs-node rect { fill:var(--fs-bg); stroke:rgba(239,236,225,.72); stroke-width:1.2; }
.page-industries .fs-stage .fs-node path { fill:none; }
.page-industries .fs-stage .fs-node circle[r="3"] { fill:rgba(239,236,225,.8); }
.page-industries .fs-stage-eligibility .fs-node .fs-segment { stroke:rgba(239,236,225,.4); stroke-dasharray:14 5; }
.page-industries .fs-stage-compliance .fs-node .fs-compliance-hex { fill:var(--fs-accent); stroke:var(--fs-accent); }
.page-industries .fs-stage-compliance .fs-node path:last-child { stroke:var(--fs-bg); stroke-width:1.8; }
.page-industries .fs-stage-approval .fs-node circle:first-child { stroke:var(--fs-accent); }
.page-industries .fs-stage-approval .fs-node path { stroke:var(--fs-accent); }
.page-industries .fs-active-rings circle { fill:none; stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-active-rings circle:first-child { stroke-dasharray:3 5; opacity:.65; }
.page-industries .fs-active-rings circle:last-child { opacity:.25; }
.page-industries .fs-stage-label { fill:rgba(239,236,225,.84); font-size:7.5px; }
.page-industries .fs-hover-note { opacity:0; transition:opacity .2s ease; pointer-events:none; }
.page-industries .fs-hover-note rect { fill:rgba(8,24,17,.96); stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-hover-note text { fill:rgba(239,236,225,.84); }
.page-industries .fs-primary-journey:has(.fs-stage:hover) .fs-stage:not(:hover),.page-industries .fs-primary-journey:has(.fs-stage:focus-visible) .fs-stage:not(:focus-visible) { opacity:.32; }
.page-industries .fs-stage:hover .fs-node,.page-industries .fs-stage:focus-visible .fs-node { transform:scale(1.045); }
.page-industries .fs-stage:hover .fs-hover-note,.page-industries .fs-stage:focus-visible .fs-hover-note { opacity:1; }
.page-industries .fs-status-annotations path { fill:none; stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-status-annotations text { fill:rgba(239,236,225,.62); }
.page-industries .fs-status-annotations .fs-accent-text { fill:var(--fs-accent); }
.page-industries .fs-trust-panel .fs-panel-bg { fill:#f3f0e7; stroke:rgba(239,236,225,.45); stroke-width:1; }
.page-industries .fs-trust-panel .fs-panel-leader { fill:none; stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-trust-panel .fs-panel-rule { fill:none; stroke:rgba(16,34,25,.18); stroke-width:1; }
.page-industries .fs-trust-panel text { fill:rgba(16,34,25,.58); font-size:7.5px; }
.page-industries .fs-trust-panel .fs-panel-title { fill:#102219; font-weight:700; }
.page-industries .fs-trust-panel .fs-panel-value { fill:#102219; }
.page-industries .fs-trust-panel .fs-panel-status { fill:var(--fs-accent); stroke:#102219; stroke-width:1; }
.page-industries .fs-audit-trail path { fill:none; stroke:rgba(239,236,225,.2); stroke-width:1; }
.page-industries .fs-audit-trail circle { fill:var(--fs-bg); stroke:var(--fs-accent); stroke-width:1; }
.page-industries .fs-audit-trail text { font-size:6.5px; fill:rgba(239,236,225,.38); }

@media (prefers-reduced-motion:no-preference) {
  html.js .page-industries .finance-system-map:not(.is-inview) .fs-primary-fill { stroke-dasharray:620; stroke-dashoffset:620; }
  html.js .page-industries .finance-system-map:not(.is-inview) .fs-stage,
  html.js .page-industries .finance-system-map:not(.is-inview) .fs-trust-panel { opacity:0; }
  .page-industries .finance-system-map.is-inview .fs-primary-fill { stroke-dasharray:620; animation:fsDrawPath .9s .1s ease-out both; }
  .page-industries .finance-system-map.is-inview .fs-stage { opacity:0; animation:fsStageIn .32s ease-out both; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(1) { animation-delay:.2s; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(2) { animation-delay:.3s; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(3) { animation-delay:.4s; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(4) { animation-delay:.5s; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(5) { animation-delay:.6s; }
  .page-industries .finance-system-map.is-inview .fs-stage:nth-of-type(6) { animation-delay:.7s; }
  .page-industries .fs-active-rings circle:first-child { transform-origin:431px 280px; animation:fsRingRotate 16s linear infinite; }
  .page-industries .fs-active-rings circle:last-child { transform-origin:431px 280px; animation:fsPulse 3.8s 1.5s ease-out infinite; }
  .page-industries .finance-system-map.is-inview .fs-trust-panel { animation:fsPanelIn .45s .78s ease-out both; }
  .page-industries .fs-panel-status { animation:fsStatusBlink 4.8s 1.2s step-end infinite; }
  .page-industries .industry-instrument.is-offscreen * { animation-play-state:paused; }
}
@keyframes fsDrawPath { from { stroke-dashoffset:620; } to { stroke-dashoffset:0; } }
@keyframes fsStageIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes fsRingRotate { to { transform:rotate(360deg); } }
@keyframes fsPulse { 0%,70%,100% { opacity:.22; transform:scale(1); } 82% { opacity:.55; transform:scale(1.18); } }
@keyframes fsPanelIn { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes fsStatusBlink { 0%,92% { opacity:1; } 93%,96% { opacity:.25; } 97%,100% { opacity:1; } }


@media (prefers-reduced-motion:reduce) {
  .page-industries .finance-system-map .fs-traveller { display:none; }
  .page-industries .finance-system-map * { animation:none!important; transition:none!important; }
}

/* Approach page — decision-led operating model */
.page-approach {
  --approach-gutter:clamp(1.25rem,4vw,4.75rem);
  --approach-container:min(1520px,calc(100vw - (var(--approach-gutter) * 2)));
  --approach-ink:#111311;
  --approach-green:#102219;
  --approach-paper:#f3f0e7;
  --approach-cream:#faf8f2;
  --approach-sage:#dce5da;
  --approach-gold:#f1b547;
  --approach-line:rgba(17,19,18,.18);
  background:var(--approach-paper);
  color:var(--approach-ink);
}
.page-approach .approach-shell { width:var(--approach-container); margin-inline:auto; }
.page-approach .approach-header { background:rgba(243,240,231,.94); border-bottom:1px solid var(--approach-line); backdrop-filter:blur(18px); }
.page-approach .header-inner { width:var(--approach-container); }
.page-approach .brand { width:clamp(145px,15vw,210px); }
.page-approach .brand-logo { width:100%; height:auto; }
.page-approach .header-cta { min-height:46px; padding:.75rem 1rem; display:flex; align-items:center; gap:1rem; border:0; background:var(--approach-ink); color:#fff; }
.page-approach .header-cta i { width:19px; height:19px; border:1px solid currentColor; border-radius:50%; position:relative; }
.page-approach .header-cta i::after { content:"→"; position:absolute; inset:-5px 0 0; display:grid; place-items:center; font-size:.72rem; }
.page-approach .mobile-menu-brand { width:180px; height:auto; margin-bottom:2rem; filter:brightness(0) invert(1); }

.page-approach .approach-page-hero { padding:0 var(--approach-gutter); background:var(--approach-paper); }
.page-approach .approach-hero-grid { min-height:1020px; padding:calc(var(--header-height) + clamp(5rem,8vw,8rem)) 0 clamp(5rem,8vw,8rem); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:center; gap:clamp(3rem,5vw,6rem) clamp(1rem,2vw,2rem); }
.page-approach .approach-hero-copy { grid-column:1 / 8; }
.page-approach .approach-hero-copy .eyebrow { margin-bottom:clamp(3rem,6vw,6rem); color:#59605b; }
.page-approach .approach-hero-copy h1 { max-width:13ch; margin:0; font-size:clamp(4.4rem,6.6vw,8.2rem); line-height:.89; letter-spacing:-.065em; text-wrap:balance; }
.page-approach .approach-hero-intro { max-width:44rem; margin:clamp(3rem,5vw,5rem) 0 0 auto; padding-left:clamp(0rem,5vw,6rem); }
.page-approach .approach-hero-intro p { color:#414842; font-size:clamp(1rem,1.12vw,1.15rem); line-height:1.65; }
.page-approach .approach-hero-copy > .button { margin:clamp(2rem,3vw,3rem) 0 0 auto; }

.page-approach .approach-protocol { grid-column:8 / -1; min-height:720px; display:grid; grid-template-rows:auto 1fr auto; background:var(--approach-green); color:#fff; box-shadow:0 28px 75px rgba(16,34,25,.17); overflow:hidden; }
.page-approach .approach-protocol-head,.page-approach .approach-protocol-foot { min-height:58px; padding:1rem 1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.16); font-family:var(--font-mono); font-size:.58rem; letter-spacing:.09em; text-transform:uppercase; }
.page-approach .approach-protocol-head strong { color:var(--approach-gold); font-weight:500; }
.page-approach .approach-protocol svg { width:100%; height:100%; min-height:600px; display:block; }
.page-approach .approach-protocol svg path,.page-approach .approach-protocol svg circle,.page-approach .approach-protocol svg rect { vector-effect:non-scaling-stroke; }
.page-approach .approach-protocol svg text { fill:rgba(255,255,255,.52); font-family:var(--font-mono); font-size:8px; letter-spacing:.08em; }
.page-approach .approach-protocol .ap-grid path { fill:none; stroke:rgba(255,255,255,.055); stroke-width:1; }
.page-approach .approach-protocol .ap-grid .ap-register { stroke:rgba(255,255,255,.28); }
.page-approach .ap-inputs rect { fill:rgba(7,21,15,.38); stroke:rgba(255,255,255,.32); stroke-width:1; }
.page-approach .approach-protocol .ap-value { fill:rgba(255,255,255,.82); }
.page-approach .ap-paths path { fill:none; stroke:rgba(255,255,255,.33); stroke-width:1; }
.page-approach .ap-paths .ap-path-active { stroke:var(--approach-gold); stroke-width:1.6; }
.page-approach .ap-decision circle { fill:var(--approach-green); stroke:var(--approach-gold); stroke-width:1; }
.page-approach .ap-decision circle:first-child { stroke-dasharray:3 5; opacity:.72; }
.page-approach .ap-decision path { fill:none; stroke:var(--approach-gold); stroke-width:1.7; }
.page-approach .ap-decision text { fill:var(--approach-gold); }
.page-approach .ap-readout rect { fill:#f4f0e6; stroke:rgba(255,255,255,.4); stroke-width:1; }
.page-approach .ap-readout path { fill:none; stroke:rgba(16,34,25,.2); stroke-width:1; }
.page-approach .ap-readout text { fill:rgba(16,34,25,.62); }
.page-approach .ap-readout .ap-value { fill:var(--approach-green); }
.page-approach .ap-readout .ap-accent { fill:#8e630d; }
.page-approach .ap-output rect { fill:var(--approach-gold); stroke:var(--approach-gold); }
.page-approach .ap-output text,.page-approach .ap-output .ap-value { fill:var(--approach-green); }
.page-approach .ap-audit path { fill:none; stroke:rgba(255,255,255,.22); stroke-width:1; }
.page-approach .ap-audit circle { fill:var(--approach-green); stroke:var(--approach-gold); stroke-width:1; }
.page-approach .ap-audit text { font-size:7px; }
.page-approach .approach-protocol-foot { border-top:1px solid rgba(255,255,255,.16); border-bottom:0; color:rgba(255,255,255,.52); }
.page-approach .approach-protocol-foot strong { color:#fff; font-weight:500; }

/* Protocol detail layer: zones, ports, assumption log, meters and staged reveal. */
.page-approach .ap-zones text { fill:rgba(255,255,255,.44); font-size:7px; letter-spacing:.14em; }
.page-approach .ap-zones .ap-coord { fill:rgba(255,255,255,.3); }
.page-approach .ap-ports circle { fill:rgba(255,255,255,.55); }
.page-approach .ap-decision .ap-decision-ticks { stroke:rgba(255,255,255,.3); stroke-width:1; }
.page-approach .ap-readout .ap-meter-track { fill:rgba(16,34,25,.14); stroke:none; }
.page-approach .ap-readout .ap-meter-fill { fill:var(--approach-gold); stroke:none; }
.page-approach .ap-assumptions path { fill:none; stroke:rgba(255,255,255,.2); stroke-width:1; }
.page-approach .ap-assumptions text { fill:rgba(255,255,255,.45); }
.page-approach .ap-assumptions .ap-value { fill:rgba(255,255,255,.75); }
.page-approach .ap-assumptions .ap-dot-ok { fill:var(--approach-gold); stroke:none; }
.page-approach .ap-assumptions .ap-dot-open { fill:none; stroke:var(--approach-gold); stroke-width:1.2; }
.page-approach .ap-audit .ap-audit-ticks { stroke:rgba(255,255,255,.14); stroke-width:1; }
.page-approach .ap-traveller { fill:var(--approach-gold); stroke:var(--approach-green); stroke-width:1; }
.page-approach .approach-protocol .ap-readout text { fill:rgba(16,34,25,.62); }
.page-approach .approach-protocol .ap-readout .ap-value { fill:var(--approach-green); }
.page-approach .approach-protocol .ap-readout .ap-accent { fill:#8e630d; }
.page-approach .approach-protocol .ap-output text,
.page-approach .approach-protocol .ap-output .ap-value { fill:var(--approach-green); }
@media (prefers-reduced-motion:no-preference) {
  .js .page-approach .approach-page-hero:not(.is-visible) :is(.ap-inputs g,.ap-decision,.ap-readout,.ap-assumptions,.ap-output,.ap-audit) { opacity:0; }
  .js .page-approach .approach-page-hero.is-visible .ap-inputs g { animation:apRise .45s ease-out both; }
  .js .page-approach .approach-page-hero.is-visible .ap-inputs g:nth-of-type(1) { animation-delay:.15s; }
  .js .page-approach .approach-page-hero.is-visible .ap-inputs g:nth-of-type(2) { animation-delay:.25s; }
  .js .page-approach .approach-page-hero.is-visible .ap-inputs g:nth-of-type(3) { animation-delay:.35s; }
  .js .page-approach .approach-page-hero.is-visible .ap-inputs g:nth-of-type(4) { animation-delay:.45s; }
  .js .page-approach .approach-page-hero.is-visible .ap-paths path { stroke-dasharray:620; stroke-dashoffset:620; animation:apDraw .9s .55s ease-out forwards; }
  .js .page-approach .approach-page-hero.is-visible .ap-paths .ap-path-active { animation-delay:1.15s; animation-duration:.7s; }
  .js .page-approach .approach-page-hero.is-visible .ap-decision { animation:apRise .45s .85s ease-out both; }
  .js .page-approach .approach-page-hero.is-visible .ap-readout { animation:apRise .45s 1.1s ease-out both; }
  .js .page-approach .approach-page-hero.is-visible .ap-assumptions { animation:apRise .45s 1.3s ease-out both; }
  .js .page-approach .approach-page-hero.is-visible .ap-output { animation:apRise .45s 1.55s ease-out both; }
  .js .page-approach .approach-page-hero.is-visible .ap-audit { animation:apRise .45s 1.75s ease-out both; }
  .page-approach .ap-decision circle:first-child { transform-box:fill-box; transform-origin:center; animation:fsRingRotate 20s linear infinite; }
  .page-approach .ap-assumptions .ap-dot-open { animation:fsStatusBlink 4.6s 2s step-end infinite; }
}
@keyframes apRise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes apDraw { to { stroke-dashoffset:0; } }

.page-approach .approach-principles,.page-approach .approach-movements,.page-approach .approach-engagements { padding:clamp(7rem,11vw,12rem) var(--approach-gutter); }
.page-approach .approach-principles { background:var(--approach-cream); }
.page-approach .approach-section-intro { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:2rem; margin-bottom:clamp(4rem,7vw,7rem); }
.page-approach .approach-section-intro .eyebrow { grid-column:1 / 4; color:#59605b; }
.page-approach .approach-section-intro h2 { grid-column:4 / 10; margin:0; font-size:clamp(4rem,6.5vw,8rem); line-height:.88; letter-spacing:-.065em; }
.page-approach .approach-section-intro > p:last-child { grid-column:10 / -1; align-self:end; margin:0; color:#454b46; font-size:1rem; line-height:1.65; }
.page-approach .approach-principle-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--approach-line); border-bottom:1px solid var(--approach-line); }
.page-approach .approach-principle-grid article { min-height:420px; padding:1.5rem; display:grid; grid-template-rows:auto 1fr auto; border-left:1px solid var(--approach-line); }
.page-approach .approach-principle-grid article:first-child { border-left:0; }
.page-approach .approach-principle-grid span { font-family:var(--font-mono); font-size:.62rem; color:#5f6660; letter-spacing:.08em; }
.page-approach .approach-principle-grid h3 { align-self:center; margin:0; color:var(--approach-ink); font-size:clamp(2rem,2.7vw,3.4rem); line-height:.95; letter-spacing:-.05em; }
.page-approach .approach-principle-grid p { margin:0; color:#424943; line-height:1.58; }

.page-approach .approach-movements { background:var(--approach-paper); }
.page-approach .approach-movement-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(.75rem,1.2vw,1.25rem); }
.page-approach .approach-movement { min-height:690px; padding:clamp(1.5rem,2.3vw,2.5rem); display:grid; grid-template-rows:auto 170px 1fr auto auto; gap:2rem; border:1px solid var(--approach-line); }
.page-approach .approach-movement-orient { background:var(--approach-green); color:#fff; }
.page-approach .approach-movement-prove { background:var(--approach-cream); color:var(--approach-ink); }
.page-approach .approach-movement-realize { background:var(--approach-sage); color:var(--approach-ink); }
.page-approach .approach-movement header { display:flex; justify-content:space-between; gap:1rem; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; }
.page-approach .approach-movement header span { opacity:.58; }
.page-approach .approach-movement header strong { font-weight:700; }
.page-approach .approach-movement-diagram { align-self:center; width:100%; height:130px; display:block; }
.page-approach .approach-movement-diagram path,
.page-approach .approach-movement-diagram rect,
.page-approach .approach-movement-diagram circle { vector-effect:non-scaling-stroke; }
.page-approach .approach-movement-diagram .ams-line { fill:none; stroke:currentColor; stroke-width:1.2; opacity:.62; }
.page-approach .approach-movement-diagram .ams-box { fill:none; stroke:currentColor; stroke-width:1.2; opacity:.62; }
.page-approach .approach-movement-diagram .ams-node { fill:none; stroke:currentColor; stroke-width:1.2; opacity:.78; }
.page-approach .approach-movement-diagram .ams-fill { fill:var(--approach-gold); stroke:none; }
.page-approach .approach-movement-diagram .ams-accent { fill:none; stroke:var(--approach-gold); stroke-width:1.4; }
.page-approach .approach-movement-diagram .ams-dashed { fill:none; stroke:currentColor; stroke-width:1.2; stroke-dasharray:4 5; opacity:.5; }
.page-approach .approach-movement-diagram .ams-dashed-ring { fill:none; stroke:var(--approach-gold); stroke-width:1; stroke-dasharray:3 5; opacity:.7; transform-box:fill-box; transform-origin:center; }
@media (prefers-reduced-motion:no-preference) {
  .js .page-approach .approach-movement-diagram .ams-dashed-ring { animation:fsRingRotate 16s linear infinite; }
}
.page-approach .approach-movement h3 { align-self:end; margin:0; color:inherit; font-size:clamp(2.5rem,3.6vw,4.6rem); line-height:.92; letter-spacing:-.055em; }
.page-approach .approach-movement > p { max-width:34rem; margin:0; color:inherit; opacity:.72; line-height:1.6; }
.page-approach .approach-movement footer { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid currentColor; }
.page-approach .approach-movement footer a { padding:1rem 0 0; color:inherit; text-decoration:none; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.07em; text-transform:uppercase; }
.page-approach .approach-movement footer a + a { padding-left:1rem; border-left:1px solid currentColor; }
.page-approach .approach-movement footer a span { display:inline-block; position:relative; padding-bottom:.3rem; transition:transform .3s ease; }
.page-approach .approach-movement footer a span::after { content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--approach-gold); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.page-approach .approach-movement footer a:hover span,
.page-approach .approach-movement footer a:focus-visible span { transform:translateX(3px); }
.page-approach .approach-movement footer a:hover span::after,
.page-approach .approach-movement footer a:focus-visible span::after { transform:scaleX(1); }
.page-approach .approach-movement footer a:focus-visible { outline:2px solid var(--approach-gold); outline-offset:2px; }

.page-approach .approach-ledger { padding:clamp(7rem,11vw,12rem) var(--approach-gutter); background:var(--approach-green); color:#fff; }
.page-approach .approach-ledger-intro { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:2rem; padding-bottom:clamp(5rem,8vw,8rem); }
.page-approach .approach-ledger-intro .eyebrow { grid-column:1 / 4; color:rgba(255,255,255,.54); }
.page-approach .approach-ledger-intro h2 { grid-column:4 / 9; margin:0; color:#fff; font-size:clamp(4rem,6.5vw,8rem); line-height:.88; letter-spacing:-.065em; }
.page-approach .approach-ledger-intro > p:last-child { grid-column:9 / -1; align-self:end; max-width:30rem; margin:0; color:rgba(255,255,255,.68); line-height:1.65; }
.page-approach .approach-stage { min-height:470px; padding:clamp(2rem,3vw,3.25rem) 0; display:grid; grid-template-columns:1.1fr 2fr 1.25fr 1.25fr; grid-template-rows:auto minmax(clamp(2rem,4vw,4rem),1fr) auto; gap:2rem; border-top:1px solid rgba(255,255,255,.2); scroll-margin-top:calc(var(--header-height) + 1.5rem); }
.page-approach .approach-stage:last-child { border-bottom:1px solid rgba(255,255,255,.2); }
.page-approach .approach-stage-number { grid-column:1; display:flex; flex-wrap:wrap; align-content:start; gap:.9rem 1.25rem; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; }
.page-approach .approach-stage-number span { color:var(--approach-gold); }
.page-approach .approach-stage-number strong { font-weight:500; }
.page-approach .approach-stage-meter {
  flex-basis:100%;
  max-width:126px;
  height:4px;
  display:block;
  background:linear-gradient(90deg,var(--approach-gold) calc(var(--filled) * 16.66%),rgba(255,255,255,.18) 0);
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 17px,transparent 17px 21px);
  mask:repeating-linear-gradient(90deg,#000 0 17px,transparent 17px 21px);
}
.page-approach .approach-stage h3 { grid-column:2 / -1; max-width:900px; margin:0; color:#fff; font-size:clamp(3.1rem,5vw,6.2rem); line-height:.92; letter-spacing:-.058em; text-wrap:balance; }
.page-approach .approach-stage-column { grid-row:3; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.17); }
.page-approach .approach-stage h3 + .approach-stage-column { grid-column:2; }
.page-approach .approach-stage h3 + .approach-stage-column + .approach-stage-column { grid-column:3; }
.page-approach .approach-stage h4,.page-approach .approach-stage-result span { margin:0 0 1.25rem; color:rgba(255,255,255,.48); font-family:var(--font-mono); font-size:.58rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.page-approach .approach-stage-column p,.page-approach .approach-stage-column li { color:rgba(255,255,255,.7); font-size:.9rem; line-height:1.58; }
.page-approach .approach-stage-column ul { margin:0; padding:0; list-style:none; }
.page-approach .approach-stage-column li { padding:.45rem 0; border-bottom:1px solid rgba(255,255,255,.1); }
.page-approach .approach-stage-result { grid-column:4; grid-row:3; padding:1.2rem; align-self:start; background:var(--approach-gold); color:var(--approach-green); }
.page-approach .approach-stage-result span { display:block; color:rgba(16,34,25,.6); }
.page-approach .approach-stage-result strong { display:block; font-family:var(--font-display); font-size:clamp(1.5rem,2vw,2.25rem); font-weight:500; line-height:1.05; letter-spacing:-.04em; }

.page-approach .approach-engagements { background:var(--approach-cream); }
.page-approach .approach-engagement-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--approach-line); border-bottom:1px solid var(--approach-line); }
.page-approach .approach-engagement-grid article { min-height:390px; padding:1.5rem; display:grid; grid-template-rows:auto 1fr auto auto; border-left:1px solid var(--approach-line); }
.page-approach .approach-engagement-grid article:first-child { border-left:0; }
.page-approach .approach-engagement-grid span { font-family:var(--font-mono); font-size:.62rem; color:#5f6660; letter-spacing:.09em; text-transform:uppercase; }
.page-approach .approach-engagement-grid h3 { align-self:center; margin:0; color:var(--approach-ink); font-size:clamp(2.6rem,4vw,5rem); line-height:.92; letter-spacing:-.055em; }
.page-approach .approach-engagement-grid p { margin:0 0 2rem; color:#434944; line-height:1.6; }
.page-approach .approach-engagement-grid strong { padding-top:1rem; border-top:1px solid var(--approach-line); font-family:var(--font-mono); font-size:.64rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }

/* Quiet hover states and anchor offsets shared across the page. */
.page-approach .approach-principles,
.page-approach .approach-movements,
.page-approach .approach-ledger,
.page-approach .approach-engagements { scroll-margin-top:calc(var(--header-height) + 1rem); }
.page-approach .approach-principle-grid article,
.page-approach .approach-engagement-grid article { position:relative; transition:background .35s ease; }
.page-approach .approach-principle-grid article::before,
.page-approach .approach-engagement-grid article::before { content:""; position:absolute; top:-1px; left:0; right:0; height:2px; background:var(--approach-gold); transform:scaleX(0); transform-origin:left; transition:transform .45s ease; }
.page-approach .approach-principle-grid article:hover,
.page-approach .approach-engagement-grid article:hover { background:rgba(255,255,255,.5); }
.page-approach .approach-principle-grid article:hover::before,
.page-approach .approach-engagement-grid article:hover::before { transform:scaleX(1); }
.page-approach .approach-principle-grid article:hover span,
.page-approach .approach-engagement-grid article:hover span { color:#8e630d; }

.page-approach .approach-closing-cta { padding:0 var(--approach-gutter); background:#111311; color:#fff; }
.page-approach .approach-closing-cta .approach-shell { min-height:760px; padding:clamp(6rem,10vw,10rem) 0; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-content:center; gap:2rem; }
.page-approach .approach-closing-cta .eyebrow { grid-column:1 / -1; color:rgba(255,255,255,.58); }
.page-approach .approach-closing-cta h2 { grid-column:1 / 9; margin:2rem 0 0; color:#fff; font-size:clamp(4rem,7vw,8.5rem); line-height:.88; letter-spacing:-.065em; }
.page-approach .approach-closing-cta > .approach-shell > div { grid-column:9 / -1; align-self:end; }
.page-approach .approach-closing-cta p { color:rgba(255,255,255,.7); line-height:1.6; }
.page-approach .approach-closing-cta .button { min-height:64px; margin-top:1.5rem; background:#f5f1e7; color:#111311; }

.page-approach .approach-footer { position:relative; padding:clamp(5rem,8vw,8rem) var(--approach-gutter) 2rem; background:#f0eadc; color:#111311; }
.page-approach .approach-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-approach .approach-footer-brand img { width:100%; height:auto; }
.page-approach .approach-footer .footer-grid,.page-approach .approach-footer .footer-bottom { width:var(--approach-container); }
.page-approach .approach-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-approach .approach-footer .footer-lead { grid-column:1 / 8; }
.page-approach .approach-footer .footer-lead h2 { max-width:800px; color:#111311; font-size:clamp(2.3rem,3.7vw,4.5rem); }
.page-approach .approach-footer .footer-lead .eyebrow,.page-approach .approach-footer .footer-links a,.page-approach .approach-footer .footer-links span,.page-approach .approach-footer .footer-bottom { color:#3d443f; }
.page-approach .approach-footer .footer-lead .button-light { background:#111311; color:#fff; }
.page-approach .approach-footer .footer-links { grid-column:8 / -1; }
.page-approach .approach-footer .footer-links a:hover { color:#006c3a; }
.page-approach .approach-footer .footer-bottom { border-color:rgba(17,19,18,.16); }

@media (max-width:1100px) {
  .page-approach .approach-hero-copy,.page-approach .approach-protocol { grid-column:1 / -1; }
  .page-approach .approach-hero-copy h1 { max-width:11ch; }
  .page-approach .approach-hero-intro { margin-left:0; padding-left:0; }
  .page-approach .approach-hero-copy > .button { margin-left:0; }
  .page-approach .approach-protocol { min-height:650px; }
  .page-approach .approach-section-intro .eyebrow,.page-approach .approach-ledger-intro .eyebrow { grid-column:1 / 4; }
  .page-approach .approach-section-intro h2,.page-approach .approach-ledger-intro h2 { grid-column:4 / 10; }
  .page-approach .approach-section-intro > p:last-child { grid-column:10 / -1; }
  .page-approach .approach-principle-grid { grid-template-columns:1fr 1fr; }
  .page-approach .approach-principle-grid article:nth-child(3) { border-left:0; border-top:1px solid var(--approach-line); }
  .page-approach .approach-principle-grid article:nth-child(4) { border-top:1px solid var(--approach-line); }
  .page-approach .approach-movement-grid { grid-template-columns:1fr; }
  .page-approach .approach-movement { min-height:570px; grid-template-columns:.8fr 1.2fr; grid-template-rows:auto 1fr auto auto; }
  .page-approach .approach-movement header { grid-column:1 / -1; }
  .page-approach .approach-movement-diagram { grid-column:1; grid-row:2 / 4; align-self:stretch; height:auto; }
  .page-approach .approach-movement h3,.page-approach .approach-movement > p { grid-column:2; }
  .page-approach .approach-movement footer { grid-column:1 / -1; }
  .page-approach .approach-stage { grid-template-columns:.65fr 1.6fr 1fr; }
  .page-approach .approach-stage h3 { grid-column:2 / -1; }
  .page-approach .approach-stage h3 + .approach-stage-column { grid-column:2; }
  .page-approach .approach-stage h3 + .approach-stage-column + .approach-stage-column { grid-column:3; }
  .page-approach .approach-stage-result { grid-column:2 / -1; grid-row:4; }
}

@media (max-width:960px) {
  .page-approach .header-cta { display:none; }
  .page-approach .menu-toggle { display:block; }
  .page-approach .header-inner { grid-template-columns:1fr auto; }
  .page-approach .approach-section-intro .eyebrow,.page-approach .approach-section-intro h2,.page-approach .approach-section-intro > p:last-child,.page-approach .approach-ledger-intro .eyebrow,.page-approach .approach-ledger-intro h2,.page-approach .approach-ledger-intro > p:last-child { grid-column:1 / -1; }
  .page-approach .approach-engagement-grid { grid-template-columns:1fr; }
  .page-approach .approach-engagement-grid article { min-height:320px; border-left:0; border-top:1px solid var(--approach-line); }
  .page-approach .approach-engagement-grid article:first-child { border-top:0; }
  .page-approach .approach-footer .footer-lead { grid-column:1 / 8; }
  .page-approach .approach-footer .footer-links { grid-column:8 / -1; }
}

@media (max-width:680px) {
  .page-approach .brand { width:142px; }
  .page-approach .approach-hero-grid { min-height:0; padding-top:calc(var(--header-height) + 4rem); grid-template-columns:minmax(0,1fr); }
  .page-approach .approach-hero-copy,.page-approach .approach-protocol { grid-column:1; }
  .page-approach .approach-hero-copy .eyebrow { margin-bottom:3rem; }
  .page-approach .approach-hero-copy h1 { max-width:none; font-size:clamp(3.55rem,15vw,5.1rem); }
  .page-approach .approach-protocol { min-height:520px; }
  .page-approach .approach-protocol svg { min-height:430px; }
  .page-approach .approach-protocol-head { align-items:flex-start; flex-direction:column; }
  .page-approach .approach-protocol-foot { display:grid; grid-template-columns:1fr; }
  .page-approach .approach-principles,.page-approach .approach-movements,.page-approach .approach-engagements,.page-approach .approach-ledger { padding:6rem var(--approach-gutter); }
  .page-approach .approach-section-intro,.page-approach .approach-ledger-intro { grid-template-columns:1fr; margin-bottom:3.5rem; }
  .page-approach .approach-section-intro h2,.page-approach .approach-ledger-intro h2 { font-size:clamp(3.5rem,14.5vw,5rem); }
  .page-approach .approach-principle-grid { grid-template-columns:1fr; }
  .page-approach .approach-principle-grid article,.page-approach .approach-principle-grid article:nth-child(3),.page-approach .approach-principle-grid article:nth-child(4) { min-height:360px; border-left:0; border-top:1px solid var(--approach-line); }
  .page-approach .approach-principle-grid article:first-child { border-top:0; }
  .page-approach .approach-movement { min-height:650px; padding:1.5rem; display:grid; grid-template-columns:1fr; grid-template-rows:auto 120px 1fr auto auto; }
  .page-approach .approach-movement header,.page-approach .approach-movement-diagram,.page-approach .approach-movement h3,.page-approach .approach-movement > p,.page-approach .approach-movement footer { grid-column:1; grid-row:auto; }
  .page-approach .approach-movement-diagram { height:110px; }
  .page-approach .approach-movement h3 { font-size:clamp(2.75rem,12vw,4rem); }
  .page-approach .approach-stage { min-height:0; padding:3rem 0; display:grid; grid-template-columns:1fr; grid-template-rows:auto; gap:2rem; }
  .page-approach .approach-stage-number,.page-approach .approach-stage h3,.page-approach .approach-stage h3 + .approach-stage-column,.page-approach .approach-stage h3 + .approach-stage-column + .approach-stage-column,.page-approach .approach-stage-result { grid-column:1; grid-row:auto; }
  .page-approach .approach-stage h3 { font-size:clamp(3.1rem,13vw,4.6rem); }
  .page-approach .approach-stage-result { padding:1.25rem; }
  .page-approach .approach-engagement-grid article { min-height:340px; }
  .page-approach .approach-closing-cta .approach-shell { min-height:700px; grid-template-columns:1fr; }
  .page-approach .approach-closing-cta .eyebrow,.page-approach .approach-closing-cta h2,.page-approach .approach-closing-cta > .approach-shell > div { grid-column:1; }
  .page-approach .approach-closing-cta h2 { font-size:clamp(3.6rem,15vw,5.2rem); }
  .page-approach .approach-footer-brand { width:220px; }
  .page-approach .approach-footer .footer-grid { grid-template-columns:1fr; }
  .page-approach .approach-footer .footer-lead,.page-approach .approach-footer .footer-links { grid-column:1; }
  .page-approach .approach-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-approach .approach-footer .footer-links > div:last-child { grid-column:1 / -1; }
}

@media (prefers-reduced-motion:reduce) {
  .page-approach .ap-traveller { display:none; }
  .page-approach .approach-protocol *,
  .page-approach .approach-movement-diagram *,
  .page-approach .approach-stage-meter,
  .page-approach .approach-principle-grid article,
  .page-approach .approach-principle-grid article::before,
  .page-approach .approach-engagement-grid article,
  .page-approach .approach-engagement-grid article::before,
  .page-approach .approach-movement footer a span,
  .page-approach .approach-movement footer a span::after { animation:none !important; transition:none !important; }
}

/* Shared system-plate grammar — five sector instruments built on one visual system.
   Dark plates (government, enterprise) use light line work on deep green;
   light plates (healthcare, utilities, logistics) invert the same roles. */
.page-industries .system-plate {
  --sp-accent:var(--industry-accent);
  --sp-bg:var(--industries-green);
  --sp-ink-strong:rgba(239,236,225,.84);
  --sp-ink:rgba(239,236,225,.56);
  --sp-ink-soft:rgba(239,236,225,.36);
  --sp-ink-faint:rgba(239,236,225,.13);
  --sp-ink-ghost:rgba(239,236,225,.05);
  --sp-box-fill:rgba(8,24,17,.74);
  --sp-note-bg:rgba(8,24,17,.96);
  --sp-note-ink:rgba(239,236,225,.88);
  --sp-panel-bg:#f3f0e7;
  --sp-panel-ink:#102219;
  --sp-panel-ink-soft:rgba(16,34,25,.58);
  --sp-panel-rule:rgba(16,34,25,.18);
}
.page-industries .plate-healthcare,
.page-industries .plate-utilities,
.page-industries .plate-logistics {
  --sp-ink-strong:rgba(17,19,18,.8);
  --sp-ink:rgba(17,19,18,.55);
  --sp-ink-soft:rgba(17,19,18,.38);
  --sp-ink-faint:rgba(17,19,18,.14);
  --sp-ink-ghost:rgba(17,19,18,.055);
  --sp-bg:#f5f1e7;
  --sp-box-fill:rgba(251,249,242,.9);
  --sp-note-bg:#102219;
  --sp-note-ink:rgba(239,236,225,.9);
  --sp-panel-bg:#102219;
  --sp-panel-ink:#efece1;
  --sp-panel-ink-soft:rgba(239,236,225,.6);
  --sp-panel-rule:rgba(239,236,225,.22);
}
.page-industries .system-plate svg { color:var(--sp-ink); }
.page-industries .system-plate text { fill:var(--sp-ink-soft); font-family:var(--font-mono); font-size:8px; letter-spacing:.08em; }
.page-industries .system-plate .sp-grid path { fill:none; }
.page-industries .system-plate .sp-grid-major { stroke:var(--sp-ink-faint); stroke-width:1; }
.page-industries .system-plate .sp-grid-minor { stroke:var(--sp-ink-ghost); stroke-width:1; }
.page-industries .system-plate .sp-register { stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-coordinates text { font-size:7px; }
.page-industries .system-plate .sp-zone-labels text { font-size:7px; fill:var(--sp-ink); letter-spacing:.14em; }
.page-industries .system-plate .sp-accent-text { fill:var(--sp-accent); }
.page-industries .system-plate .sp-layer-tag { font-size:7px; fill:var(--sp-ink); letter-spacing:.14em; }
.page-industries .system-plate .sp-micro text,.page-industries .system-plate .sp-micro-text { font-size:6.5px; fill:var(--sp-ink-soft); }
.page-industries .system-plate .sp-status-text { font-size:7.5px; fill:var(--sp-ink); }
.page-industries .system-plate .sp-muted-text { fill:var(--sp-ink-soft); }
.page-industries .system-plate .sp-box rect { fill:var(--sp-box-fill); stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-box text { fill:var(--sp-ink); font-size:7px; }
.page-industries .system-plate .sp-box .sp-value { fill:var(--sp-ink-strong); }
.page-industries .system-plate .sp-box-dashed rect { fill:transparent; stroke-dasharray:4 4; }
.page-industries .system-plate .sp-box-active rect { stroke:var(--sp-accent); }
.page-industries .system-plate .sp-links > path { fill:none; stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-link-accent { fill:none; stroke:var(--sp-accent); stroke-width:1.4; }
.page-industries .system-plate .sp-track-line { fill:none; stroke:var(--sp-ink-soft); stroke-width:1.2; }
.page-industries .system-plate .sp-flow { fill:none; stroke:var(--sp-accent); stroke-width:2; }
.page-industries .system-plate .sp-dashed-flow { fill:none; stroke:var(--sp-ink-soft); stroke-width:1.2; stroke-dasharray:5 6; }
.page-industries .system-plate .sp-arrows { fill:none; stroke:var(--sp-accent); stroke-width:1.4; }
.page-industries .system-plate .sp-return { fill:none; stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-spokes { fill:none; stroke:var(--sp-ink-soft); stroke-width:1; stroke-dasharray:2 5; }
.page-industries .system-plate .sp-port { fill:var(--sp-ink); }
.page-industries .system-plate .sp-gate { fill:var(--sp-bg); stroke:var(--sp-accent); stroke-width:1.2; }
.page-industries .plate-government .sp-gate { fill:none; }
.page-industries .system-plate .sp-hub-box { fill:var(--sp-box-fill); stroke:var(--sp-ink-strong); stroke-width:1.2; }
.page-industries .system-plate .sp-hub-lines,.page-industries .system-plate .sp-hub-divide { fill:none; stroke:var(--sp-ink); stroke-width:1; }
.page-industries .system-plate .sp-hub-divide { opacity:.45; }
.page-industries .system-plate .sp-hub-clean { fill:none; stroke:var(--sp-accent); stroke-width:1.4; }
.page-industries .system-plate .sp-hub-title { fill:var(--sp-ink-strong); font-size:7.5px; }
.page-industries .system-plate .sp-stage { cursor:default; outline:none; }
.page-industries .system-plate .sp-stage .sp-node,.page-industries .system-plate .sp-stage .sp-box { transform-box:fill-box; transform-origin:center; transition:opacity .2s ease,transform .2s ease; }
.page-industries .system-plate .sp-node path,.page-industries .system-plate .sp-node circle,.page-industries .system-plate .sp-node rect { fill:var(--sp-bg); stroke:var(--sp-ink-strong); stroke-width:1.2; }
.page-industries .system-plate .sp-node path { fill:none; }
.page-industries .system-plate .sp-node-active circle,.page-industries .system-plate .sp-node-active rect { fill:var(--sp-accent); stroke:var(--sp-accent); }
.page-industries .system-plate .sp-node-active .sp-node-glyph { fill:none; stroke:var(--sp-bg); stroke-width:1.7; }
.page-industries .system-plate .sp-node-scan circle:first-child { fill:none; stroke:var(--sp-accent); }
.page-industries .system-plate .sp-node-scan circle:last-child { fill:var(--sp-accent); stroke:none; }
.page-industries .system-plate .sp-active-rings circle { fill:none; stroke:var(--sp-accent); stroke-width:1; }
.page-industries .system-plate .sp-active-rings circle:first-child { stroke-dasharray:3 5; opacity:.6; transform-box:fill-box; transform-origin:center; }
.page-industries .system-plate .sp-active-rings circle:last-child { opacity:.25; transform-box:fill-box; transform-origin:center; }
.page-industries .system-plate .sp-stage-label { fill:var(--sp-ink-strong); font-size:7.5px; }
.page-industries .system-plate .sp-note { opacity:0; transition:opacity .2s ease; pointer-events:none; }
.page-industries .system-plate .sp-note rect { fill:var(--sp-note-bg); stroke:var(--sp-accent); stroke-width:1; }
.page-industries .system-plate .sp-note text { fill:var(--sp-note-ink); font-size:7.5px; }
.page-industries .system-plate .sp-stages:has(.sp-stage:hover) .sp-stage:not(:hover) { opacity:.32; }
.page-industries .system-plate .sp-stage:hover .sp-node,.page-industries .system-plate .sp-stage:hover > .sp-box { transform:scale(1.045); }
.page-industries .system-plate .sp-stage:hover .sp-note { opacity:1; }
.page-industries .system-plate .sp-panel-bg { fill:var(--sp-panel-bg); stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-panel-leader { fill:none; stroke:var(--sp-accent); stroke-width:1; opacity:.8; }
.page-industries .system-plate .sp-panel-rule { fill:none; stroke:var(--sp-panel-rule); stroke-width:1; }
.page-industries .system-plate .sp-panel text { fill:var(--sp-panel-ink-soft); font-size:7px; }
.page-industries .system-plate .sp-panel .sp-panel-title { fill:var(--sp-panel-ink); font-size:7.5px; font-weight:700; }
.page-industries .system-plate .sp-panel .sp-panel-value { fill:var(--sp-panel-ink); }
.page-industries .system-plate .sp-panel-status { fill:var(--sp-accent); stroke:var(--sp-panel-ink); stroke-width:1; }
.page-industries .system-plate .sp-chip rect { fill:var(--sp-bg); stroke:var(--sp-accent); stroke-width:1.2; }
.page-industries .system-plate .sp-chip text { fill:var(--sp-ink); font-size:7px; }
.page-industries .system-plate .sp-chip .sp-chip-strong { fill:var(--sp-ink-strong); font-size:7.5px; }
.page-industries .system-plate .sp-chip .sp-panel-leader { opacity:.6; }
.page-industries .system-plate .sp-trail path { fill:none; stroke:var(--sp-ink-faint); stroke-width:1; }
.page-industries .system-plate .sp-trail circle { fill:var(--sp-bg); stroke:var(--sp-accent); stroke-width:1; }
.page-industries .system-plate .sp-trail text { font-size:6.5px; fill:var(--sp-ink-soft); }
.page-industries .system-plate .sp-net-line { fill:none; stroke:var(--sp-ink-soft); stroke-width:1.2; }
.page-industries .system-plate .sp-net-node { fill:var(--sp-bg); stroke:var(--sp-ink-strong); stroke-width:1.2; }
.page-industries .system-plate .sp-net-junction { fill:var(--sp-ink-strong); }
.page-industries .system-plate .sp-net-dead { fill:none; stroke:var(--sp-ink-soft); stroke-width:1.2; stroke-dasharray:3 4; opacity:.7; }
.page-industries .system-plate .sp-switch path { fill:none; stroke:var(--sp-ink-strong); stroke-width:1.2; }
.page-industries .system-plate .sp-switch circle { fill:var(--sp-ink-strong); }
.page-industries .system-plate .sp-fault-ring { fill:none; stroke:var(--sp-accent); stroke-width:1.2; stroke-dasharray:3 4; transform-box:fill-box; transform-origin:center; }
.page-industries .system-plate .sp-x { fill:none; stroke:var(--sp-accent); stroke-width:1.6; }
.page-industries .system-plate .sp-x-small { stroke-width:1.2; opacity:.7; }
.page-industries .system-plate .sp-ring-progress { fill:none; stroke:var(--sp-accent); stroke-width:2; stroke-dasharray:128.2 60.3; transform:rotate(-90deg); transform-box:fill-box; transform-origin:center; }
.page-industries .system-plate .sp-crew rect { fill:var(--sp-accent); stroke:var(--sp-bg); stroke-width:1; }
.page-industries .system-plate .sp-cell { fill:none; stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-cell-on { fill:var(--sp-accent); fill-opacity:.42; stroke:var(--sp-accent); stroke-opacity:.65; }
.page-industries .system-plate .sp-matrix-row-labels text { font-size:6.5px; }
.page-industries .system-plate .sp-table rect { fill:var(--sp-box-fill); stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-table path { fill:none; stroke:var(--sp-ink-faint); stroke-width:1; }
.page-industries .system-plate .sp-row-mark { fill:var(--sp-accent); }
.page-industries .system-plate .sp-chart-base { fill:none; stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-bar { fill:var(--sp-ink-faint); stroke:var(--sp-ink-soft); stroke-width:1; }
.page-industries .system-plate .sp-bar-active { fill:var(--sp-accent); stroke:var(--sp-accent); }
.page-industries .system-plate .sp-traveller { fill:var(--sp-accent); stroke:var(--sp-bg); stroke-width:1; }
.page-industries .system-plate .sp-traveller-alt { opacity:.7; }

/* Mobile plates — compact recompositions swapped in below 680px; no horizontal scroll.
   Scoped to .industry-instrument so the finance plate (whose mobile svg carries the
   system-plate class itself) is covered without restyling its desktop fs-* artwork. */
.page-industries .industry-instrument .sp-mobile { display:none; }
.page-industries .industry-instrument .sp-mobile text { font-size:9.5px; }
.page-industries .industry-instrument .sp-mobile .sp-zone-labels text { font-size:8.5px; }
.page-industries .industry-instrument .sp-mobile .sp-stage-label { font-size:10px; }
.page-industries .industry-instrument .sp-mobile .sp-status-text { font-size:9px; }
.page-industries .industry-instrument .sp-mobile .sp-box text { font-size:8.5px; }
.page-industries .industry-instrument .sp-mobile .sp-box .sp-value { font-size:9.5px; }
.page-industries .industry-instrument .sp-mobile .sp-micro-text,.page-industries .industry-instrument .sp-mobile .sp-micro text { font-size:8px; }
.page-industries .industry-instrument .sp-mobile .sp-chip text { font-size:8.5px; }
.page-industries .industry-instrument .sp-mobile .sp-chip .sp-chip-strong { font-size:9.5px; }
.page-industries .industry-instrument .sp-mobile .sp-panel text { font-size:9px; }
.page-industries .industry-instrument .sp-mobile .sp-panel .sp-panel-title { font-size:9.5px; }
.page-industries .industry-instrument .sp-mobile .sp-hub-title { font-size:9px; }

@media (prefers-reduced-motion:no-preference) {
  html.js .page-industries .system-plate:not(.is-inview) .sp-flow { stroke-dasharray:1100; stroke-dashoffset:1100; }
  html.js .page-industries .system-plate:not(.is-inview) .sp-stage,
  html.js .page-industries .system-plate:not(.is-inview) .sp-panel,
  html.js .page-industries .system-plate:not(.is-inview) .sp-chip,
  html.js .page-industries .system-plate:not(.is-inview) .sp-hub { opacity:0; }
  html.js .page-industries .system-plate:not(.is-inview) .sp-ring-progress { stroke-dasharray:0 188.5; }
  .page-industries .system-plate.is-inview .sp-flow { stroke-dasharray:1100; animation:spDraw 1.2s .12s ease-out both; }
  .page-industries .system-plate.is-inview .sp-flow-late { animation-delay:.8s; }
  .page-industries .system-plate.is-inview .sp-hub { animation:fsPanelIn .5s .15s ease-out both; }
  .page-industries .system-plate.is-inview .sp-stage { opacity:0; animation:fsStageIn .32s ease-out both; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(1) { animation-delay:.25s; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(2) { animation-delay:.37s; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(3) { animation-delay:.49s; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(4) { animation-delay:.61s; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(5) { animation-delay:.73s; }
  .page-industries .system-plate.is-inview .sp-stage:nth-of-type(6) { animation-delay:.85s; }
  .page-industries .system-plate.is-inview .sp-panel { animation:fsPanelIn .45s .95s ease-out both; }
  .page-industries .system-plate.is-inview .sp-chip { animation:fsPanelIn .45s 1.1s ease-out both; }
  .page-industries .system-plate.is-inview .sp-ring-progress { animation:spRingFill 1.4s 1s ease-out both; }
  .page-industries .system-plate .sp-active-rings circle:first-child { animation:fsRingRotate 16s linear infinite; }
  .page-industries .system-plate .sp-active-rings circle:last-child { animation:fsPulse 4s 1.6s ease-out infinite; }
  .page-industries .system-plate .sp-blink { animation:fsStatusBlink 4.8s 1.4s step-end infinite; }
  .page-industries .system-plate .sp-fault-ring { animation:fsRingRotate 22s linear infinite; }
}
@keyframes spDraw { from { stroke-dashoffset:1100; } to { stroke-dashoffset:0; } }
@keyframes spRingFill { from { stroke-dasharray:0 188.5; } to { stroke-dasharray:128.2 60.3; } }

@media (max-width:680px) {
  .page-industries .industry-instrument { min-height:0; }
  .page-industries .industry-instrument svg:not(.sp-mobile) { display:none; }
  .page-industries .industry-instrument .sp-mobile { display:block; width:100%; height:auto; min-height:0; }
}

@media (prefers-reduced-motion:reduce) {
  .page-industries .system-plate .sp-traveller { display:none; }
  .page-industries .system-plate * { animation:none!important; transition:none!important; }
}

@media (max-width:960px) {
  .page-industries .industries-hero-grid { min-height:0; padding-top:calc(var(--header-height) + 5rem); }
  .page-industries .industries-hero-copy,.page-industries .industries-hero-context { grid-column:1 / -1; }
  .page-industries .industries-hero-context { min-height:580px; }
  .page-industries .industries-index-intro,.page-industries .industries-index-grid { grid-column:1 / -1; }
  .page-industries .industry-instrument,.page-industries .industry-chapter:nth-of-type(even) .industry-instrument { grid-column:1 / 8; }
  .page-industries .industry-chapter-notes,.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-notes { grid-column:8 / -1; grid-row:auto; }
  .page-industries .industry-chapter-link,.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-link { grid-column:8 / -1; }
}

@media (max-width:680px) {
  .page-industries .industries-hero-grid { display:grid; grid-template-columns:minmax(0,1fr); padding-top:calc(var(--header-height) + 4rem); }
  .page-industries .industries-hero-copy,.page-industries .industries-hero-context { grid-column:1; }
  .page-industries .industries-hero-copy h1 { font-size:clamp(3.6rem,15vw,5.1rem); }
  .page-industries .industries-hero-copy .eyebrow { margin-bottom:3rem; }
  .page-industries .industries-hero-context { min-height:520px; }
  .page-industries .hero-context-grid { padding:.9rem; }
  .page-industries .hero-context-grid article { min-height:140px; padding:.9rem; }
  .page-industries .hero-context-grid strong { font-size:clamp(1.15rem,5.4vw,1.6rem); letter-spacing:-.03em; }
  .page-industries .hero-context-grid span,.page-industries .hero-context-grid small,.page-industries .hero-context-output span { font-size:.56rem; }
  .page-industries .hero-context-output strong { font-size:clamp(1.3rem,6vw,1.8rem); }
  .page-industries .industries-index-intro h2 { font-size:clamp(3.5rem,14vw,5rem); }
  .page-industries .industry-chapter header h2,.page-industries .industry-chapter header > p:last-child { grid-column:1; }
  .page-industries .industry-chapter header h2 { font-size:clamp(3.7rem,15vw,5.4rem); }
  .page-industries .industry-instrument,.page-industries .industry-chapter:nth-of-type(even) .industry-instrument { grid-column:1; min-height:360px; }
  .page-industries .industry-instrument svg { min-height:360px; }
  .page-industries .industry-chapter-notes,.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-notes { grid-column:1; grid-row:auto; }
  .page-industries .industry-chapter-link,.page-industries .industry-chapter:nth-of-type(even) .industry-chapter-link { grid-column:1; }
}

/* Final hero layout overrides: centered copy above an uncrowded, wide system model. */
.page-home .home-hero {
  min-height:0;
  padding:calc(76px + clamp(2.5rem,5vw,5rem)) var(--home-gutter) clamp(5rem,8vw,8rem);
}
.page-home .home-hero::after { width:min(28vw,380px); top:4%; right:-11%; opacity:.62; }
.page-home .home-hero-grid {
  width:var(--home-container);
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto auto auto;
  gap:0;
  align-items:start;
}
.page-home .hero-copy-primary {
  grid-column:1;
  grid-row:1;
  width:100%;
  max-width:1420px;
  margin:0 auto;
  padding:0;
  text-align:center;
}
.page-home .hero-copy-primary .home-label { justify-content:center; }
.page-home .home-hero h1 {
  max-width:1420px;
  margin:clamp(2rem,3.5vw,3.5rem) auto 0;
  font-size:clamp(3.8rem,5.65vw,6.9rem);
  line-height:.94;
  letter-spacing:-.058em;
  color:var(--home-ink);
  text-align:center;
}
.page-home .hero-line { display:block; }
.page-home .hero-emphasis { color:inherit; }
.page-home .hero-emphasis > span::after { display:none; }
.page-home .hero-support {
  grid-column:1;
  grid-row:2;
  width:min(1050px,100%);
  margin:0 auto;
  padding:clamp(1.75rem,2.8vw,2.75rem) 0 clamp(1.75rem,2.8vw,2.5rem);
  text-align:center;
}
.page-home .hero-intro-grid {
  width:min(930px,100%);
  max-width:none;
  margin:0 auto;
  padding:0;
  border:0;
  grid-template-columns:1fr;
  gap:.9rem;
}
.page-home .hero-intro-grid p {
  max-width:900px;
  margin:0 auto;
  color:#343a35;
  font-size:clamp(1rem,1.18vw,1.22rem);
  line-height:1.55;
  text-wrap:balance;
}
.page-home .hero-support .home-actions { justify-content:center; margin-top:clamp(1.8rem,3vw,2.6rem); }
.page-home .hero-sector-line {
  justify-content:center;
  margin:clamp(2.2rem,3.2vw,3.2rem) auto 0;
  padding-top:1.1rem;
  font-size:clamp(.62rem,.62vw,.72rem);
}
.page-home .hero-system {
  grid-column:1;
  grid-row:3;
  width:100%;
  height:clamp(590px,45vw,700px);
  min-height:590px;
  margin:0 auto;
}
.page-home .hero-brand-burst { width:30%; left:43%; top:8%; }
.page-home .hero-signal { width:25%; min-height:96px; padding:.9rem 1rem; }
.page-home .hero-signal-a { top:13%; left:4%; }
.page-home .hero-signal-b { top:31.5%; left:4%; }
.page-home .hero-signal-c { top:50%; bottom:auto; left:4%; }
.page-home .hero-signal-d { top:68.5%; bottom:auto; left:4%; }
.page-home .hero-decision-interface { width:49%; min-height:340px; right:4%; top:20%; }
.page-home .decision-layout { min-height:299px; }
.page-home .decision-content h2 { font-size:clamp(1.75rem,2.65vw,3.15rem); }
.page-home .hero-system.is-resolved .hero-signal { transform:translateX(6px) scale(.985); }
.page-home .hero-system.is-resolved .hero-decision-interface { transform:translate(-1%,1%) scale(1.01); }

@media (min-width:1101px) {
  .page-home .home-hero h1 .hero-line { white-space:nowrap; }
}
@media (max-width:960px) {
  .page-home .home-hero { padding-top:calc(70px + clamp(2.5rem,6vw,4.5rem)); }
  .page-home .home-hero-grid { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto; gap:0; }
  .page-home .hero-copy-primary { grid-column:1; grid-row:1; padding:0; }
  .page-home .hero-support { grid-column:1; grid-row:2; padding:2.25rem 0 2.75rem; }
  .page-home .hero-system { grid-column:1; grid-row:3; height:clamp(560px,72vw,650px); min-height:560px; }
  .page-home .hero-intro-grid { margin-top:0; }
  .page-home .home-hero h1 { font-size:clamp(3.6rem,8vw,5.8rem); }
  .page-home .hero-signal { width:25%; }
  .page-home .hero-decision-interface { width:50%; right:3%; }
}
@media (max-width:680px) {
  .page-home .home-hero { padding:calc(70px + 2.25rem) var(--home-gutter) 4.5rem; }
  .page-home .home-hero h1 {
    margin-top:1.75rem;
    font-size:clamp(3rem,13.4vw,4.25rem);
    line-height:.96;
    letter-spacing:-.052em;
  }
  .page-home .hero-line:first-child,
  .page-home .hero-line:nth-child(2) { max-width:none; }
  .page-home .hero-support { padding:2rem 0 2.4rem; }
  .page-home .hero-intro-grid { gap:1rem; margin-top:0; padding:0; }
  .page-home .hero-intro-grid p { font-size:1rem; line-height:1.55; }
  .page-home .hero-support .home-actions { gap:1rem; margin-top:1.75rem; }
  .page-home .hero-sector-line { gap:.65rem 1rem; margin-top:2.4rem; }
  .page-home .hero-system { height:780px; min-height:780px; margin-inline:0; }
  .page-home .hero-input-paths,
  .page-home .hero-output-paths,
  .page-home .hero-nodes,
  .page-home .hero-moving-signals { display:none; }
  .page-home .hero-brand-burst { width:62%; left:20%; top:33%; opacity:.09; }
  .page-home .hero-signal { width:calc(50% - 1.5rem); min-height:96px; padding:.65rem; }
  .page-home .hero-signal-a { top:4.6rem; left:1rem; }
  .page-home .hero-signal-b { top:4.6rem; left:auto; right:1rem; }
  .page-home .hero-signal-c { top:11.8rem; left:1rem; }
  .page-home .hero-signal-d { top:11.8rem; left:auto; right:1rem; }
  .page-home .hero-signal span,
  .page-home .hero-signal i { font-size:.55rem; }
  .page-home .hero-signal b { font-size:.72rem; line-height:1.25; }
  .page-home .hero-decision-interface {
    width:calc(100% - 2rem);
    min-height:315px;
    left:1rem;
    right:auto;
    top:19.4rem;
  }
  .page-home .decision-layout { min-height:274px; }
  .page-home .decision-content { padding:1rem; }
  .page-home .decision-content h2 { font-size:clamp(1.45rem,7vw,2rem); margin-bottom:1.35rem; }
  .page-home .decision-status { display:flex; font-size:.64rem; }
  .page-home .decision-status b { display:block; margin:0; }
  .page-home .hero-outcome-chip { width:min(235px,68%); right:1rem; bottom:3.7rem; }
  .page-home .hero-system-axis { bottom:1.3rem; }
  .page-home .hero-system.is-resolved .hero-signal,
  .page-home .hero-system.is-resolved .hero-decision-interface { transform:none; }
}

/* Sector explorer refinement: six stable frames of one precision instrument. */
.page-home .home-sector-section .home-section-head {
  margin-bottom:clamp(2.5rem,4vw,4.5rem);
}
.page-home .home-sector-section .home-section-head > div {
  align-self:end;
}
.page-home .sector-explorer {
  grid-template-columns:270px minmax(0,1fr);
}
.page-home .sector-tabs button {
  grid-template-columns:24px minmax(0,1fr);
  gap:.5rem;
  padding:1.15rem 1.2rem;
}
.page-home .sector-tabs button:hover,
.page-home .sector-tabs button:focus-visible,
.page-home .sector-tabs button[aria-selected="true"] {
  padding-left:1.2rem;
}
.page-home .sector-tabs button span {
  width:24px;
}
.page-home .sector-stage {
  position:relative;
  min-height:660px;
  padding:1.35rem;
  overflow:hidden;
}
.page-home .sector-stage-meta {
  position:relative;
  z-index:3;
  min-height:36px;
}
.page-home .sector-panels {
  height:570px;
}
.page-home .sector-panel {
  height:570px;
  min-height:570px;
  grid-template-columns:minmax(245px,.34fr) minmax(0,.66fr);
  gap:clamp(1.5rem,3vw,3.25rem);
  align-items:stretch;
}
.js .page-home .sector-panel {
  transform:none;
  transition:opacity .28s ease,visibility .28s;
}
.js .page-home .sector-panel.is-active {
  animation:sectorPanelFade .3s ease both;
}
@keyframes sectorPanelFade {
  from { opacity:0; }
  to { opacity:1; }
}
.page-home .sector-panel-copy {
  display:grid;
  grid-template-rows:20px 150px 108px 44px;
  align-content:start;
  min-width:0;
  padding:2.75rem 0 2.25rem .65rem;
}
.page-home .sector-code {
  margin:0;
  align-self:start;
  color:var(--sector-accent);
}
.page-home .sector-panel-copy h3 {
  align-self:start;
  max-width:340px;
  margin:.85rem 0 0;
  font-size:clamp(2.45rem,3.25vw,4rem);
  line-height:.93;
}
.page-home .sector-panel-copy > p:not(.sector-code) {
  align-self:start;
  width:min(100%,330px);
  max-width:330px;
  margin:0;
  color:#aeb5af;
  font-size:.9rem;
  line-height:1.55;
}
.page-home .sector-panel-copy a {
  align-self:start;
  justify-self:start;
  margin:0;
}
.page-home .sector-diagram {
  align-self:center;
  width:100%;
  height:470px;
  min-height:470px;
  box-sizing:border-box;
  padding:1.35rem;
  border:1px solid color-mix(in srgb,var(--sector-accent) 24%,transparent);
  background:#0f1511;
}
.page-home .sector-diagram svg {
  width:100%;
  height:100%;
  max-height:none;
}
.page-home .sector-diagram svg .sector-route {
  fill:none;
  stroke:var(--sector-accent);
  stroke-width:1.5;
  vector-effect:non-scaling-stroke;
  filter:none;
}
.page-home .sector-diagram .sector-route-muted,
.page-home .sector-diagram .sector-route-return {
  opacity:.32;
}
.page-home .sector-diagram .sector-route-progress,
.page-home .sector-diagram .sector-route-branch,
.page-home .sector-diagram .sector-route-flow {
  opacity:1;
}
.page-home .sector-diagram .sector-route-abandoned {
  opacity:.26;
  stroke-dasharray:.045 .035;
}
.page-home .sector-leader {
  fill:none;
  stroke:var(--sector-accent);
  stroke-width:1;
  stroke-dasharray:3 4;
  opacity:.7;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-arrowhead {
  fill:var(--sector-accent);
}
.page-home .sector-diagram svg circle.sector-node {
  fill:#0f1511;
  stroke:var(--sector-accent);
  stroke-width:1.5;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-diagram svg circle.sector-node.is-active {
  fill:var(--sector-accent);
  stroke:color-mix(in srgb,var(--sector-accent) 70%,#fff);
  stroke-width:2;
}
.page-home .sector-node-labels text {
  fill:#c9cec9;
  font-size:11px;
  letter-spacing:1px;
}
.page-home .sector-direction-tick {
  fill:var(--sector-accent);
}
.page-home .sector-small-data text {
  fill:#b9c0ba;
  font-size:10px;
  text-anchor:start;
  letter-spacing:1px;
}
.page-home .sector-small-data text:last-child {
  fill:var(--sector-accent);
}
.page-home .sector-chip rect {
  fill:#0f1511;
  stroke:color-mix(in srgb,var(--sector-accent) 68%,transparent);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-chip-mask rect {
  fill:#0f1511;
  stroke:var(--sector-accent);
}
.js .page-home .sector-panel.is-active .sector-diagram circle {
  animation:none;
}
.js .page-home .sector-panel.is-active .sector-diagram circle.is-active {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorNodePulse 1.3s var(--home-ease) both;
}
.js .page-home .sector-panel.is-active .sector-healthcare .sector-route-flow {
  stroke-dasharray:.035 .025;
  stroke-dashoffset:0;
  animation:sectorFlow 1.8s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-logistics .sector-route-abandoned {
  stroke-dasharray:.045 .035;
  stroke-dashoffset:0;
  animation:none;
}
@keyframes sectorFlow {
  to { stroke-dashoffset:-.12; }
}

@media (max-width:1100px) {
  .page-home .sector-explorer { grid-template-columns:235px minmax(0,1fr); }
  .page-home .sector-panel { grid-template-columns:minmax(220px,.36fr) minmax(0,.64fr); gap:1.4rem; }
  .page-home .sector-panel-copy h3 { font-size:clamp(2.25rem,3.7vw,3.35rem); }
  .page-home .sector-diagram { padding:1rem; }
}
@media (max-width:960px) {
  .page-home .sector-explorer { grid-template-columns:1fr; }
  .page-home .sector-tabs button,
  .page-home .sector-tabs button:hover,
  .page-home .sector-tabs button:focus-visible,
  .page-home .sector-tabs button[aria-selected="true"] { padding:.9rem .8rem; }
  .page-home .sector-stage { min-height:660px; }
}
@media (max-width:680px) {
  .page-home .home-sector-section .home-section-head { margin-bottom:2.5rem; }
  .page-home .sector-tabs button { grid-template-columns:20px minmax(0,1fr); gap:.35rem; }
  .page-home .sector-stage { min-height:780px; padding:.9rem; }
  .page-home .sector-panels { height:720px; }
  .page-home .sector-panel {
    height:720px;
    min-height:720px;
    grid-template-columns:1fr;
    grid-template-rows:300px 350px;
    gap:1rem;
  }
  .page-home .sector-panel-copy {
    grid-template-rows:18px 128px 82px 40px;
    padding:1rem .25rem 0;
  }
  .page-home .sector-panel-copy h3 { font-size:2.4rem; margin-top:.7rem; }
  .page-home .sector-panel-copy > p:not(.sector-code) { font-size:.84rem; }
  .page-home .sector-diagram { height:350px; min-height:350px; padding:.55rem; }
  .page-home .sector-node-labels text { font-size:11px; }
  .page-home .sector-small-data text { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .js .page-home .sector-panel.is-active .sector-healthcare .sector-route-flow {
    animation:none;
  }
}

/* ==========================================================
   CONTACT PAGE — ONE CLEAR ROUTE INTO THE CONVERSATION
   ========================================================== */
.page-contact {
  --contact-gutter:clamp(1.25rem,4vw,4.75rem);
  --contact-container:min(1520px,calc(100vw - (var(--contact-gutter) * 2)));
  --contact-ink:#111311;
  --contact-green:#102219;
  --contact-paper:#f3f0e7;
  --contact-cream:#faf8f2;
  --contact-soft:#e3eadf;
  --contact-gold:#f1b547;
  --contact-orange:#df7730;
  --contact-line:rgba(17,19,18,.18);
  background:var(--contact-paper);
}
.page-contact .contact-shell { width:var(--contact-container); margin-inline:auto; }
.page-contact main { overflow:hidden; }

/* Hero */
.page-contact .contact-hero {
  position:relative;
  isolation:isolate;
  padding:0 var(--contact-gutter);
  background:var(--contact-paper);
}
.page-contact .contact-hero::before {
  content:"OPEN / 001";
  position:absolute;
  z-index:-1;
  top:calc(var(--header-height) + 1.5rem);
  right:-.045em;
  color:var(--contact-green);
  font-family:var(--font-display);
  font-size:clamp(8rem,17vw,19rem);
  font-weight:600;
  line-height:.8;
  letter-spacing:-.08em;
  opacity:.035;
  pointer-events:none;
}
.page-contact .contact-hero-grid {
  position:relative;
  z-index:1;
  min-height:960px;
  padding:calc(var(--header-height) + clamp(4.5rem,8vw,8rem)) 0 clamp(5rem,8vw,8rem);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  align-content:center;
  gap:clamp(3rem,5vw,6rem) clamp(1rem,2vw,2rem);
}
.page-contact .contact-hero-copy {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1.5rem clamp(1rem,2vw,2rem);
  align-items:end;
}
.page-contact .contact-hero-copy .eyebrow { grid-column:1 / -1; margin:0 0 clamp(2.5rem,5vw,5rem); }
.page-contact .contact-hero h1 {
  grid-column:1 / 10;
  max-width:12ch;
  margin:0;
  color:var(--contact-ink);
  font-size:clamp(4rem,6.4vw,7.8rem);
  line-height:.93;
  letter-spacing:-.064em;
}
.page-contact .contact-hero-copy > p:not(.eyebrow) {
  grid-column:10 / -1;
  max-width:26rem;
  margin:0;
  color:#3d443f;
  font-size:clamp(1rem,1.18vw,1.16rem);
  line-height:1.64;
}
.page-contact .contact-hero-actions {
  grid-column:10 / -1;
  margin-top:.5rem;
  display:flex;
  align-items:stretch;
  flex-direction:column;
  gap:1rem;
}
.page-contact .contact-hero-actions .button { width:100%; margin:0; justify-content:space-between; background:var(--contact-ink); color:#fff; }
.page-contact .contact-email-link {
  padding:.6rem 0;
  color:var(--contact-ink);
  font-size:.88rem;
  font-weight:600;
  text-decoration:none;
  border-bottom:1px solid rgba(17,19,18,.35);
}
.page-contact .contact-email-link span { display:inline-block; margin-left:.6rem; transition:transform .28s var(--button-ease); }
.page-contact .contact-email-link:hover span,
.page-contact .contact-email-link:focus-visible span { transform:translate(3px,-3px); }

.page-contact .contact-route-panel {
  grid-column:1 / -1;
  min-height:220px;
  display:grid;
  grid-template-columns:minmax(190px,.8fr) minmax(0,3fr) minmax(170px,.7fr);
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),
    var(--contact-green);
  background-size:54px 54px;
  color:#fff;
  box-shadow:0 28px 70px rgba(16,34,25,.14);
}
.page-contact .contact-route-panel > header,
.page-contact .contact-route-panel > footer {
  min-height:0;
  padding:1.4rem;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  flex-direction:column;
  gap:1.5rem;
  background:rgba(7,20,14,.4);
  color:rgba(255,255,255,.58);
  font-family:var(--font-mono);
  font-size:.61rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-contact .contact-route-panel > header { border-right:1px solid rgba(255,255,255,.16); }
.page-contact .contact-route-panel > footer { border-left:1px solid rgba(255,255,255,.16); }
.page-contact .contact-route-panel > header strong,
.page-contact .contact-route-panel > footer b { color:#fff; font-weight:600; }
.page-contact .contact-route {
  position:relative;
  padding:clamp(1.8rem,3vw,3rem);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(40px,.35fr) minmax(0,1fr) minmax(40px,.35fr) minmax(0,1fr);
  align-items:center;
}
.page-contact .contact-route article {
  position:relative;
  z-index:2;
  min-height:90px;
  display:grid;
  grid-template-columns:54px 1fr;
  align-items:center;
  gap:1.25rem;
}
.page-contact .contact-route article > span {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  background:var(--contact-green);
  font-family:var(--font-mono);
  font-size:.58rem;
}
.page-contact .contact-route article.active > span {
  border-color:var(--contact-gold);
  background:var(--contact-gold);
  color:var(--contact-green);
  box-shadow:0 0 0 8px rgba(241,181,71,.12);
}
.page-contact .contact-route article b { display:block; font-size:1.05rem; }
.page-contact .contact-route article p { margin:.25rem 0 0; color:rgba(255,255,255,.58); font-size:.8rem; }
.page-contact .contact-route > i {
  width:100%;
  height:1px;
  margin:0;
  background:linear-gradient(90deg,var(--contact-gold),rgba(255,255,255,.25));
}

/* Useful starting points */
.page-contact .contact-reasons { padding:clamp(7rem,11vw,12rem) var(--contact-gutter); background:var(--contact-cream); }
.page-contact .contact-section-head {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:2rem;
  margin-bottom:clamp(4rem,7vw,7rem);
}
.page-contact .contact-section-head .eyebrow { grid-column:1 / 4; }
.page-contact .contact-section-head h2 {
  grid-column:4 / 10;
  margin:0;
  font-size:clamp(3.6rem,5.6vw,6.8rem);
  line-height:.95;
  letter-spacing:-.06em;
}
.page-contact .contact-section-head > p:last-child {
  grid-column:10 / -1;
  align-self:end;
  margin:0;
  color:#454c47;
  line-height:1.62;
}
.page-contact .contact-reason-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--contact-line);
  border-left:1px solid var(--contact-line);
}
.page-contact .contact-reason-grid article {
  min-height:330px;
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--contact-line);
  border-bottom:1px solid var(--contact-line);
}
.page-contact .contact-reason-grid span {
  color:#6a716c;
  font-family:var(--font-mono);
  font-size:.62rem;
}
.page-contact .contact-reason-grid h3 {
  margin:auto 0 1.2rem;
  font-size:clamp(2rem,3vw,3.5rem);
  line-height:.98;
}
.page-contact .contact-reason-grid p { margin:0; color:#4a514c; font-size:.92rem; line-height:1.58; }

/* Inquiry */
.page-contact .inquiry-section {
  width:auto;
  margin:0;
  padding:clamp(7rem,11vw,12rem) var(--contact-gutter);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(3rem,6vw,7rem) clamp(1rem,2vw,2rem);
  background:var(--contact-paper);
  scroll-margin-top:var(--header-height);
}
.page-contact .inquiry-intro {
  grid-column:1 / 5;
  position:sticky;
  top:calc(var(--header-height) + 2rem);
  align-self:start;
}
.page-contact .inquiry-intro h2 {
  margin:2rem 0 1.5rem;
  font-size:clamp(3rem,4.7vw,5.6rem);
  line-height:.96;
  letter-spacing:-.058em;
}
.page-contact .inquiry-intro > p:not(.eyebrow) { max-width:34rem; color:#4b524d; line-height:1.62; }
.page-contact .inquiry-intro dl { margin:3rem 0 0; border-top:1px solid var(--contact-line); }
.page-contact .inquiry-intro dl > div { padding:1rem 0; display:grid; grid-template-columns:1fr auto; gap:1rem; border-bottom:1px solid var(--contact-line); }
.page-contact .inquiry-intro dt,
.page-contact .inquiry-intro dd { margin:0; font-size:.75rem; }
.page-contact .inquiry-intro dt { color:#6a716c; font-family:var(--font-mono); letter-spacing:.05em; text-transform:uppercase; }
.page-contact .inquiry-intro dd { color:var(--contact-ink); font-weight:600; text-align:right; }
.page-contact .project-form {
  grid-column:5 / -1;
  min-height:760px;
  padding:0;
  border:1px solid var(--contact-line);
  background:var(--contact-cream);
  box-shadow:0 28px 70px rgba(16,34,25,.08);
}
.page-contact .form-progress {
  min-height:64px;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-bottom:1px solid rgba(255,255,255,.16);
  background:var(--contact-green);
}
.page-contact .form-progress span {
  width:auto;
  height:auto;
  padding:1rem 1.25rem;
  display:flex;
  align-items:center;
  gap:.8rem;
  border-right:1px solid rgba(255,255,255,.14);
  background:transparent;
  color:rgba(255,255,255,.42);
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.page-contact .form-progress span:last-child { border-right:0; }
.page-contact .form-progress span b { color:inherit; font-weight:500; }
.page-contact .form-progress span.active { color:#fff; box-shadow:inset 0 3px 0 var(--contact-gold); }
.page-contact .project-form fieldset,
.page-contact .project-form .form-message { padding:clamp(2rem,4vw,4.5rem); }
.page-contact .project-form legend {
  max-width:15ch;
  margin-bottom:clamp(2.5rem,4vw,4rem);
  font-size:clamp(2.2rem,3.5vw,4.2rem);
  line-height:.98;
}
.page-contact .project-form label {
  gap:.65rem;
  margin-bottom:1.65rem;
  color:#343a36;
  font-size:.74rem;
  letter-spacing:.015em;
}
.page-contact .project-form input,
.page-contact .project-form textarea,
.page-contact .project-form select {
  min-height:48px;
  padding:.8rem 0;
  border-bottom:1px solid rgba(17,19,18,.3);
  color:var(--contact-ink);
}
.page-contact .project-form textarea { min-height:112px; }
.page-contact .project-form input:focus,
.page-contact .project-form textarea:focus,
.page-contact .project-form select:focus {
  border-color:var(--contact-green);
  box-shadow:0 2px 0 var(--contact-green);
}
.page-contact .project-form [aria-invalid="true"] { border-color:#a63b2d; box-shadow:0 2px 0 #a63b2d; }
.page-contact .project-form .field-error {
  margin:.15rem 0 0;
  color:#8e2f23;
  font-size:.73rem;
  font-weight:600;
  line-height:1.4;
}
.page-contact .project-form .field-error[hidden] { display:none; }
.page-contact .project-form .button { background:var(--contact-ink); color:#fff; }
.page-contact .project-form .text-button { color:var(--contact-ink); }
.page-contact .form-message span { color:#006c3a; }

/* What happens next */
.page-contact .contact-next-step { padding:clamp(7rem,11vw,12rem) var(--contact-gutter); background:var(--contact-green); color:#fff; }
.page-contact .contact-next-step .contact-shell { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(3rem,6vw,7rem); }
.page-contact .contact-next-copy { grid-column:1 / 7; }
.page-contact .contact-next-copy .eyebrow { color:rgba(255,255,255,.52); }
.page-contact .contact-next-copy h2 {
  max-width:9ch;
  margin:2rem 0 0;
  color:#fff;
  font-size:clamp(3.6rem,5.7vw,7rem);
  line-height:.94;
  letter-spacing:-.06em;
}
.page-contact .contact-next-step ol { grid-column:8 / -1; margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.2); }
.page-contact .contact-next-step li { padding:1.6rem 0; display:grid; grid-template-columns:42px 1fr; gap:1rem; border-bottom:1px solid rgba(255,255,255,.2); }
.page-contact .contact-next-step li > span { color:var(--contact-gold); font-family:var(--font-mono); font-size:.63rem; }
.page-contact .contact-next-step li strong { display:block; margin-bottom:.5rem; font-size:1.1rem; }
.page-contact .contact-next-step li p { margin:0; color:rgba(255,255,255,.65); font-size:.9rem; line-height:1.58; }

/* Direct email */
.page-contact .contact-direct { padding:clamp(6rem,10vw,10rem) var(--contact-gutter); background:var(--contact-gold); color:var(--contact-ink); }
.page-contact .contact-direct .contact-shell { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:2rem; align-items:end; }
.page-contact .contact-direct .eyebrow { grid-column:1 / -1; color:#574317; }
.page-contact .contact-direct h2 { grid-column:1 / 7; margin:1.5rem 0 0; font-size:clamp(3.4rem,5.4vw,6.6rem); line-height:.95; }
.page-contact .contact-direct > .contact-shell > a {
  grid-column:7 / -1;
  padding:1.4rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  border-top:1px solid rgba(17,19,18,.4);
  border-bottom:1px solid rgba(17,19,18,.4);
  color:var(--contact-ink);
  font-family:var(--font-display);
  font-size:clamp(1.5rem,2.6vw,3rem);
  text-decoration:none;
}
.page-contact .contact-direct > .contact-shell > a span { transition:transform .28s var(--button-ease); }
.page-contact .contact-direct > .contact-shell > a:hover span,
.page-contact .contact-direct > .contact-shell > a:focus-visible span { transform:translate(4px,-4px); }
.page-contact .contact-direct > .contact-shell > p:last-child { grid-column:7 / -1; margin:0; color:#574317; }

/* Footer aligned with the internal-page system. */
.page-contact .contact-footer { padding:clamp(5rem,8vw,8rem) var(--contact-gutter) 2rem; background:#f0eadc; color:var(--contact-ink); }
.page-contact .contact-footer-brand { width:min(350px,40vw); margin-bottom:clamp(4rem,7vw,7rem); }
.page-contact .contact-footer-brand img { width:100%; height:auto; }
.page-contact .contact-footer .footer-grid,
.page-contact .contact-footer .footer-bottom { width:var(--contact-container); }
.page-contact .contact-footer .footer-grid { grid-template-columns:repeat(12,1fr); gap:2rem; }
.page-contact .contact-footer .footer-lead { grid-column:1 / 8; }
.page-contact .contact-footer .footer-lead h2 { max-width:800px; color:var(--contact-ink); font-size:clamp(2.3rem,3.7vw,4.5rem); line-height:.98; }
.page-contact .contact-footer .footer-lead .button-light { background:var(--contact-ink); color:#fff; }
.page-contact .contact-footer .footer-links { grid-column:8 / -1; }
.page-contact .contact-footer :is(.eyebrow,.footer-label,.footer-links a,.footer-links span,.footer-bottom) { color:#3d443f; }
.page-contact .contact-footer .footer-bottom { border-color:rgba(17,19,18,.16); }
.page-contact .contact-footer .footer-links a:hover { color:#006c3a; }

@media (max-width:1050px) {
  .page-contact .contact-hero h1 { grid-column:1 / 9; }
  .page-contact .contact-hero-copy > p:not(.eyebrow),
  .page-contact .contact-hero-actions { grid-column:9 / -1; }
  .page-contact .contact-section-head .eyebrow { grid-column:1 / 4; }
  .page-contact .contact-section-head h2 { grid-column:4 / 10; }
  .page-contact .contact-section-head > p:last-child { grid-column:10 / -1; }
  .page-contact .contact-reason-grid { grid-template-columns:1fr 1fr; }
  .page-contact .inquiry-intro { grid-column:1 / 5; }
  .page-contact .project-form { grid-column:5 / -1; }
  .page-contact .contact-footer .footer-lead { grid-column:1 / 8; }
  .page-contact .contact-footer .footer-links { grid-column:8 / -1; }
}

@media (max-width:820px) {
  .page-contact .contact-hero-grid { min-height:0; }
  .page-contact .contact-hero-copy { grid-template-columns:1fr; }
  .page-contact .contact-hero-copy .eyebrow,
  .page-contact .contact-hero h1,
  .page-contact .contact-hero-copy > p:not(.eyebrow),
  .page-contact .contact-hero-actions { grid-column:1; }
  .page-contact .contact-hero h1 { max-width:11ch; }
  .page-contact .contact-hero-copy > p:not(.eyebrow) { max-width:38rem; }
  .page-contact .contact-hero-actions { max-width:28rem; margin-top:1rem; }
  .page-contact .contact-route-panel { min-height:520px; }
  .page-contact .contact-route-panel { grid-template-columns:1fr; grid-template-rows:auto 1fr auto; }
  .page-contact .contact-route-panel > header,
  .page-contact .contact-route-panel > footer { min-height:58px; align-items:center; flex-direction:row; }
  .page-contact .contact-route-panel > header { border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .page-contact .contact-route-panel > footer { border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .page-contact .contact-route { display:flex; flex-direction:column; align-items:stretch; justify-content:center; }
  .page-contact .contact-route > i { width:1px; height:46px; margin:-8px 0 -8px 23px; background:linear-gradient(var(--contact-gold),rgba(255,255,255,.25)); }
  .page-contact .contact-section-head .eyebrow,
  .page-contact .contact-section-head h2,
  .page-contact .contact-section-head > p:last-child { grid-column:1 / -1; }
  .page-contact .contact-section-head h2 { max-width:12ch; }
  .page-contact .inquiry-section { grid-template-columns:1fr; }
  .page-contact .inquiry-intro,
  .page-contact .project-form { grid-column:1; }
  .page-contact .inquiry-intro { position:static; }
  .page-contact .contact-next-copy,
  .page-contact .contact-next-step ol { grid-column:1 / -1; }
  .page-contact .contact-next-copy h2 { max-width:11ch; }
  .page-contact .contact-direct h2,
  .page-contact .contact-direct > .contact-shell > a,
  .page-contact .contact-direct > .contact-shell > p:last-child { grid-column:1 / -1; }
}

@media (max-width:680px) {
  .page-contact .contact-hero-grid { padding-top:calc(var(--header-height) + 4rem); }
  .page-contact .contact-hero h1 { font-size:clamp(3.15rem,12.5vw,4.45rem); line-height:.98; }
  .page-contact .contact-hero-actions { align-items:stretch; flex-direction:column; }
  .page-contact .contact-hero-actions .button { width:100%; }
  .page-contact .contact-email-link { width:max-content; }
  .page-contact .contact-route-panel { min-height:480px; }
  .page-contact .contact-route-panel > header { align-items:flex-start; flex-direction:column; }
  .page-contact .contact-route { padding:1.5rem; }
  .page-contact .contact-section-head h2,
  .page-contact .contact-next-copy h2,
  .page-contact .contact-direct h2 { font-size:clamp(3rem,12vw,4.3rem); line-height:.98; }
  .page-contact .contact-reason-grid { grid-template-columns:1fr; }
  .page-contact .contact-reason-grid article { min-height:260px; }
  .page-contact .inquiry-intro h2 { font-size:clamp(3rem,12vw,4.25rem); line-height:.98; }
  .page-contact .inquiry-intro dl > div { grid-template-columns:1fr; gap:.3rem; }
  .page-contact .inquiry-intro dd { text-align:left; }
  .page-contact .project-form { min-height:0; }
  .page-contact .form-progress span { padding:.9rem .7rem; gap:.35rem; font-size:.51rem; }
  .page-contact .form-progress span b { display:none; }
  .page-contact .project-form fieldset,
  .page-contact .project-form .form-message { padding:1.6rem 1.25rem 2rem; }
  .page-contact .project-form legend { font-size:clamp(2.1rem,9vw,3rem); }
  .page-contact .contact-next-step .contact-shell,
  .page-contact .contact-direct .contact-shell { grid-template-columns:1fr; }
  .page-contact .contact-direct > .contact-shell > a { font-size:clamp(1.3rem,6vw,1.8rem); overflow-wrap:anywhere; }
  .page-contact .contact-footer-brand { width:220px; }
  .page-contact .contact-footer .footer-grid { grid-template-columns:1fr; }
  .page-contact .contact-footer .footer-lead,
  .page-contact .contact-footer .footer-links { grid-column:1; }
  .page-contact .contact-footer .footer-links { grid-template-columns:1fr 1fr; }
  .page-contact .contact-footer .footer-links > div:last-child { grid-column:1 / -1; }
}

/* Live-instrument detail for the sector illustrations. */
.page-home .sector-diagram {
  position:relative;
  isolation:isolate;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    #0f1511;
  background-size:18px 18px;
}
.page-home .sector-diagram::before {
  content:"";
  position:absolute;
  inset:.65rem;
  z-index:0;
  pointer-events:none;
  border:1px solid color-mix(in srgb,var(--sector-accent) 13%,transparent);
  background:
    repeating-linear-gradient(90deg,color-mix(in srgb,var(--sector-accent) 34%,transparent) 0 1px,transparent 1px 28px) top / 100% 5px no-repeat,
    repeating-linear-gradient(90deg,color-mix(in srgb,var(--sector-accent) 34%,transparent) 0 1px,transparent 1px 28px) bottom / 100% 5px no-repeat,
    repeating-linear-gradient(0deg,color-mix(in srgb,var(--sector-accent) 34%,transparent) 0 1px,transparent 1px 28px) left / 5px 100% no-repeat,
    repeating-linear-gradient(0deg,color-mix(in srgb,var(--sector-accent) 34%,transparent) 0 1px,transparent 1px 28px) right / 5px 100% no-repeat;
  opacity:.5;
}
.page-home .sector-diagram svg {
  position:relative;
  z-index:1;
}
.page-home .sector-ruler-ticks path,
.page-home .sector-orbit-ticks path {
  fill:none;
  stroke:var(--sector-accent);
  stroke-width:1;
  opacity:.28;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-micro-labels text,
.page-home .sector-status-codes text {
  fill:#c7cec8;
  font-family:var(--font-mono);
  font-size:8px;
  letter-spacing:1.1px;
  opacity:.38;
}
.page-home .sector-status-codes text {
  fill:var(--sector-accent);
  opacity:0;
}
.page-home .sector-frame path {
  fill:none;
  stroke:rgba(255,255,255,.24);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-coordinates text {
  fill:#c7cec8;
  font-family:var(--font-mono);
  font-size:8px;
  letter-spacing:1.1px;
  opacity:.32;
}
.page-home .sector-coordinates .sector-plate-id {
  fill:var(--sector-accent);
  opacity:.6;
}
.page-home .sector-gate {
  fill:#0f1511;
  stroke:var(--sector-accent);
  stroke-width:1.2;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-diagram svg circle.sector-node.is-active {
  fill:#0f1511;
  stroke:var(--sector-accent);
}
.page-home .sector-diagram svg circle.sector-node-core {
  fill:var(--sector-accent);
  stroke:none;
  opacity:.42;
}
.page-home .sector-diagram svg circle.sector-node-core.is-active {
  fill:var(--sector-accent);
  stroke:color-mix(in srgb,var(--sector-accent) 55%,#fff);
  stroke-width:1.5;
  opacity:1;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-diagram svg circle.sector-node-orbit,
.page-home .sector-diagram svg circle.sector-node-pulse-ring {
  fill:none;
  stroke:var(--sector-accent);
  vector-effect:non-scaling-stroke;
}
.page-home .sector-diagram svg circle.sector-node-orbit {
  stroke-width:1;
  stroke-dasharray:4 5;
  opacity:.68;
}
.page-home .sector-diagram svg circle.sector-node-pulse-ring {
  stroke-width:1.25;
  opacity:0;
}
.page-home .sector-diagram svg circle.sector-signal-pulse,
.page-home .sector-diagram svg circle.sector-orbiting-issue,
.page-home .sector-diagram svg circle.sector-orbit-trail {
  fill:var(--sector-accent);
  stroke:none;
}
.page-home .sector-diagram svg circle.sector-signal-pulse-secondary {
  opacity:.72;
}
.page-home .sector-diagram svg circle.sector-orbiting-issue {
  stroke:#0f1511;
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-diagram svg circle.sector-orbit-trail.trail-a { opacity:.28; }
.page-home .sector-diagram svg circle.sector-orbit-trail.trail-b { opacity:.12; }
.page-home .sector-document-pulse {
  fill:var(--sector-accent);
  stroke:#0f1511;
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}
.page-home .sector-chip rect.sector-telemetry-cursor {
  fill:var(--sector-accent);
  stroke:none;
}
.page-home .sector-small-data text.telemetry-cycle {
  fill:var(--sector-accent);
  opacity:0;
}
.page-home .sector-finance .cycle-a,
.page-home .sector-utilities .utility-a {
  opacity:1;
}

.js .page-home .sector-panel.is-active .sector-route:not(.sector-route-abandoned):not(.sector-route-branch) {
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:sectorPathBoot .52s cubic-bezier(.2,.8,.2,1) forwards;
}
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorNodeBoot .22s .42s ease-out both;
}
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node:nth-child(2) { animation-delay:.48s; }
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node:nth-child(3) { animation-delay:.54s; }
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node:nth-child(4) { animation-delay:.6s; }
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node:nth-child(5) { animation-delay:.66s; }
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node:nth-child(6) { animation-delay:.72s; }
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-core {
  animation:sectorCoreBoot .2s .56s ease-out both;
  transform-box:fill-box;
  transform-origin:center;
}
.js .page-home .sector-panel.is-active .sector-chip {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorChipBoot .28s .7s ease-out both;
}
.js .page-home .sector-panel.is-active .sector-frame,
.js .page-home .sector-panel.is-active .sector-coordinates {
  animation:sectorChipBoot .3s .16s ease-out both;
}
.js .page-home .sector-panel.is-active .sector-gate {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorCoreBoot .24s .62s ease-out both;
}
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-orbit {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorOrbitRotate 8s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-pulse-ring {
  transform-box:fill-box;
  transform-origin:center;
  animation:sectorPulseRing 3s .75s ease-out infinite;
}
.js .page-home .sector-panel.is-active .sector-telemetry-cursor {
  animation:sectorCursorBlink 1s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-finance .cycle-a {
  animation:sectorFinanceReadoutA 8s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-finance .cycle-b {
  animation:sectorFinanceReadoutB 8s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-utilities .utility-a {
  animation:sectorUtilityReadoutA 9s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-utilities .utility-b {
  animation:sectorUtilityReadoutB 9s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-utilities .utility-c {
  animation:sectorUtilityReadoutC 9s 1s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-government .status-a {
  animation:sectorGovernmentStatusA 8s .25s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-government .status-b {
  animation:sectorGovernmentStatusB 8s .25s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-government .status-c {
  animation:sectorGovernmentStatusC 8s .25s steps(1,end) infinite;
}
.js .page-home .sector-panel.is-active .sector-healthcare .sector-route-flow {
  stroke-dasharray:.035 .025;
  stroke-dashoffset:0;
  animation:sectorFlow 1.8s .55s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-healthcare .sector-route-return {
  stroke-dasharray:.035 .025;
  stroke-dashoffset:0;
  animation:sectorFlowReverse 2.15s .55s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-healthcare svg circle.sector-record-core {
  animation:sectorRecordMeet 5.2s .6s ease-in-out infinite;
}
.js .page-home .sector-panel.is-active .sector-logistics .sector-route-branch {
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:sectorBranchStory 6s .4s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-logistics .sector-route-abandoned {
  animation:sectorAbandonedStory 6s .4s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-logistics .telemetry-flash > rect:first-child {
  animation:sectorTelemetryFlash 6s .4s linear infinite;
}
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-1 { animation:sectorEnergy 6s .2s ease-out infinite; }
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-2 { animation:sectorEnergy 6s .85s ease-out infinite; }
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-3 { animation:sectorEnergy 6s 1.5s ease-out infinite; }
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-4 { animation:sectorEnergy 6s 2.15s ease-out infinite; }
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-5 { animation:sectorEnergy 6s 2.8s ease-out infinite; }
.js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core.energy-6 { animation:sectorEnergy 6s 3.55s ease-out infinite; }

@keyframes sectorPathBoot {
  to { stroke-dashoffset:0; }
}
@keyframes sectorNodeBoot {
  from { opacity:0; transform:scale(.55); }
  to { opacity:1; transform:scale(1); }
}
@keyframes sectorCoreBoot {
  from { opacity:0; transform:scale(0); }
}
@keyframes sectorChipBoot {
  from { opacity:0; transform:translateY(7px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes sectorOrbitRotate {
  to { transform:rotate(360deg); }
}
@keyframes sectorPulseRing {
  0% { opacity:.52; transform:scale(.72); }
  72%,100% { opacity:0; transform:scale(1.35); }
}
@keyframes sectorCursorBlink {
  0%,48% { opacity:1; }
  49%,100% { opacity:.08; }
}
@keyframes sectorFinanceReadoutA {
  0%,42%,94%,100% { opacity:1; }
  43%,93% { opacity:0; }
}
@keyframes sectorFinanceReadoutB {
  0%,42%,94%,100% { opacity:0; }
  43%,93% { opacity:1; }
}
@keyframes sectorUtilityReadoutA {
  0%,30%,100% { opacity:1; }
  31%,99% { opacity:0; }
}
@keyframes sectorUtilityReadoutB {
  0%,30%,64%,100% { opacity:0; }
  31%,63% { opacity:1; }
}
@keyframes sectorUtilityReadoutC {
  0%,63%,99% { opacity:0; }
  64%,98% { opacity:1; }
}
@keyframes sectorGovernmentStatusA {
  0%,28% { opacity:.72; }
  29%,100% { opacity:0; }
}
@keyframes sectorGovernmentStatusB {
  0%,39%,67%,100% { opacity:0; }
  40%,66% { opacity:.72; }
}
@keyframes sectorGovernmentStatusC {
  0%,67%,100% { opacity:0; }
  68%,98% { opacity:.72; }
}
@keyframes sectorFlowReverse {
  to { stroke-dashoffset:.12; }
}
@keyframes sectorRecordMeet {
  0%,38%,62%,100% { transform:scale(1); }
  48%,52% { transform:scale(1.8); }
}
@keyframes sectorBranchStory {
  0%,38% { stroke-dashoffset:1; }
  58%,94% { stroke-dashoffset:0; }
  100% { stroke-dashoffset:1; }
}
@keyframes sectorAbandonedStory {
  0%,38% { opacity:.62; stroke-dasharray:.045 .035; }
  52%,94% { opacity:.16; stroke-dasharray:.025 .06; }
  100% { opacity:.62; stroke-dasharray:.045 .035; }
}
@keyframes sectorTelemetryFlash {
  0%,33%,45%,100% { stroke-opacity:.68; fill:#0f1511; }
  36%,42% { stroke-opacity:1; fill:color-mix(in srgb,var(--sector-accent) 12%,#0f1511); }
}
@keyframes sectorEnergy {
  0%,8%,100% { opacity:.35; transform:scale(1); }
  12%,18% { opacity:1; transform:scale(1.85); }
  24% { opacity:.42; transform:scale(1); }
}

@media (max-width:680px) {
  .page-home .sector-diagram::before { inset:.3rem; }
  .page-home .sector-micro-labels text,
  .page-home .sector-status-codes text { font-size:8px; }
}

@media (prefers-reduced-motion:reduce) {
  .page-home .sector-signal-pulse,
  .page-home .sector-document-pulse,
  .page-home .sector-orbiting-issue,
  .page-home .sector-orbit-trail { display:none; }
  .js .page-home .sector-panel.is-active .sector-route,
  .js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node,
  .js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-core,
  .js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-orbit,
  .js .page-home .sector-panel.is-active .sector-diagram svg circle.sector-node-pulse-ring,
  .js .page-home .sector-panel.is-active .sector-chip,
  .js .page-home .sector-panel.is-active .sector-telemetry-cursor,
  .js .page-home .sector-panel.is-active .sector-status-codes text,
  .js .page-home .sector-panel.is-active .sector-frame,
  .js .page-home .sector-panel.is-active .sector-coordinates,
  .js .page-home .sector-panel.is-active .sector-gate,
  .js .page-home .sector-panel.is-active .telemetry-cycle {
    animation:none;
    transform:none;
  }
  .js .page-home .sector-panel.is-active .sector-healthcare .sector-route-flow,
  .js .page-home .sector-panel.is-active .sector-healthcare .sector-route-return,
  .js .page-home .sector-panel.is-active .sector-logistics .sector-route-branch,
  .js .page-home .sector-panel.is-active .sector-logistics .sector-route-abandoned,
  .js .page-home .sector-panel.is-active .sector-logistics .telemetry-flash > rect:first-child,
  .js .page-home .sector-panel.is-active .sector-enterprise svg circle.sector-node-core[class*="energy-"],
  .js .page-home .sector-panel.is-active .sector-government .sector-status-codes text,
  .js .page-home .sector-panel.is-active .sector-finance text.telemetry-cycle,
  .js .page-home .sector-panel.is-active .sector-utilities text.telemetry-cycle {
    animation:none;
  }
  .js .page-home .sector-panel.is-active .sector-route { stroke-dashoffset:0; }
  .page-home .sector-node-pulse-ring { display:none; }
  .page-home .sector-government .status-a,
  .page-home .sector-government .status-b { display:none; }
  .page-home .sector-government .status-c { opacity:.72; }
  .page-home .sector-finance .cycle-a,
  .page-home .sector-utilities .utility-a { opacity:1; }
  .page-home .sector-finance .cycle-b,
  .page-home .sector-utilities .utility-b,
  .page-home .sector-utilities .utility-c { opacity:0; }
}

/* Point of view: one dark editorial field and one transforming instrument. */
.page-home .home-pov-section {
  padding:0;
  overflow:hidden;
  color:#f2f4f2;
  background:#111512;
  border-color:#292e2a;
}
.page-home .home-pov-section::after { display:none; }
.page-home .pov-grid {
  width:var(--home-container);
  min-height:0;
  margin:0 auto;
  padding:clamp(6rem,8vw,8.5rem) 0;
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(540px,1.22fr);
  gap:clamp(3rem,6vw,7.5rem);
  align-items:start;
}
.page-home .pov-editorial {
  grid-column:1;
  min-width:0;
}
.page-home .pov-editorial h2 {
  max-width:650px;
  margin:clamp(2rem,3vw,3rem) 0 0;
  color:#fff;
  font-size:clamp(3.6rem,5.1vw,6rem);
  line-height:.92;
  letter-spacing:-.06em;
}
.page-home .pov-story {
  display:block;
  margin-top:clamp(3rem,5vw,5.25rem);
  padding:clamp(1.7rem,2.5vw,2.5rem) 0;
  border-top:1px solid rgba(255,255,255,.17);
  border-bottom:1px solid rgba(255,255,255,.17);
}
.page-home .pov-story p,
.page-home .pov-story .pov-lead,
.page-home .pov-story .pov-conclusion {
  max-width:43ch;
  margin:0;
  padding:0;
  border:0;
  color:#aeb4af;
  font-family:var(--font-body);
  font-size:clamp(.96rem,1.04vw,1.1rem);
  line-height:1.58;
  letter-spacing:0;
}
.page-home .pov-story p + p { margin-top:1.15rem; }
.page-home .pov-story .pov-lead {
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(1.35rem,1.75vw,1.85rem);
  line-height:1.18;
  letter-spacing:-.025em;
}
.page-home .pov-story .pov-conclusion {
  margin-top:clamp(1.8rem,2.6vw,2.6rem);
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(1.2rem,1.45vw,1.5rem);
  line-height:1.22;
  letter-spacing:-.018em;
}
.page-home .pov-visual-column {
  grid-column:2;
  min-width:0;
}
.page-home .pov-instrument-head {
  min-height:45px;
  margin-bottom:1rem;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1.5rem;
}
.page-home .pov-instrument-head > p {
  margin:0 0 .75rem;
  color:#89908b;
  font-family:var(--font-mono);
  font-size:.58rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.page-home .pov-mode-switch {
  width:max-content;
  display:flex;
  border:1px solid rgba(255,255,255,.2);
  background:#111512;
}
.page-home .pov-mode-switch button {
  min-height:43px;
  padding:.8rem 1rem;
  border:0;
  border-right:1px solid rgba(255,255,255,.14);
  color:#909691;
  background:transparent;
  font-family:var(--font-mono);
  font-size:.58rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.08em;
  cursor:pointer;
  transition:color .25s ease,background-color .25s ease;
}
.page-home .pov-mode-switch button:last-child { border-right:0; }
.page-home .pov-mode-switch button:hover,
.page-home .pov-mode-switch button:focus-visible { color:#fff; }
.page-home .pov-mode-switch button:focus-visible {
  position:relative;
  z-index:2;
  outline:2px solid #fff;
  outline-offset:2px;
}
.page-home .pov-mode-switch button[aria-selected="true"] {
  color:#111512;
  background:#f2f4f2;
}
.page-home .pov-console {
  position:relative;
  top:auto;
  width:100%;
  height:690px;
  min-height:690px;
  margin:0;
  display:grid;
  grid-template-rows:45px 52px minmax(280px,1fr) 112px 174px;
  color:#eef1ee;
  background:#151a16;
  border:1px solid rgba(255,255,255,.18);
  border-top-color:rgba(255,255,255,.18);
  box-shadow:0 30px 80px rgba(0,0,0,.28);
  overflow:hidden;
}
.page-home .pov-grid:has([data-pov-panel="clarity"].is-active) .pov-console,
.page-home .pov-console[data-pov-state="clarity"] {
  border-top-color:rgba(255,255,255,.18);
}
.page-home .pov-console-bar {
  height:45px;
  padding:0 1rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#aeb5af;
  background:#111512;
  border-bottom:1px solid rgba(255,255,255,.13);
  font-family:var(--font-mono);
  font-size:.55rem;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.page-home .pov-console-bar b {
  color:#eef1ee;
  font-weight:500;
}
.page-home .pov-console-readout {
  padding:0 1rem;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:.85rem;
  color:#7f8781;
  background:#131713;
  border-bottom:1px solid rgba(255,255,255,.1);
  font-family:var(--font-mono);
  font-size:.5rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.page-home .pov-console-readout > i {
  position:relative;
  height:1px;
  background:rgba(255,255,255,.24);
}
.page-home .pov-console-readout > i::before,
.page-home .pov-console-readout > i::after {
  content:"";
  position:absolute;
  top:-3px;
  width:1px;
  height:7px;
  background:rgba(255,255,255,.22);
}
.page-home .pov-console-readout > i::before { left:25%; }
.page-home .pov-console-readout > i::after { left:75%; }
.page-home .pov-console-readout > i > b {
  position:absolute;
  left:6px;
  top:50%;
  width:11px;
  height:11px;
  border-radius:50%;
  background:#f2f4f2;
  transform:translate(-50%,-50%);
  transition:left .8s cubic-bezier(.2,.8,.2,1);
}
.page-home .pov-console[data-pov-state="clarity"] .pov-console-readout > i > b {
  left:calc(100% - 6px);
}
.page-home .pov-transform-stage {
  position:relative;
  min-height:0;
  margin:14px;
  overflow:hidden;
  color:#dfe3df;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px),
    #101410;
  background-size:24px 24px;
  border:1px solid rgba(255,255,255,.1);
}
.page-home .pov-transform-stage::before {
  content:"";
  position:absolute;
  inset:8px;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.055);
}
.page-home .pov-stage-meta {
  position:absolute;
  z-index:4;
  top:14px;
  left:16px;
  right:16px;
  display:flex;
  justify-content:space-between;
  color:#626a64;
  font-family:var(--font-mono);
  font-size:.47rem;
  letter-spacing:.1em;
}
.page-home .pov-transform-stage .feature-stack {
  position:absolute;
  z-index:2;
  inset:0;
  height:auto;
  margin:0;
}
.page-home .pov-transform-stage .feature-stack span {
  --angle:0deg;
  --drift:2px;
  position:absolute;
  right:5%;
  height:62px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  padding:0 .9rem;
  color:#c9cfca;
  background:#171c18;
  border:1px solid rgba(255,255,255,.17);
  box-shadow:0 9px 24px rgba(0,0,0,.18);
  font-family:var(--font-mono);
  font-size:.55rem;
  text-transform:uppercase;
  letter-spacing:.065em;
  transform:rotate(var(--angle));
  transform-origin:center;
  transition:
    left .8s cubic-bezier(.2,.8,.2,1),
    right .8s cubic-bezier(.2,.8,.2,1),
    top .8s cubic-bezier(.2,.8,.2,1),
    width .8s cubic-bezier(.2,.8,.2,1),
    height .8s cubic-bezier(.2,.8,.2,1),
    opacity .4s ease,
    transform .8s cubic-bezier(.2,.8,.2,1),
    color .3s ease,
    background-color .3s ease;
  animation:povFeatureRestless 6.4s calc(var(--i) * .12s) ease-in-out infinite;
}
.page-home .pov-transform-stage .feature-stack span::after {
  content:attr(data-node);
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:.35rem;
  color:#f1f3f1;
  text-align:center;
  opacity:0;
  transition:opacity .28s .45s ease;
}
.page-home .pov-transform-stage .feature-stack span:nth-child(1) { top:42px; left:6%; --angle:-.2deg; }
.page-home .pov-transform-stage .feature-stack span:nth-child(2) { top:72px; left:7.5%; --angle:.35deg; }
.page-home .pov-transform-stage .feature-stack span:nth-child(3) { top:102px; left:5.5%; --angle:-.45deg; }
.page-home .pov-transform-stage .feature-stack span:nth-child(4) { top:132px; left:8%; --angle:.3deg; }
.page-home .pov-transform-stage .feature-stack span:nth-child(5) { top:162px; left:6.5%; --angle:-.25deg; }
.page-home .pov-transform-stage .feature-stack span:nth-child(6) { top:192px; left:9%; --angle:.45deg; }
@keyframes povFeatureRestless {
  0% { opacity:0; transform:translateY(-14px) rotate(var(--angle)); }
  9%,72% { opacity:1; transform:translate(0,0) rotate(var(--angle)); }
  82% { opacity:1; transform:translateX(var(--drift)) rotate(var(--angle)); }
  100% { opacity:1; transform:translate(0,0) rotate(var(--angle)); }
}
.page-home .pov-pipeline-track {
  position:absolute;
  z-index:1;
  left:12%;
  right:12%;
  top:50%;
  height:1px;
  opacity:0;
  transition:opacity .25s .45s ease;
}
.page-home .pov-pipeline-track > i {
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.42);
}
.page-home .pov-pipeline-track > i::after {
  content:"";
  position:absolute;
  right:-1px;
  top:-3px;
  width:7px;
  height:7px;
  border-top:1px solid rgba(255,255,255,.55);
  border-right:1px solid rgba(255,255,255,.55);
  transform:rotate(45deg);
}
.page-home .pov-pipeline-track > b {
  position:absolute;
  left:0;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#fff;
  transform:translate(-50%,-50%);
}
.page-home .pov-console[data-pov-state="clarity"] .pov-pipeline-track {
  opacity:1;
}
.page-home .pov-console[data-pov-state="clarity"] .pov-pipeline-track > b {
  animation:povPipelinePulse 3.8s 1s ease-in-out infinite;
}
@keyframes povPipelinePulse {
  0% { left:0; opacity:0; }
  12% { opacity:1; }
  82% { left:100%; opacity:1; }
  100% { left:100%; opacity:0; }
}
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span {
  top:calc(50% - 34px);
  right:auto;
  width:19%;
  height:68px;
  color:transparent;
  background:#151a16;
  transform:none;
  animation:none;
}
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span::after { opacity:1; }
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(1) { left:3%; transition-delay:0s; }
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(2) { left:28%; transition-delay:.08s; }
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(3) { left:53%; transition-delay:.16s; }
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(4) {
  left:78%;
  border-color:rgba(255,255,255,.42);
  box-shadow:0 0 0 6px rgba(255,255,255,.045);
  transition-delay:.24s;
}
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(5) {
  left:53%;
  opacity:0;
  transition-delay:.12s;
}
.page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(6) {
  left:78%;
  opacity:0;
  transition-delay:.18s;
}
.page-home .pov-stage-state {
  position:absolute;
  z-index:4;
  left:16px;
  bottom:14px;
  color:#69716b;
  font-family:var(--font-mono);
  font-size:.47rem;
  letter-spacing:.09em;
  transition:opacity .25s ease;
}
.page-home .pov-stage-state-clarity { opacity:0; }
.page-home .pov-console[data-pov-state="clarity"] .pov-stage-state-features { opacity:0; }
.page-home .pov-console[data-pov-state="clarity"] .pov-stage-state-clarity { opacity:1; }
.page-home .pov-decision-zone {
  position:relative;
  min-height:112px;
  padding:0 clamp(1rem,2vw,1.5rem);
  display:flex;
  align-items:center;
  background:#121612;
  border-top:1px solid rgba(255,255,255,.11);
  border-bottom:1px solid rgba(255,255,255,.11);
}
.page-home .pov-panel,
.js .page-home .pov-panel {
  display:none;
  width:100%;
  padding:0;
  color:#eef1ee;
}
.page-home .pov-panel.is-active,
.js .page-home .pov-panel.is-active {
  display:block;
  animation:none;
}
.page-home .pov-panel > span {
  color:#777f79;
  font-family:var(--font-mono);
  font-size:.5rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.page-home .pov-panel p {
  max-width:58ch;
  margin:.55rem 0 0;
  color:#c4cac5;
  font-size:clamp(.92rem,1vw,1.05rem);
  line-height:1.42;
}
.page-home #pov-panel-clarity p {
  position:relative;
  color:#fff;
}
.page-home #pov-panel-clarity p > i {
  display:inline-block;
  width:5px;
  height:.9em;
  margin-left:.35rem;
  vertical-align:-.08em;
  background:#fff;
  animation:povCursor 1s steps(1,end) infinite;
}
.page-home .pov-console[data-pov-state="clarity"] #pov-panel-clarity p {
  animation:povDecisionReveal .8s .7s both;
}
@keyframes povDecisionReveal {
  from { opacity:0; clip-path:inset(0 100% 0 0); }
  to { opacity:1; clip-path:inset(0); }
}
@keyframes povCursor {
  0%,48% { opacity:1; }
  49%,100% { opacity:0; }
}
.page-home .pov-metrics {
  display:grid;
  grid-template-rows:repeat(3,58px);
  background:#151a16;
}
.page-home .pov-metric {
  min-width:0;
  padding:0 1.5rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.1);
  color:#929a94;
  font-size:.72rem;
}
.page-home .pov-metric:last-child { border-bottom:0; }
.page-home .pov-metric > span,
.page-home .pov-metric > b {
  min-width:0;
  color:inherit;
  font-size:inherit;
  font-weight:400;
}
.page-home .pov-metric > b {
  color:#f0f2f0;
  font-family:var(--font-mono);
  font-size:.58rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.page-home .pov-metric i {
  color:inherit;
  font:inherit;
  font-style:normal;
}
.page-home .pov-clarity-copy { display:none; }
.page-home .pov-console[data-pov-state="clarity"] .pov-feature-copy { display:none; }
.page-home .pov-console[data-pov-state="clarity"] .pov-clarity-copy { display:inline; }
.page-home .pov-spectrum,
.page-home .pov-brand-motif { display:none; }

@media (max-width:1100px) {
  .page-home .pov-grid {
    grid-template-columns:minmax(280px,.72fr) minmax(500px,1.28fr);
    gap:3rem;
  }
  .page-home .pov-editorial h2 { font-size:clamp(3.3rem,5.4vw,5rem); }
  .page-home .pov-console { height:670px; min-height:670px; grid-template-rows:45px 52px minmax(260px,1fr) 112px 174px; }
}
@media (max-width:960px) {
  .page-home .pov-grid {
    grid-template-columns:1fr;
    gap:4rem;
  }
  .page-home .pov-editorial,
  .page-home .pov-visual-column { grid-column:1; }
  .page-home .pov-editorial { max-width:780px; }
  .page-home .pov-story { max-width:680px; }
  .page-home .pov-visual-column { grid-row:2; }
}
@media (max-width:680px) {
  .page-home .pov-grid {
    padding:5rem 0;
    gap:3.25rem;
  }
  .page-home .pov-editorial h2 {
    margin-top:1.8rem;
    font-size:clamp(3.1rem,13vw,4.2rem);
  }
  .page-home .pov-story { margin-top:2.8rem; padding:1.6rem 0; }
  .page-home .pov-story p,
  .page-home .pov-story .pov-lead,
  .page-home .pov-story .pov-conclusion { max-width:none; }
  .page-home .pov-story p { padding:0; border:0; }
  .page-home .pov-instrument-head { display:block; }
  .page-home .pov-instrument-head > p { margin-bottom:.9rem; }
  .page-home .pov-mode-switch { width:100%; }
  .page-home .pov-mode-switch button { flex:1; }
  .page-home .pov-console {
    height:650px;
    min-height:650px;
    grid-template-rows:42px 48px 270px 119px 171px;
  }
  .page-home .pov-console-bar { height:42px; padding:0 .75rem; font-size:.47rem; }
  .page-home .pov-console-readout { padding:0 .75rem; gap:.55rem; font-size:.43rem; }
  .page-home .pov-transform-stage { margin:10px; }
  .page-home .pov-transform-stage .feature-stack span {
    right:5%;
    height:53px;
    padding:0 .65rem;
    font-size:.46rem;
  }
  .page-home .pov-transform-stage .feature-stack span:nth-child(1) { top:34px; }
  .page-home .pov-transform-stage .feature-stack span:nth-child(2) { top:61px; }
  .page-home .pov-transform-stage .feature-stack span:nth-child(3) { top:88px; }
  .page-home .pov-transform-stage .feature-stack span:nth-child(4) { top:115px; }
  .page-home .pov-transform-stage .feature-stack span:nth-child(5) { top:142px; }
  .page-home .pov-transform-stage .feature-stack span:nth-child(6) { top:169px; }
  .page-home .pov-console[data-pov-state="clarity"] .feature-stack span {
    top:calc(50% - 31px);
    width:21%;
    height:62px;
    padding:.25rem;
    font-size:.43rem;
  }
  .page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(1) { left:2%; }
  .page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(2) { left:27%; }
  .page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(3) { left:52%; }
  .page-home .pov-console[data-pov-state="clarity"] .feature-stack span:nth-child(4) { left:77%; }
  .page-home .pov-pipeline-track { left:11%; right:11%; }
  .page-home .pov-stage-meta,
  .page-home .pov-stage-state { font-size:.4rem; }
  .page-home .pov-decision-zone { min-height:119px; padding:0 .85rem; }
  .page-home .pov-panel p { font-size:.86rem; line-height:1.38; }
  .page-home .pov-metrics { grid-template-rows:repeat(3,57px); }
  .page-home .pov-metric { padding:0 .85rem; font-size:.66rem; }
  .page-home .pov-metric > b { font-size:.52rem; }
}
@media (prefers-reduced-motion:reduce) {
  .page-home .pov-transform-stage .feature-stack span,
  .page-home .pov-pipeline-track,
  .page-home .pov-pipeline-track > b,
  .page-home .pov-console-readout > i > b,
  .page-home #pov-panel-clarity p,
  .page-home #pov-panel-clarity p > i {
    animation:none;
    transition:none;
  }
  .page-home #pov-panel-clarity p > i { display:none; }
}

/* Hero relay: four visible inputs become one docked decision path. */
.page-home .hero-brand-burst { display:none; }
.page-home .hero-system-axis {
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.page-home .hero-system-axis span:nth-child(2) { text-align:center; }
.page-home .hero-system-axis span:nth-child(3) { text-align:right; }
.page-home .hero-zone-lines path {
  fill:none;
  stroke:rgba(255,255,255,.11);
  stroke-width:1;
  stroke-dasharray:3 8;
  vector-effect:non-scaling-stroke;
}
.page-home .hero-input-paths path {
  fill:none;
  stroke:var(--home-orange);
  stroke-width:1.45;
  vector-effect:non-scaling-stroke;
  transition:opacity .55s ease;
}
.page-home .hero-output-paths path.hero-resolved-strand {
  fill:none;
  stroke:var(--home-green);
  stroke-width:2;
  vector-effect:non-scaling-stroke;
}
.js .page-home .hero-system .hero-input-paths path,
.js .page-home .hero-system .hero-output-paths path {
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:none;
}
.js .page-home .hero-system.is-relaying .hero-input-paths path:nth-child(1) {
  animation:homePathDraw 2s .5s cubic-bezier(.2,.8,.2,1) forwards;
}
.js .page-home .hero-system.is-relaying .hero-input-paths path:nth-child(2) {
  animation:homePathDraw 1.7s .9s cubic-bezier(.2,.8,.2,1) forwards;
}
.js .page-home .hero-system.is-relaying .hero-input-paths path:nth-child(3) {
  animation:homePathDraw 1.4s 1.3s cubic-bezier(.2,.8,.2,1) forwards;
}
.js .page-home .hero-system.is-relaying .hero-input-paths path:nth-child(4) {
  animation:homePathDraw 1.1s 1.7s cubic-bezier(.2,.8,.2,1) forwards;
}
.js .page-home .hero-system.is-resolved .hero-output-paths path.hero-resolved-strand {
  animation:homePathDraw .95s .08s cubic-bezier(.2,.8,.2,1) forwards;
}
.page-home .hero-system.is-resolved .hero-input-paths path { opacity:.38; }
.page-home .hero-nodes circle.hero-junction-ring,
.page-home .hero-nodes circle.hero-core-node,
.page-home .hero-nodes circle.hero-dock-node {
  vector-effect:non-scaling-stroke;
}
.page-home .hero-nodes circle.hero-junction-ring {
  fill:none;
  stroke:var(--home-orange);
  stroke-width:1;
  stroke-dasharray:4 5;
  opacity:.42;
  transform-box:fill-box;
  transform-origin:center;
}
.page-home .hero-nodes circle.hero-core-node {
  fill:var(--home-orange);
  stroke:#f0a36e;
  stroke-width:1.5;
  transition:fill .35s ease,stroke .35s ease;
}
.page-home .hero-nodes circle.hero-dock-node {
  fill:#111713;
  stroke:var(--home-green);
  stroke-width:1.5;
  opacity:0;
  transition:opacity .25s .7s ease;
}
.page-home .hero-system.is-resolved .hero-nodes circle.hero-core-node {
  fill:var(--home-green);
  stroke:#76cd99;
}
.page-home .hero-system.is-resolved .hero-nodes circle.hero-junction-ring {
  stroke:var(--home-green);
  animation:heroJunctionFlare .9s .05s ease-out both;
}
.page-home .hero-system.is-resolved .hero-nodes circle.hero-dock-node { opacity:1; }
@keyframes heroJunctionFlare {
  0% { opacity:.85; transform:scale(.65) rotate(0); }
  68% { opacity:.2; transform:scale(1.75) rotate(150deg); }
  100% { opacity:.55; transform:scale(1) rotate(210deg); }
}
.page-home .hero-moving-signals circle.hero-relay-particle,
.page-home .hero-moving-signals circle.hero-idle-particle {
  fill:var(--home-orange);
  stroke:none;
}

/* Hero plate detail — the same technical grammar as the industries plates:
   hierarchical grid, register frame, junction ports, route ticks, a mid-route
   verification gate and a dock node where the strand meets the decision view.
   Geometry only: the svg stretches (preserveAspectRatio="none"), so all
   labels stay in the HTML overlays. */
.page-home .hero-grid-lines .hero-grid-major { stroke:rgba(255,255,255,.09); }
.page-home .hero-frame path { fill:none; stroke-width:1; vector-effect:non-scaling-stroke; }
.page-home .hero-frame .hero-register { stroke:rgba(255,255,255,.22); }
.page-home .hero-frame .hero-frame-ticks { stroke:rgba(255,255,255,.16); }
.page-home .hero-junction-detail .hero-outer-ring { fill:none; stroke:rgba(255,255,255,.13); stroke-width:1; vector-effect:non-scaling-stroke; }
.page-home .hero-junction-detail .hero-junction-ticks { fill:none; stroke:rgba(255,255,255,.26); stroke-width:1; vector-effect:non-scaling-stroke; }
.page-home .hero-junction-detail .hero-port { fill:rgba(255,255,255,.45); transition:fill .4s ease; }
.page-home .hero-system.is-resolved .hero-junction-detail .hero-port { fill:rgba(132,214,165,.75); }
.page-home .hero-route-detail path { vector-effect:non-scaling-stroke; transition:opacity .55s .45s ease; }
.page-home .hero-route-ticks { fill:none; stroke:rgba(255,255,255,.24); stroke-width:1; }
.page-home .hero-gate { fill:#111713; stroke:var(--home-green); stroke-width:1.2; }
.page-home .hero-route-arrow { fill:none; stroke:var(--home-green); stroke-width:1.4; }
.js .page-home .hero-system:not(.is-resolved) .hero-route-detail path { opacity:0; }
.page-home .hero-nodes circle.hero-dock-node { opacity:1; }
.js .page-home .hero-system:not(.is-resolved) .hero-nodes circle.hero-dock-node { opacity:0; }
@media (prefers-reduced-motion:no-preference) {
  .page-home .hero-system.is-idle .hero-nodes circle.hero-junction-ring { animation:heroRingSpin 22s linear infinite; }
}
@keyframes heroRingSpin { from { transform:rotate(210deg); } to { transform:rotate(570deg); } }
.page-home .hero-signal {
  --relay-delay:.2s;
  border-color:rgba(223,119,48,.48);
  background:rgba(12,18,14,.94);
}
.page-home .hero-signal:nth-of-type(even) { border-color:rgba(223,119,48,.48); }
.page-home .hero-signal-b { --relay-delay:.6s; }
.page-home .hero-signal-c { --relay-delay:1s; }
.page-home .hero-signal-d { --relay-delay:1.4s; }
.page-home .hero-signal i,
.page-home .hero-signal-b i,
.page-home .hero-signal-d i { color:#ed9460; }
.page-home .hero-signal::after {
  content:"";
  position:absolute;
  right:-5px;
  top:50%;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#111713;
  border:1.5px solid var(--home-orange);
  transform:translateY(-50%);
  box-sizing:border-box;
}
.js .page-home .hero-system.is-relaying .hero-signal {
  animation:heroSignalWake .65s var(--relay-delay) ease-out backwards;
}
.js .page-home .hero-system.is-relaying .hero-signal b {
  animation:heroStatementWake .6s calc(var(--relay-delay) + .08s) ease-out backwards;
}
.js .page-home .hero-system.is-relaying .hero-signal::after {
  animation:heroTerminalFire .7s calc(var(--relay-delay) + .28s) ease-out backwards;
}
@keyframes heroSignalWake {
  from { opacity:.36; border-color:rgba(223,119,48,.16); box-shadow:none; }
  62% { opacity:1; border-color:rgba(223,119,48,.82); box-shadow:0 0 0 1px rgba(223,119,48,.15); }
  to { opacity:1; border-color:rgba(223,119,48,.48); box-shadow:none; }
}
@keyframes heroStatementWake {
  from { opacity:0; clip-path:inset(0 100% 0 0); }
  to { opacity:1; clip-path:inset(0); }
}
@keyframes heroTerminalFire {
  from { opacity:.2; transform:translateY(-50%) scale(.55); }
  55% { opacity:1; transform:translateY(-50%) scale(1.65); }
  to { opacity:1; transform:translateY(-50%) scale(1); }
}
.page-home .hero-system.is-resolved .hero-signal {
  opacity:.42;
  transform:none;
}
.page-home .hero-decision-interface {
  width:30%;
  min-height:358px;
  right:3.3%;
  top:21.2%;
  display:grid;
  grid-template-rows:38px 279px 41px;
  border-top:0;
  transform:none;
  overflow:visible;
}
.page-home .hero-system.is-resolved .hero-decision-interface { transform:none; }
.page-home .hero-decision-interface::before {
  content:"";
  position:absolute;
  z-index:4;
  left:-7px;
  top:50%;
  width:13px;
  height:13px;
  box-sizing:border-box;
  border-radius:50%;
  background:#111713;
  border:2px solid var(--home-green);
  opacity:0;
  transform:translateY(-50%) scale(.65);
  transition:opacity .25s .72s ease,transform .35s .72s ease;
}
.page-home .hero-decision-interface::after {
  content:"";
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:var(--home-green);
  transform:scaleX(0);
  transform-origin:left;
}
.page-home .hero-system.is-resolved .hero-decision-interface::before {
  opacity:1;
  transform:translateY(-50%) scale(1);
}
.page-home .hero-system.is-resolved .hero-decision-interface::after {
  animation:heroCardSweep .85s .65s cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes heroCardSweep { to { transform:scaleX(1); } }
.page-home .decision-window-bar { height:38px; }
.page-home .decision-layout {
  position:relative;
  min-height:279px;
  overflow:hidden;
}
.page-home .decision-content {
  padding:clamp(1rem,1.65vw,1.55rem);
}
.page-home .decision-content h2 {
  margin-bottom:1.45rem;
  font-size:clamp(1.45rem,2vw,2.45rem);
}
.page-home .decision-status {
  gap:.65rem;
  padding:.58rem 0;
  font-size:clamp(.52rem,.62vw,.65rem);
}
.page-home .decision-skeleton {
  position:absolute;
  z-index:3;
  inset:0;
  padding:1.15rem;
  display:grid;
  grid-template-columns:38px 1fr;
  grid-template-rows:18px 46px repeat(3,34px);
  gap:10px 14px;
  background:#f8f7f2;
  opacity:0;
  pointer-events:none;
}
.page-home .decision-skeleton i {
  display:block;
  background:#dfe1de;
}
.page-home .decision-skeleton i:nth-child(1) { grid-row:1 / -1; background:#ecece7; }
.page-home .decision-skeleton i:nth-child(2) { width:42%; height:8px; align-self:center; }
.page-home .decision-skeleton i:nth-child(3) { width:88%; height:34px; }
.page-home .decision-skeleton i:nth-child(4),
.page-home .decision-skeleton i:nth-child(5),
.page-home .decision-skeleton i:nth-child(6) { height:1px; align-self:center; }
.js .page-home .hero-system:not(.is-resolved) .decision-skeleton { opacity:1; }
.js .page-home .hero-system:not(.is-resolved) .decision-nav,
.js .page-home .hero-system:not(.is-resolved) .decision-content { opacity:0; }
.page-home .hero-system.is-resolved .decision-skeleton {
  animation:heroSkeletonOut .32s .5s ease forwards;
}
.page-home .hero-system.is-resolved .decision-nav {
  animation:heroContentBuild .38s .78s ease-out both;
}
.page-home .hero-system.is-resolved .decision-content > p {
  animation:heroContentBuild .4s .9s ease-out both;
}
.page-home .hero-system.is-resolved .decision-content h2 {
  animation:heroContentBuild .48s 1.08s ease-out both;
}
.page-home .hero-system.is-resolved .decision-status:nth-of-type(1) {
  animation:heroContentBuild .38s 1.42s ease-out both;
}
.page-home .hero-system.is-resolved .decision-status:nth-of-type(2) {
  animation:heroContentBuild .38s 1.68s ease-out both;
}
.page-home .hero-system.is-resolved .decision-status:nth-of-type(3) {
  animation:heroContentBuild .38s 1.94s ease-out both;
}
.page-home .hero-system.is-resolved .decision-status b {
  animation:heroValueStamp .34s 2.05s ease-out both;
}
@keyframes heroSkeletonOut {
  to { opacity:0; transform:translateY(5px); }
}
@keyframes heroContentBuild {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:none; }
}
@keyframes heroValueStamp {
  from { opacity:0; transform:translateX(5px); }
  to { opacity:1; transform:none; }
}
.page-home .decision-footer {
  min-height:41px;
  padding:0 .9rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  color:#6e756f;
  background:#edede8;
  border-top:1px solid var(--home-line);
  font-family:var(--font-mono);
  font-size:.5rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.page-home .decision-footer b {
  color:var(--home-orange);
  font-weight:600;
  transition:color .3s ease;
}
.page-home .hero-system.is-resolved .decision-footer b { color:var(--home-green-deep); }
.page-home .hero-outcome-chip { display:none; }

@media (max-width:960px) and (min-width:681px) {
  .page-home .hero-signal { width:27%; }
  .page-home .hero-decision-interface {
    width:30%;
    right:3.2%;
  }
}
@media (max-width:680px) {
  .page-home .hero-zone-lines,
  .page-home .hero-input-paths,
  .page-home .hero-output-paths,
  .page-home .hero-nodes,
  .page-home .hero-frame,
  .page-home .hero-route-detail,
  .page-home .hero-junction-detail,
  .page-home .hero-moving-signals { display:none; }
  .page-home .hero-signal::after { display:none; }
  .page-home .hero-decision-interface {
    width:calc(100% - 2rem);
    min-height:342px;
    left:1rem;
    right:auto;
    top:19.4rem;
    grid-template-rows:38px 263px 41px;
  }
  .page-home .hero-decision-interface::before { display:none; }
  .page-home .decision-layout { min-height:263px; }
  .page-home .decision-content h2 { font-size:clamp(1.4rem,7vw,1.9rem); }
}
@media (prefers-reduced-motion:reduce) {
  .js .page-home .hero-system .hero-input-paths path,
  .js .page-home .hero-system .hero-output-paths path {
    stroke-dashoffset:0;
    animation:none;
  }
  .page-home .hero-moving-signals { display:none; }
  .page-home .hero-system .hero-signal,
  .page-home .hero-system .hero-signal b,
  .page-home .hero-system .hero-signal::after,
  .page-home .hero-system .hero-junction-ring,
  .page-home .hero-system .hero-decision-interface::after,
  .page-home .hero-system .decision-nav,
  .page-home .hero-system .decision-content > *,
  .page-home .hero-system .decision-status b {
    animation:none;
    transition:none;
  }
  .page-home .hero-system .hero-decision-interface::after { transform:scaleX(1); }
  .page-home .hero-system .decision-skeleton { display:none; }
  .js .page-home .hero-system .decision-nav,
  .js .page-home .hero-system .decision-content { opacity:1; }
  .page-home .hero-route-detail path,
  .page-home .hero-junction-detail .hero-port,
  .page-home .hero-nodes circle.hero-dock-node { transition:none; }
}

/* Selected work: one fixed rail-and-stage instrument. */
.page-home .home-work-section {
  --work-accent: var(--home-green);
  background:var(--home-paper);
}
.page-home .work-head {
  grid-template-columns:minmax(220px,.27fr) minmax(0,1.05fr) minmax(260px,.68fr);
  gap:clamp(1.5rem,3vw,3.5rem);
  margin-bottom:clamp(2.6rem,4.5vw,4.5rem);
}
.page-home .work-head > div { max-width:38rem; }
.page-home .work-module {
  width:var(--home-container);
  margin:0 auto;
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}
.page-home .work-showcase {
  width:100%;
  grid-template-columns:minmax(235px,27%) minmax(0,73%);
  gap:0;
  align-items:stretch;
}
.page-home .work-index {
  position:relative;
  top:auto;
  min-height:890px;
  padding-right:clamp(1.25rem,2.5vw,2.5rem);
  border-top:0;
  border-right:1px solid var(--home-line);
}
.page-home .work-index button {
  grid-template-columns:28px 1fr;
  gap:.25rem .55rem;
  padding:1.25rem .15rem;
  color:rgba(17,19,18,.45);
  transition:color .25s ease,background .25s ease,padding-left .3s var(--home-ease);
}
.page-home .work-index button b { color:inherit; }
.page-home .work-index button span { color:inherit; }
.page-home .work-index button:hover,
.page-home .work-index button:focus-visible,
.page-home .work-index button[aria-selected="true"] {
  padding-left:.45rem;
  color:var(--home-dark);
  background:rgba(0,139,65,.035);
}
.page-home .work-index button[aria-selected="true"] {
  box-shadow:inset 3px 0 0 var(--home-green);
}
.page-home .work-index button[aria-selected="true"] span { color:var(--home-green); }
.page-home .work-index button:nth-child(n) { --work-accent:var(--home-green); }
.page-home .work-stage {
  min-height:890px;
  position:relative;
  padding-left:clamp(1.5rem,3vw,3.5rem);
}
.page-home .work-panel {
  --work-accent:var(--home-green) !important;
  min-height:890px;
}
.js .page-home .work-panel {
  transform:translateY(8px);
  transition:opacity .3s ease,transform .34s var(--home-ease),visibility .3s;
}
.page-home .work-panel-meta {
  min-height:58px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  justify-content:initial;
  gap:.45rem;
  padding:0;
  border-bottom:1px solid var(--home-line);
}
.page-home .work-panel-meta > span:first-child::after {
  content:" /";
  color:#a2a49f;
}
.page-home .work-context-badge {
  justify-self:end;
  margin-left:0;
  color:var(--home-green);
}
.page-home .product-environment {
  height:570px;
  border-color:color-mix(in srgb,var(--home-green) 34%,#d0d0ca);
  box-shadow:none;
}
.page-home .work-case-facts {
  min-height:74px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  border-bottom:1px solid var(--home-line);
}
.page-home .work-case-facts > div {
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.65rem;
  padding:.85rem clamp(.7rem,1.3vw,1.2rem);
  border-right:1px solid var(--home-line);
}
.page-home .work-case-facts > div:first-child { padding-left:0; }
.page-home .work-case-facts > div:last-child { border-right:0; padding-right:0; }
.page-home .work-case-facts dt {
  margin:0;
  color:#838781;
  font-family:var(--font-mono);
  font-size:.54rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.page-home .work-case-facts dd {
  min-width:0;
  margin:0;
  color:var(--home-dark);
  font-size:clamp(.7rem,.85vw,.84rem);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.page-home .work-panel-copy {
  min-height:188px;
  grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);
  grid-template-rows:auto auto;
  gap:.7rem clamp(1.5rem,3vw,3.5rem);
  align-items:start;
  padding-top:clamp(1.5rem,2.4vw,2.4rem);
}
.page-home .work-panel-copy h3 {
  grid-row:1 / 3;
  max-width:720px;
  font-size:clamp(2rem,3.25vw,4rem);
  line-height:.98;
  letter-spacing:-.045em;
}
.page-home .work-panel-copy p {
  align-self:start;
  max-width:390px;
}
.page-home .work-panel-copy a {
  grid-column:2;
  align-self:end;
  width:max-content;
  margin-top:.35rem;
  color:var(--home-dark);
}
.page-home .work-module > .section-end-link {
  width:100%;
  min-height:94px;
  margin:0;
  padding:1.25rem 0;
  align-items:center;
  border-top:1px solid var(--home-line);
}
.page-home .product-topbar span::before {
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:.45rem;
  border-radius:50%;
  background:var(--home-green);
  animation:workLiveDot 3.4s ease-in-out infinite;
}
@keyframes workLiveDot {
  0%,100% { opacity:.45; box-shadow:0 0 0 0 rgba(0,139,65,0); }
  50% { opacity:1; box-shadow:0 0 0 5px rgba(0,139,65,.1); }
}
.page-home .product-topbar i,
.page-home .portal-header i,
.page-home .portal-progress i span,
.page-home .gov-steps .done,
.page-home .gov-steps .active { background:var(--home-green); }
.page-home .portal-ui,
.page-home .government-ui { background:#dce2dd; }
.page-home .gov-citizen > span,
.page-home .gov-case i { color:var(--home-green); }
.js .page-home .work-module {
  opacity:0;
  transform:translateY(14px);
  transition:opacity .38s .22s ease,transform .58s .22s var(--home-ease);
}
.js .page-home .home-work-section.is-home-visible .work-module {
  opacity:1;
  transform:none;
}

@media (max-width:960px) {
  .page-home .work-head { grid-template-columns:1fr 1.45fr; }
  .page-home .work-head > div { grid-column:2; }
  .page-home .work-showcase { grid-template-columns:1fr; }
  .page-home .work-index {
    min-height:0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding-right:0;
    border-right:0;
    border-bottom:1px solid var(--home-line);
  }
  .page-home .work-index button { min-height:92px; border-right:1px solid var(--home-line); }
  .page-home .work-index button:last-child { border-right:0; }
  .page-home .work-index button[aria-selected="true"] { box-shadow:inset 0 -3px 0 var(--home-green); }
  .page-home .work-stage { min-height:850px; padding-left:0; }
  .page-home .work-panel { min-height:850px; }
  .page-home .product-environment { height:530px; }
}
@media (max-width:680px) {
  .page-home .work-head { grid-template-columns:1fr; }
  .page-home .work-head > div { grid-column:1; }
  .page-home .work-index { grid-template-columns:1fr 1fr; }
  .page-home .work-index button { min-height:86px; }
  .page-home .work-panel-meta {
    min-height:52px;
    grid-template-columns:auto 1fr;
    font-size:.5rem;
  }
  .page-home .work-context-badge { display:none; }
  .page-home .product-environment { height:430px; }
  .page-home .work-case-facts { min-height:92px; }
  .page-home .work-case-facts > div {
    grid-template-columns:1fr;
    align-content:center;
    gap:.28rem;
    padding:.65rem .45rem;
  }
  .page-home .work-case-facts > div:first-child { padding-left:0; }
  .page-home .work-case-facts > div:last-child { padding-right:0; }
  .page-home .work-case-facts dd {
    font-size:.67rem;
    white-space:normal;
    line-height:1.25;
  }
  .page-home .work-panel-copy {
    min-height:270px;
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:1rem;
    padding-top:1.35rem;
  }
  .page-home .work-panel-copy h3 { grid-row:auto; font-size:clamp(1.8rem,9vw,2.7rem); }
  .page-home .work-panel-copy a { grid-column:1; }
  .page-home .work-stage,
  .page-home .work-panel { min-height:850px; }
  .page-home .work-module > .section-end-link { min-height:82px; }
}
@media (prefers-reduced-motion:reduce) {
  .js .page-home .work-module,
  .js .page-home .work-panel { transition:none; transform:none; }
  .page-home .product-topbar span::before { animation:none; opacity:1; }
}

/* Services v2: one instrument language across strategy, evidence, design, build, scale and change. */
.page-home .service-lifecycle {
  grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto 1fr auto;
}
.page-home .service-lifecycle b {
  background:var(--home-green);
  box-shadow:0 0 0 5px rgba(0,139,65,.12);
}
.page-home .service-tabs button {
  min-height:66px;
  line-height:1.18;
}
.page-home .service-tabs button[aria-selected="true"] {
  border-left:3px solid var(--service-accent,var(--home-green));
}
.page-home .service-copy h3 {
  font-size:clamp(2.4rem,3.7vw,4.55rem);
}
.page-home .service-instrument {
  width:100%;
  height:100%;
  overflow:visible;
}
.page-home .service-instrument path,
.page-home .service-instrument rect,
.page-home .service-instrument circle {
  vector-effect:non-scaling-stroke;
}
.page-home .service-instrument text {
  fill:rgba(235,239,235,.68);
  font-family:var(--font-mono);
  font-size:9px;
  letter-spacing:.08em;
}
.page-home .service-instrument .instrument-bezel path {
  stroke:rgba(255,255,255,.13);
  stroke-width:1;
}
.page-home .service-instrument .instrument-bezel text {
  fill:rgba(255,255,255,.4);
  font-size:8px;
}
.page-home .service-instrument .service-draw path,
.page-home .service-instrument .service-paths path,
.page-home .service-instrument .service-journey path {
  fill:none;
  stroke:rgba(235,239,235,.34);
  stroke-width:1.15;
}
.page-home .service-instrument .service-route-primary {
  stroke:var(--service-accent);
  stroke-width:1.8;
}
.page-home .service-instrument .service-nodes circle {
  fill:#111713;
  stroke:rgba(255,255,255,.5);
  stroke-width:1.2;
}
.page-home .service-instrument .service-nodes .active-node {
  fill:var(--service-accent);
  stroke:var(--service-accent);
  transform-box:fill-box;
  transform-origin:center;
  animation:serviceNodePulse 3s ease-in-out infinite;
}
.page-home .service-instrument .service-annotations .service-readout {
  fill:var(--service-accent);
}
.page-home .service-instrument .service-traveller {
  fill:var(--service-accent);
  stroke:#fff;
  stroke-width:1;
}
.page-home .service-instrument :is(.research-cards,.build-layers,.enterprise-inputs,.system-components,.current-state,.future-state) rect,
.page-home .service-instrument :is(.pipeline-gates,.interface-frames,.live-product) rect {
  fill:rgba(17,23,19,.78);
  stroke:rgba(255,255,255,.24);
  stroke-width:1;
}
.page-home .service-instrument :is(.research-cards,.build-layers,.enterprise-inputs,.system-components,.current-state,.future-state) text,
.page-home .service-instrument :is(.pipeline-gates,.interface-frames,.live-product) text {
  fill:rgba(255,255,255,.68);
}
.page-home .service-instrument .interface-frames path,
.page-home .service-instrument .live-product path {
  fill:none;
  stroke:rgba(255,255,255,.25);
  stroke-width:1;
}
.page-home .service-instrument .interface-action {
  fill:var(--service-accent) !important;
  stroke:var(--service-accent) !important;
}
.page-home .service-instrument .pipeline-gates rect {
  fill:color-mix(in srgb,var(--service-accent) 16%,#111713);
  stroke:var(--service-accent);
}
.page-home .service-instrument .phase-nodes text {
  fill:rgba(255,255,255,.55);
  font-family:var(--font-mono);
  font-size:8px;
}
.page-home .service-instrument .transformation-route {
  stroke-dasharray:5 4;
}
.page-home .service-instrument .instrument-plate .instrument-ruler {
  fill:none;
  stroke:var(--service-accent);
  stroke-width:1;
  opacity:.28;
}
.page-home .service-instrument .instrument-plate text {
  fill:rgba(235,239,235,.38);
  font-size:8px;
}
.page-home .service-instrument .instrument-plate .instrument-plate-id {
  fill:var(--service-accent);
  opacity:.6;
}
.page-home .service-instrument .service-gate {
  fill:#111713;
  stroke:var(--service-accent);
  stroke-width:1.2;
}
.js .page-home .service-panel.is-active .service-instrument .service-draw path,
.js .page-home .service-panel.is-active .service-instrument .service-paths path {
  stroke-dasharray:1000;
  stroke-dashoffset:1000;
  animation:servicePathBoot .75s .16s var(--home-ease) forwards;
}
.js .page-home .service-panel.is-active .service-instrument :is(.service-nodes,.research-cards,.build-layers,.enterprise-inputs,.system-components,.current-state,.future-state,.interface-frames,.live-product,.pipeline-gates,.service-annotations) {
  animation:serviceLayerBoot .42s .42s ease-out both;
}
.js .page-home .service-panel.is-active .service-instrument .instrument-plate {
  animation:serviceLayerBoot .36s .08s ease-out both;
}
.js .page-home .service-panel.is-active .service-instrument .service-gate {
  transform-box:fill-box;
  transform-origin:center;
  animation:serviceLayerBoot .3s .55s ease-out both;
}
@keyframes servicePathBoot { to { stroke-dashoffset:0; } }
@keyframes serviceLayerBoot {
  from { opacity:0; transform:translateY(7px); }
  to { opacity:1; transform:none; }
}
@keyframes serviceNodePulse {
  0%,100% { opacity:.72; transform:scale(.88); }
  50% { opacity:1; transform:scale(1); }
}

@media (max-width:960px) {
  .page-home .service-tabs button { min-height:82px; font-size:.86rem; }
  .page-home .service-panel { grid-template-columns:.85fr 1.15fr; }
}
@media (max-width:680px) {
  .page-home .service-tabs button { min-height:88px; font-size:.72rem; }
  .page-home .service-panels,
  .page-home .service-panel { min-height:900px; }
  .page-home .service-panel { grid-template-columns:1fr; }
  .page-home .service-instrument text { font-size:8px; }
  .page-home .service-copy h3 { font-size:clamp(2.2rem,10vw,3rem); }
}
@media (prefers-reduced-motion:reduce) {
  .page-home .service-instrument .service-traveller { display:none; }
  .page-home .service-instrument .service-nodes .active-node,
  .js .page-home .service-panel.is-active .service-instrument * {
    animation:none;
  }
  .js .page-home .service-panel.is-active .service-instrument .service-draw path,
  .js .page-home .service-panel.is-active .service-instrument .service-paths path {
    stroke-dashoffset:0;
  }
}

/* Services v3: editorial intro, pill phases and a wide animation stage. */
.page-home .services-intro {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3.5rem);
  align-items:start;
  margin-bottom:clamp(3.5rem,6vw,6rem);
}
.page-home .services-intro .home-label {
  grid-column:1 / -1;
  margin:0 0 clamp(1.6rem,3vw,3rem);
  padding-top:1.2rem;
  border-top:1px solid var(--home-line);
}
.page-home .services-intro h2 {
  grid-column:1 / 9;
  max-width:900px;
  font-size:clamp(4rem,6.2vw,7.2rem);
  line-height:.9;
}
.page-home .services-intro > p:last-child {
  grid-column:9 / -1;
  max-width:420px;
  margin:.35rem 0 0;
  font-size:clamp(1rem,1.25vw,1.2rem);
  line-height:1.6;
}
.page-home .service-lifecycle {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.65rem;
  padding:1rem 0;
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}
.page-home .service-lifecycle > i,
.page-home .service-lifecycle > b { display:none; }
.page-home .service-lifecycle > span {
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:.65rem 1rem;
  border:1px solid transparent;
  border-radius:999px;
  color:#777c78;
  transition:color .25s ease,background .3s ease,border-color .3s ease,transform .3s var(--home-ease);
}
.page-home .service-lifecycle > span.is-active {
  color:#fff;
  background:var(--home-green);
  border-color:var(--home-green);
  transform:translateY(-1px);
}
.page-home .service-explorer:has([data-service-tab="strategy"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(1),
.page-home .service-explorer:has([data-service-tab="research"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(2),
.page-home .service-explorer:has([data-service-tab="design"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(3),
.page-home .service-explorer:has([data-service-tab="development"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(4),
.page-home .service-explorer:has([data-service-tab="systems"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(5),
.page-home .service-explorer:has([data-service-tab="transformation"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(6) {
  color:#fff;
  background:var(--home-green);
  border-color:var(--home-green);
  transform:translateY(-1px);
}
.page-home .service-layout {
  display:grid;
  grid-template-columns:1fr;
  border-top:0;
}
.page-home .service-tabs {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-right:0;
  border-bottom:1px solid var(--home-line);
}
.page-home .service-tabs button {
  min-height:82px;
  padding:1rem 1.25rem;
  border-right:1px solid var(--home-line);
  background:rgba(255,255,255,.13);
  font-size:clamp(.88rem,1vw,1.03rem);
}
.page-home .service-tabs button:nth-child(3n) { border-right:0; }
.page-home .service-tabs button:nth-child(-n+3) { border-bottom:1px solid var(--home-line); }
.page-home .service-tabs button:hover,
.page-home .service-tabs button:focus-visible,
.page-home .service-tabs button[aria-selected="true"] {
  padding-left:1.25rem;
  background:rgba(255,255,255,.62);
}
.page-home .service-tabs button:focus-visible {
  outline:2px solid var(--service-accent,var(--home-green));
  outline-offset:-3px;
}
.page-home .service-tabs button[aria-selected="true"] {
  box-shadow:inset 0 -3px 0 var(--service-accent,var(--home-green));
  border-left:0;
}
.page-home .service-panels,
.page-home .service-panel { min-height:700px; }
.page-home .service-panel {
  grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);
  gap:clamp(2.5rem,5vw,6rem);
  padding:clamp(2.5rem,4.5vw,5rem) 0;
  align-items:center;
}
.page-home .service-copy {
  padding-left:clamp(.5rem,2vw,2rem);
}
.page-home .service-copy h3 {
  max-width:540px;
  font-size:clamp(2.75rem,4vw,4.85rem);
  line-height:.94;
}
.page-home .service-copy > p:not(.service-question) {
  max-width:520px;
  font-size:clamp(.95rem,1.08vw,1.08rem);
}
.page-home .service-visual {
  min-height:570px;
  align-self:stretch;
  border:1px solid color-mix(in srgb,var(--service-accent) 38%,#263029);
}
.page-home .service-instrument {
  max-height:620px;
}
.page-home .service-instrument text {
  paint-order:stroke fill;
  stroke:#111713;
  stroke-width:2.4px;
  stroke-linejoin:round;
}
.page-home .service-instrument :is(.research-cards,.build-layers,.enterprise-inputs,.system-components,.current-state,.future-state,.pipeline-gates,.interface-frames,.live-product) text {
  stroke:rgba(17,23,19,.94);
}

@media (max-width:960px) {
  .page-home .services-intro h2 { grid-column:1 / 9; font-size:clamp(3.7rem,7vw,5.6rem); }
  .page-home .services-intro > p:last-child { grid-column:9 / -1; }
  .page-home .service-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-home .service-tabs button:nth-child(3n) { border-right:1px solid var(--home-line); }
  .page-home .service-tabs button:nth-child(2n) { border-right:0; }
  .page-home .service-tabs button:nth-child(-n+4) { border-bottom:1px solid var(--home-line); }
  .page-home .service-panel {
    grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);
    gap:2.5rem;
  }
  .page-home .service-copy h3 { font-size:clamp(2.45rem,4.8vw,3.7rem); }
  .page-home .service-visual { min-height:500px; }
}
@media (max-width:680px) {
  .page-home .services-intro { grid-template-columns:1fr; gap:1.5rem; }
  .page-home .services-intro .home-label,
  .page-home .services-intro h2,
  .page-home .services-intro > p:last-child { grid-column:1; }
  .page-home .services-intro h2 { font-size:clamp(3.4rem,15vw,5rem); }
  .page-home .service-lifecycle {
    grid-template-columns:repeat(3,1fr);
    gap:.45rem;
  }
  .page-home .service-lifecycle > span { min-height:34px; padding:.55rem .6rem; }
  .page-home .service-tabs { grid-template-columns:1fr; }
  .page-home .service-tabs button,
  .page-home .service-tabs button:nth-child(n) {
    min-height:66px;
    border-right:0;
    border-bottom:1px solid var(--home-line);
  }
  .page-home .service-panels,
  .page-home .service-panel { min-height:970px; }
  .page-home .service-panel {
    grid-template-columns:1fr;
    gap:2rem;
    padding:2.25rem 0;
    align-content:start;
  }
  .page-home .service-copy { padding:0 .25rem; }
  .page-home .service-copy h3 { font-size:clamp(2.6rem,11.5vw,3.6rem); }
  .page-home .service-visual { min-height:430px; align-self:auto; }
}
@media (prefers-reduced-motion:reduce) {
  .page-home .service-lifecycle > span { transition:none; transform:none; }
}

/* Services v4: continuous selector rail and richer service-specific instruments. */
.page-home .service-lifecycle > span.is-active,
.page-home .service-explorer:has([data-service-tab="strategy"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(1),
.page-home .service-explorer:has([data-service-tab="research"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(2),
.page-home .service-explorer:has([data-service-tab="design"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(3),
.page-home .service-explorer:has([data-service-tab="development"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(4),
.page-home .service-explorer:has([data-service-tab="systems"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(5),
.page-home .service-explorer:has([data-service-tab="transformation"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(6) {
  color:var(--home-dark);
  background:#e9e5da;
  border-color:var(--home-dark);
  font-weight:700;
}
.page-home .service-tabs {
  display:grid;
  grid-template-columns:repeat(6,minmax(190px,1fr));
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  border-top:1px solid var(--home-line);
  border-bottom:1px solid var(--home-line);
}
.page-home .service-tabs::-webkit-scrollbar { display:none; }
.page-home .service-tabs button,
.page-home .service-tabs button:nth-child(n) {
  min-height:112px;
  padding:1.15rem 1rem;
  border-right:1px solid var(--home-line);
  border-bottom:0;
  background:transparent;
  color:var(--home-dark);
  opacity:.46;
  scroll-snap-align:start;
  align-content:center;
  font-weight:450;
  transition:opacity .25s ease,background .25s ease,font-weight .25s ease;
}
.page-home .service-tabs button:last-child { border-right:0; }
.page-home .service-tabs button:hover,
.page-home .service-tabs button:focus-visible {
  padding-left:1rem;
  color:var(--home-dark);
  background:rgba(17,19,18,.025);
  opacity:.78;
}
.page-home .service-tabs button[aria-selected="true"] {
  padding-left:1rem;
  color:var(--home-dark);
  background:rgba(17,19,18,.035);
  box-shadow:inset 0 -3px 0 var(--home-dark);
  opacity:1;
  font-weight:700;
}
.page-home .service-tabs button[aria-selected="true"] span {
  color:var(--home-dark);
  font-weight:700;
}
.page-home .service-tabs button:focus-visible {
  outline:0;
  box-shadow:inset 0 -3px 0 var(--home-dark);
  opacity:1;
  font-weight:700;
}

.page-home .service-instrument .active-node-ring {
  fill:none;
  stroke:var(--service-accent);
  stroke-width:1;
  stroke-dasharray:4 5;
  transform-box:fill-box;
  transform-origin:center;
}
.js .page-home .service-panel.is-active .active-node-ring {
  animation:serviceRingRotate 9s linear infinite;
}
.page-home .service-instrument .service-traveller-secondary { opacity:.58; }
.page-home .service-instrument .service-telemetry text {
  fill:rgba(255,255,255,.47);
  font-size:8px;
}
.page-home .service-instrument .service-telemetry .service-readout { fill:var(--service-accent); }
.page-home .service-instrument .service-telemetry rect {
  fill:rgba(255,255,255,.13);
  stroke:none;
}
.page-home .service-instrument .service-telemetry .telemetry-fill,
.page-home .service-instrument .service-telemetry .build-progress {
  fill:var(--service-accent);
}
.page-home .service-instrument .route-chevrons path {
  fill:none;
  stroke:var(--service-accent);
  stroke-width:1.2;
}
.page-home .service-instrument .interface-cursor {
  fill:var(--service-accent);
  stroke:#fff;
  stroke-width:1;
}
.js .page-home .service-panel.is-active .interface-cursor {
  animation:serviceCursorTap 2.8s 1s ease-in-out infinite;
}
.js .page-home .service-panel.is-active .build-progress {
  transform-box:fill-box;
  transform-origin:left;
  animation:serviceBuildProgress 4.4s .8s ease-in-out infinite;
}
.js .page-home .service-panel.is-active .pipeline-gates rect:nth-of-type(1) {
  animation:serviceGateFlash 4.4s 1.4s ease-in-out infinite;
}
.js .page-home .service-panel.is-active .pipeline-gates rect:nth-of-type(2) {
  animation:serviceGateFlash 4.4s 2.25s ease-in-out infinite;
}
.js .page-home .service-panel.is-active .research-cards rect:nth-of-type(1) { animation:serviceEvidenceScan 5.2s .7s ease-in-out infinite; }
.js .page-home .service-panel.is-active .research-cards rect:nth-of-type(2) { animation:serviceEvidenceScan 5.2s 1.25s ease-in-out infinite; }
.js .page-home .service-panel.is-active .research-cards rect:nth-of-type(3) { animation:serviceEvidenceScan 5.2s 1.8s ease-in-out infinite; }
.js .page-home .service-panel.is-active .research-cards rect:nth-of-type(4) { animation:serviceEvidenceScan 5.2s 2.35s ease-in-out infinite; }
.js .page-home .service-panel.is-active .system-components rect:nth-of-type(1) { animation:serviceSystemEnergize 5.4s 1.8s ease-in-out infinite; }
.js .page-home .service-panel.is-active .system-components rect:nth-of-type(2) { animation:serviceSystemEnergize 5.4s 2.4s ease-in-out infinite; }
.js .page-home .service-panel.is-active .system-components rect:nth-of-type(3) { animation:serviceSystemEnergize 5.4s 3s ease-in-out infinite; }
.js .page-home .service-panel.is-active .future-state rect {
  animation:serviceFutureReady 5.8s 3.25s ease-in-out infinite;
}
@keyframes serviceRingRotate { to { transform:rotate(360deg); } }
@keyframes serviceCursorTap {
  0%,70%,100% { opacity:.45; transform:scale(.75); }
  78% { opacity:1; transform:scale(1.45); }
  86% { opacity:1; transform:scale(1); }
}
@keyframes serviceBuildProgress {
  0%,12% { transform:scaleX(.08); opacity:.45; }
  72%,88% { transform:scaleX(1); opacity:1; }
  100% { transform:scaleX(1); opacity:.35; }
}
@keyframes serviceGateFlash {
  0%,18%,100% { fill:rgba(17,23,19,.78); }
  25%,38% { fill:color-mix(in srgb,var(--service-accent) 50%,#111713); }
}
@keyframes serviceEvidenceScan {
  0%,12%,100% { stroke:rgba(255,255,255,.24); }
  18%,28% { stroke:var(--service-accent); }
}
@keyframes serviceSystemEnergize {
  0%,18%,100% { stroke:rgba(255,255,255,.24); }
  24%,38% { stroke:var(--service-accent); fill:color-mix(in srgb,var(--service-accent) 12%,#111713); }
}
@keyframes serviceFutureReady {
  0%,48%,100% { stroke:rgba(255,255,255,.24); }
  58%,78% { stroke:var(--service-accent); fill:color-mix(in srgb,var(--service-accent) 14%,#111713); }
}

@media (max-width:960px) {
  .page-home .service-tabs { grid-template-columns:repeat(6,minmax(205px,1fr)); }
}
@media (max-width:680px) {
  .page-home .service-tabs { grid-template-columns:repeat(6,minmax(230px,1fr)); }
  .page-home .service-tabs button,
  .page-home .service-tabs button:nth-child(n) { min-height:88px; }
}
@media (prefers-reduced-motion:reduce) {
  .page-home .service-instrument .active-node-ring,
  .page-home .service-instrument .interface-cursor,
  .page-home .service-instrument .build-progress,
  .page-home .service-instrument .pipeline-gates rect,
  .page-home .service-instrument .research-cards rect,
  .page-home .service-instrument .system-components rect,
  .page-home .service-instrument .future-state rect { animation:none !important; }
}

/* Services v5: resolved navigation states, copy rhythm and staged panel reveals.
   The explorer root carries --service-accent (set by script.js on tab change) so
   the lifecycle pill, tab underline and CTA share the active service's accent. */
.page-home .service-explorer { --service-accent:#f1b547; }
.page-home .service-lifecycle { gap:.55rem; padding:.85rem 0; }
.page-home .service-lifecycle > span {
  position:relative;
  gap:.55rem;
  color:#84887f;
  font-weight:500;
  border:1px solid transparent;
  transition:color .25s ease,background .3s ease,border-color .3s ease;
}
.page-home .service-lifecycle > span::before {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor;
  opacity:.45;
  transition:background .3s ease,opacity .3s ease;
}
.page-home .service-lifecycle > span:hover {
  color:var(--home-dark);
  border-color:rgba(17,19,18,.16);
}
.page-home .service-lifecycle > span.is-active,
.page-home .service-explorer:has([data-service-tab="strategy"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(1),
.page-home .service-explorer:has([data-service-tab="research"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(2),
.page-home .service-explorer:has([data-service-tab="design"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(3),
.page-home .service-explorer:has([data-service-tab="development"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(4),
.page-home .service-explorer:has([data-service-tab="systems"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(5),
.page-home .service-explorer:has([data-service-tab="transformation"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(6) {
  color:#f5f1e7;
  background:var(--home-dark);
  border-color:var(--home-dark);
  font-weight:700;
  transform:none;
}
.page-home .service-lifecycle > span.is-active::before,
.page-home .service-explorer:has([data-service-tab="strategy"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(1)::before,
.page-home .service-explorer:has([data-service-tab="research"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(2)::before,
.page-home .service-explorer:has([data-service-tab="design"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(3)::before,
.page-home .service-explorer:has([data-service-tab="development"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(4)::before,
.page-home .service-explorer:has([data-service-tab="systems"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(5)::before,
.page-home .service-explorer:has([data-service-tab="transformation"][aria-selected="true"]) .service-lifecycle > span:nth-of-type(6)::before {
  background:var(--service-accent);
  opacity:1;
}
.page-home .service-tabs button,
.page-home .service-tabs button:nth-child(n) {
  position:relative;
  display:grid;
  grid-template-columns:1.9rem 1fr;
  column-gap:.9rem;
  align-items:center;
  text-align:left;
  opacity:.5;
  box-shadow:none;
}
.page-home .service-tabs button span {
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.06em;
  color:#8a8e86;
  transition:color .25s ease;
}
.page-home .service-tabs button::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--service-accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s var(--home-ease);
}
.page-home .service-tabs button:hover,
.page-home .service-tabs button:focus-visible {
  opacity:.85;
  background:rgba(17,19,18,.03);
  box-shadow:none;
  font-weight:450;
}
.page-home .service-tabs button[aria-selected="true"] {
  opacity:1;
  background:rgba(255,255,255,.6);
  box-shadow:none;
  font-weight:700;
}
.page-home .service-tabs button[aria-selected="true"]::after { transform:scaleX(1); }
.page-home .service-tabs button[aria-selected="true"] span { color:var(--home-dark); }
.page-home .service-tabs button:focus-visible {
  outline:2px solid var(--service-accent);
  outline-offset:-3px;
}
.page-home .service-meta {
  display:flex;
  align-items:center;
  gap:.9rem;
  margin:0 0 1.1rem;
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8a8e86;
}
.page-home .service-meta b {
  color:var(--home-dark);
  font-weight:600;
}
.page-home .service-meta::after {
  content:"";
  flex:0 0 2.2rem;
  height:1px;
  background:color-mix(in srgb,var(--service-accent) 65%,transparent);
}
.page-home .service-copy h3 {
  text-wrap:balance;
  font-size:clamp(2.5rem,3.5vw,4.1rem);
  line-height:.97;
  letter-spacing:-.032em;
  margin:1.3rem 0 1.6rem;
}
.page-home .service-copy > p:not(.service-question):not(.service-meta) {
  max-width:46ch;
  line-height:1.66;
}
.page-home .service-copy a {
  gap:.8rem;
  margin-top:2.1rem;
  padding-bottom:.45rem;
  border-bottom-color:color-mix(in srgb,var(--service-accent) 45%,transparent);
  position:relative;
  transition:border-color .3s ease;
}
.page-home .service-copy a::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:var(--service-accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s var(--home-ease);
}
.page-home .service-copy a:hover::after,
.page-home .service-copy a:focus-visible::after { transform:scaleX(1); }
.page-home .service-copy a span { transition:transform .3s var(--home-ease); }
.page-home .service-copy a:hover span,
.page-home .service-copy a:focus-visible span { transform:translate(3px,-3px); }
.js .page-home .service-panel.is-active .service-copy > * {
  animation:serviceCopyIn .5s var(--home-ease) both;
}
.js .page-home .service-panel.is-active .service-copy > *:nth-child(1) { animation-delay:.05s; }
.js .page-home .service-panel.is-active .service-copy > *:nth-child(2) { animation-delay:.11s; }
.js .page-home .service-panel.is-active .service-copy > *:nth-child(3) { animation-delay:.17s; }
.js .page-home .service-panel.is-active .service-copy > *:nth-child(4) { animation-delay:.25s; }
.js .page-home .service-panel.is-active .service-copy > *:nth-child(5) { animation-delay:.33s; }
.js .page-home .service-panel.is-active .service-visual {
  animation:serviceVisualIn .55s .08s var(--home-ease) both;
}
@keyframes serviceCopyIn {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:none; }
}
@keyframes serviceVisualIn {
  from { opacity:0; transform:translateY(10px) scale(.988); }
  to { opacity:1; transform:none; }
}
.page-home .service-instrument .instrument-detail {
  fill:none;
  stroke:rgba(235,239,235,.4);
  stroke-width:1;
}
.page-home .service-instrument .instrument-detail-accent {
  fill:none;
  stroke:var(--service-accent);
  stroke-width:1.2;
}
.page-home .service-instrument .sample-dots circle {
  fill:var(--service-accent);
  stroke:none;
}
.page-home .service-instrument .sample-dots circle.dot-out {
  fill:none;
  stroke:rgba(235,239,235,.45);
  stroke-width:1;
}
.page-home .service-instrument .token-chips rect {
  fill:color-mix(in srgb,var(--service-accent) 30%,#111713);
  stroke:color-mix(in srgb,var(--service-accent) 60%,transparent);
  stroke-width:1;
}
.page-home .service-instrument .token-chips rect.chip-off {
  fill:none;
  stroke:rgba(235,239,235,.3);
}
.page-home .service-instrument .phase-bars rect {
  fill:rgba(255,255,255,.13);
  stroke:none;
}
.page-home .service-instrument .phase-bars rect.phase-done { fill:var(--service-accent); }
.page-home .service-instrument .phase-bars rect.phase-live { fill:color-mix(in srgb,var(--service-accent) 55%,#111713); }
@media (prefers-reduced-motion:reduce) {
  .js .page-home .service-panel.is-active .service-copy > *,
  .js .page-home .service-panel.is-active .service-visual {
    animation:none;
  }
  .page-home .service-tabs button::after,
  .page-home .service-copy a::after,
  .page-home .service-copy a span,
  .page-home .service-lifecycle > span { transition:none; }
}

/* Sections 06–09 and footer: shared editorial grids with accessible text contrast. */
.page-home :is(.approach-head,.insights-head,.why-intro) {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3.5rem);
  align-items:start;
  margin-bottom:clamp(3.5rem,6vw,6rem);
}
.page-home :is(.approach-head,.insights-head,.why-intro) > .home-label {
  grid-column:1 / -1;
  margin:0 0 clamp(1.6rem,3vw,3rem);
  padding-top:1.2rem;
  border-top:1px solid var(--home-line);
}
.page-home .why-intro > .home-label { border-top-color:rgba(255,255,255,.18); }
.page-home :is(.approach-head,.insights-head) > h2 {
  grid-column:1 / 9;
  max-width:900px;
  font-size:clamp(3.8rem,6vw,7rem);
  line-height:.91;
}
.page-home .approach-head > div,
.page-home .insights-head > p:last-child {
  grid-column:9 / -1;
  max-width:430px;
  margin:.35rem 0 0;
}
.page-home .approach-head > div p,
.page-home .insights-head > p:last-child {
  color:#343837;
  font-size:clamp(.98rem,1.16vw,1.12rem);
  line-height:1.62;
}
.page-home .why-intro > h2 {
  grid-column:1 / 10;
  max-width:1040px;
  font-size:clamp(3.8rem,6vw,7rem);
  line-height:.91;
}

/* 06 — Approach */































/* Approach — decision ledger */
.page-home .home-approach-section { background:#f3f0e7; }

.page-home .approach-intro-copy {
  grid-column:9 / -1;
  max-width:430px;
  margin:.35rem 0 0;
  color:#343837;
  font-size:clamp(.98rem,1.16vw,1.12rem);
  line-height:1.62;
}




























/* Approach — three-act working rhythm */






























/* Approach — folded route */






























/* Approach — centered three-card composition */
.page-home .home-approach-section > .approach-head{ display:none; }
.page-home .approach-cards-section {
  width:var(--home-container);
  margin:0 auto;
}




.page-home .approach-cards-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,1.8vw,2rem);
}
.page-home .approach-card {
  position:relative;
  min-height:690px;
  padding:clamp(1.8rem,2.7vw,3.2rem);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(17,19,18,.2);
}
.page-home .approach-card-orient { background:#102219; color:#fff; }
.page-home .approach-card-prove { background:#f8f5ec; color:#111311; }
.page-home .approach-card-realize { background:#dce5da; color:#111311; }
.page-home .approach-card-top {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-family:var(--font-mono);
  font-size:.61rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.page-home .approach-card-top span { opacity:.58; }
.page-home .approach-card-top b { font-weight:700; }
.page-home .approach-card-signal {
  position:relative;
  z-index:1;
  height:150px;
  margin:clamp(2rem,4vw,4.5rem) 0;
}
.page-home .approach-card-signal::before,
.page-home .approach-card-signal::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:1px;
  background:currentColor;
  opacity:.18;
}
.page-home .approach-card-signal::before { top:25%; }
.page-home .approach-card-signal::after { bottom:25%; }
.page-home .approach-card-signal i {
  position:absolute;
  top:50%;
  width:12px;
  height:12px;
  border:1px solid currentColor;
  border-radius:50%;
  transform:translateY(-50%);
  opacity:.75;
}
.page-home .approach-card-signal i:nth-child(1) { left:2%; }
.page-home .approach-card-signal i:nth-child(2) { left:calc(50% - 6px); }
.page-home .approach-card-signal i:nth-child(3) { right:2%; }
.page-home .approach-card-signal span {
  position:absolute;
  top:50%;
  left:2%;
  right:2%;
  height:1px;
  background:currentColor;
  opacity:.42;
}
.page-home .approach-card-signal span::after {
  content:"";
  position:absolute;
  left:64%;
  top:-4px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--home-gold);
}
.page-home .approach-card-copy {
  position:relative;
  z-index:2;
  margin-top:clamp(4rem,7vw,8rem);
}
.page-home .approach-card-copy h3 {
  max-width:11ch;
  margin:0 0 1.2rem;
  color:inherit;
  font-size:clamp(2.2rem,3.15vw,4rem);
  line-height:.94;
  letter-spacing:-.05em;
  font-weight:540;
}
.page-home .approach-card-copy p {
  max-width:33rem;
  margin:0;
  color:inherit;
  font-size:.93rem;
  line-height:1.58;
  opacity:.72;
}
.page-home .approach-card-stages {
  position:relative;
  z-index:2;
  margin-top:auto;
  padding-top:1.8rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid color-mix(in srgb,currentColor 20%,transparent);
}
.page-home .approach-card-stages p { margin:0; color:inherit; }
.page-home .approach-card-stages p + p {
  padding-left:1rem;
  border-left:1px solid color-mix(in srgb,currentColor 20%,transparent);
}
.page-home .approach-card-stages span,
.page-home .approach-card footer span {
  display:block;
  color:inherit;
  font-family:var(--font-mono);
  font-size:.56rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  opacity:.55;
}
.page-home .approach-card-stages b { display:block; margin-top:.55rem; font-size:1rem; }
.page-home .approach-card footer {
  position:relative;
  z-index:2;
  margin-top:1.8rem;
  padding-top:1.5rem;
  border-top:1px solid color-mix(in srgb,currentColor 20%,transparent);
}
.page-home .approach-card footer strong {
  display:block;
  margin-top:.6rem;
  color:inherit;
  font-size:1.25rem;
  line-height:1.2;
}
.page-home .approach-cards-footer {
  max-width:720px;
  margin:clamp(4rem,7vw,7rem) auto 0;
  text-align:center;
}
.page-home .approach-cards-footer p {
  margin:0 0 2rem;
  color:#232824;
  font-size:clamp(1rem,1.2vw,1.18rem);
}
.page-home .approach-cards-footer p span {
  display:block;
  margin-bottom:.65rem;
  color:#6e756f;
  font-family:var(--font-mono);
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-home .approach-cards-footer .home-button {
  width:min(100%,510px);
  min-height:76px;
  margin:0 auto;
  justify-content:space-between;
}

/* 07 — Why Luminor */
.page-home .home-why-section {
  background:#102219;
  border-top-color:rgba(255,255,255,.14);
}



































/* Why Luminor — proof-led operating difference */
.page-home .home-why-section {
  padding-block:clamp(6rem,10vw,11rem);
  background:#102219;
  color:#fff;
}
.page-home .why-intro {
  width:var(--home-container);
  margin:0 auto clamp(4rem,7vw,7.5rem);
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  align-items:start;
  gap:clamp(1rem,2vw,2rem);
}
.page-home .why-intro > .home-label { grid-column:1 / 4; }
.page-home .why-intro > h2 {
  grid-column:4 / 10;
  margin:0;
  max-width:9ch;
  color:#fff;
  font-size:clamp(4rem,6.5vw,8rem);
  line-height:.88;
  letter-spacing:-.06em;
}
.page-home .why-intro-copy {
  grid-column:10 / -1;
  margin:.35rem 0 0;
  color:rgba(255,255,255,.72);
  font-size:clamp(1rem,1.2vw,1.25rem);
  line-height:1.62;
}
.page-home .why-proof {
  width:var(--home-container);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(340px,5fr) minmax(0,7fr);
  border:1px solid rgba(255,255,255,.22);
  background:#13291e;
}
.page-home .why-proof-bar {
  grid-column:1 / -1;
  min-height:56px;
  padding:0 1.5rem;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:1.5rem;
  border-bottom:1px solid rgba(255,255,255,.18);
  background:#0c1b13;
  color:rgba(255,255,255,.56);
  font-family:var(--font-mono);
  font-size:.63rem;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.page-home .why-proof-bar b { color:#fff; text-align:center; font-weight:700; }
.page-home .why-proof-bar span:last-child { text-align:right; }
.page-home .why-proof-lead {
  min-height:760px;
  padding:clamp(2.5rem,4.5vw,5.5rem);
  display:flex;
  flex-direction:column;
  border-right:1px solid rgba(20,34,25,.2);
  background:#e8eee4;
  color:#111311;
}
.page-home .why-proof-kicker {
  color:#59615b;
  font-family:var(--font-mono);
  font-size:.67rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-home .why-proof-lead h3 {
  max-width:10ch;
  margin:clamp(3.5rem,7vw,7rem) 0 1.75rem;
  color:#111311;
  font-size:clamp(3.2rem,5vw,6.3rem);
  line-height:.91;
  letter-spacing:-.055em;
  font-weight:500;
}
.page-home .why-proof-lead > p {
  max-width:35rem;
  margin:0;
  color:#3d4640;
  font-size:clamp(1rem,1.1vw,1.15rem);
  line-height:1.65;
}
.page-home .why-proof-route {
  margin-top:auto;
  padding-top:2rem;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(17,19,17,.2);
}
.page-home .why-proof-route span {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.75rem;
  color:#4e5751;
  font-family:var(--font-mono);
  font-size:.6rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.page-home .why-proof-route i {
  position:relative;
  z-index:2;
  width:10px;
  height:10px;
  border-radius:50%;
  border:1px solid #68716b;
  background:#e8eee4;
}
.page-home .why-proof-route span:not(:last-child)::after {
  content:"";
  position:absolute;
  top:5px;
  left:10px;
  right:0;
  height:1px;
  background:#8b938e;
}
.page-home .why-proof-route span:nth-child(-n+3) i {
  border-color:var(--home-green);
  background:var(--home-green);
}
.page-home .why-commitments {
  margin:0;
  padding:0;
  list-style:none;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    #13291e;
  background-size:64px 64px;
}
.page-home .why-commitments li {
  min-height:190px;
  padding:clamp(1.8rem,3vw,3.2rem);
  display:grid;
  grid-template-columns:54px minmax(0,1fr) minmax(145px,.55fr);
  align-items:center;
  gap:clamp(1.25rem,2.5vw,3rem);
  border-bottom:1px solid rgba(255,255,255,.16);
  transition:background-color .25s ease;
}
.page-home .why-commitments li:last-child { border-bottom:0; }
.page-home .why-commitments li:hover { background:rgba(255,255,255,.04); }
.page-home .why-index {
  align-self:start;
  color:rgba(255,255,255,.52);
  font-family:var(--font-mono);
  font-size:.67rem;
}
.page-home .why-commitments h3 {
  max-width:16ch;
  margin:0 0 .8rem;
  color:#fff;
  font-size:clamp(1.6rem,2.25vw,2.8rem);
  line-height:1;
  letter-spacing:-.035em;
  font-weight:560;
}
.page-home .why-commitments p {
  max-width:38rem;
  margin:0;
  color:rgba(255,255,255,.66);
  font-size:clamp(.9rem,1vw,1rem);
  line-height:1.56;
}
.page-home .why-commitments strong {
  padding-left:1.4rem;
  border-left:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-size:clamp(.95rem,1.15vw,1.15rem);
  line-height:1.3;
  font-weight:600;
}
.page-home .why-commitments strong span {
  display:block;
  margin-bottom:.7rem;
  color:rgba(255,255,255,.48);
  font-family:var(--font-mono);
  font-size:.56rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}

/* 08 — Insights */












.page-home .insight-art-research strong,
.page-home .insight-art-adoption span {
  color:var(--home-dark);
  font-weight:700;
  font-size:.72rem;
}






















/* 08 — Final conversation */
.page-home .home-final-cta {
  min-height:auto;
  padding:clamp(6rem,10vw,11rem) var(--home-gutter);
  display:block;
  background:#0b2a1d;
  color:#fff;
  overflow:hidden;
}
.page-home .home-final-cta::before {
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(to bottom,#000,transparent 88%);
  opacity:.7;
}
.page-home .final-cta-content {
  position:relative;
  z-index:2;
  width:var(--home-container);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3.5rem);
  align-items:start;
}
.page-home .final-cta-topline {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.1rem 0;
  border-top:1px solid rgba(255,255,255,.34);
  border-bottom:1px solid rgba(255,255,255,.18);
}
.page-home .final-cta-topline .home-label {
  margin:0;
  color:#fff;
}
.page-home .final-cta-topline > p:last-child {
  margin:0;
  color:rgba(255,255,255,.58);
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.page-home .final-cta-content h2 {
  grid-column:1 / 12;
  max-width:12ch;
  margin:clamp(3.5rem,7vw,7rem) 0 clamp(3.5rem,6vw,6rem);
  color:#fff;
  font-size:clamp(4rem,8.2vw,10rem);
  line-height:.86;
  letter-spacing:-.067em;
}
.page-home .final-cta-starting-points {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(255,255,255,.25);
  border-bottom:1px solid rgba(255,255,255,.25);
}
.page-home .final-cta-starting-points p {
  min-height:128px;
  margin:0;
  padding:1.6rem clamp(1.1rem,2vw,2rem);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-right:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:clamp(1.15rem,1.8vw,1.75rem);
  line-height:1.1;
}
.page-home .final-cta-starting-points p:last-child { border-right:0; }
.page-home .final-cta-starting-points span {
  color:rgba(255,255,255,.58);
  font-family:var(--font-mono);
  font-size:.68rem;
  letter-spacing:.07em;
}
.page-home .final-cta-bottom {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3.5rem);
  align-items:end;
  margin-top:clamp(3rem,6vw,6rem);
}
.page-home .final-cta-copy { grid-column:1 / 6; max-width:34rem; }
.page-home .final-cta-copy p {
  margin:0 0 1rem;
  color:rgba(255,255,255,.78);
  font-size:clamp(1rem,1.2vw,1.18rem);
  line-height:1.6;
}
.page-home .final-cta-primary {
  grid-column:7 / -1;
  min-height:156px;
  padding:clamp(1.5rem,3vw,3rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  background:#f4f1e8;
  color:#111311;
  text-decoration:none;
  font-size:clamp(1.8rem,3.2vw,3.8rem);
  line-height:1;
  letter-spacing:-.035em;
  transition:background .3s ease,color .3s ease;
}
.page-home .final-cta-primary i {
  flex:0 0 auto;
  width:clamp(54px,5vw,76px);
  height:clamp(54px,5vw,76px);
  display:grid;
  place-items:center;
  border:1px solid currentColor;
  border-radius:50%;
  transition:transform .35s var(--home-ease),background .3s ease;
}
.page-home .final-cta-primary svg { width:42%; fill:none; stroke:currentColor; stroke-width:1.5; }
.page-home .final-cta-primary:hover,
.page-home .final-cta-primary:focus-visible { background:#e2eadf; color:#111311; }
.page-home .final-cta-primary:hover i,
.page-home .final-cta-primary:focus-visible i { transform:translateX(6px) rotate(-8deg); background:#fff; }
.page-home .final-cta-primary:focus-visible { outline:3px solid #fff; outline-offset:5px; }

/* Footer */
.page-home .home-footer { padding-inline:var(--home-gutter); }
.page-home .footer-system-mark,
.page-home .footer-grid,
.page-home .footer-bottom { width:var(--home-container); }
.page-home .footer-system-mark {
  position:relative;
  inset:auto;
  display:flex;
  align-items:center;
  min-height:72px;
}
.page-home .footer-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(2rem,4vw,5rem);
}
.page-home .footer-lead { grid-column:1 / 8; }
.page-home .footer-links { grid-column:8 / -1; }
.page-home .footer-lead .eyebrow,
.page-home .footer-label,
.page-home .footer-links a,
.page-home .footer-links span,
.page-home .footer-bottom { color:#343837; }
.page-home .footer-label { font-weight:700; }
.page-home .footer-links a:hover,
.page-home .footer-links a:focus-visible {
  color:var(--home-dark);
  text-decoration:underline;
  text-underline-offset:.2em;
}
.page-home .footer-links a:focus-visible { outline:1px solid var(--home-dark); outline-offset:4px; }
.page-home .footer-bottom { color:#3f4441; }

@media (max-width:960px) {
  .page-home :is(.approach-head,.insights-head) > h2 { grid-column:1 / 9; }
  .page-home .approach-head > div,
  .page-home .insights-head > p:last-child { grid-column:9 / -1; }
  .page-home .why-intro > h2 { grid-column:1 / -1; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  .page-home .final-cta-content h2 { grid-column:1 / -1; }
  .page-home .final-cta-content > div { grid-column:1 / -1; }
  .page-home .footer-lead { grid-column:1 / 8; }
  .page-home .footer-links { grid-column:8 / -1; }
}
@media (max-width:680px) {
  .page-home :is(.approach-head,.insights-head,.why-intro) { grid-template-columns:1fr; gap:1.5rem; }
  .page-home :is(.approach-head,.insights-head,.why-intro) > .home-label,
  .page-home :is(.approach-head,.insights-head,.why-intro) > h2,
  .page-home .approach-head > div,
  .page-home .insights-head > p:last-child { grid-column:1; }
  .page-home :is(.approach-head,.insights-head,.why-intro) > h2 { font-size:clamp(3.2rem,14vw,4.8rem); }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .page-home .final-cta-content { grid-template-columns:1fr; }
  .page-home .final-cta-content > .home-label,
  .page-home .final-cta-content h2,
  .page-home .final-cta-content > div { grid-column:1; }
  .page-home .final-cta-topline > p:last-child { display:none; }
  .page-home .final-cta-content h2 { font-size:clamp(3.6rem,16vw,5.4rem); margin:3.5rem 0; }
  .page-home .final-cta-starting-points { grid-template-columns:1fr; }
  .page-home .final-cta-starting-points p { min-height:92px; border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }
  .page-home .final-cta-starting-points p:last-child { border-bottom:0; }
  .page-home .final-cta-bottom { grid-template-columns:1fr; }
  .page-home .final-cta-copy,
  .page-home .final-cta-primary { grid-column:1; }
  .page-home .final-cta-primary { min-height:132px; font-size:clamp(1.8rem,9vw,2.8rem); }
  .page-home .footer-grid { grid-template-columns:1fr; }
  .page-home .footer-lead,
  .page-home .footer-links { grid-column:1; }
  .page-home .footer-links { grid-template-columns:repeat(2,1fr); }
  .page-home .footer-links > div:last-child { grid-column:1 / -1; }
  .page-home .footer-bottom { display:grid; grid-template-columns:1fr; }
}

@media (max-width:1100px) {
  .page-home .approach-cards-grid { grid-template-columns:1fr; gap:1rem; }
  .page-home .approach-card { min-height:540px; padding:2.5rem; }
  .page-home .approach-card-signal { height:120px; margin:2.5rem 0; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .page-home .approach-head > h2 { grid-column:1 / 9; }
  .page-home .approach-intro-copy { grid-column:9 / -1; }
  
  
  .page-home .why-intro > .home-label { grid-column:1 / 4; }
  .page-home .why-intro > h2 { grid-column:4 / -1; }
  .page-home .why-intro-copy { grid-column:4 / 10; margin-top:1.5rem; }
  .page-home .why-proof { grid-template-columns:1fr; }
  .page-home .why-proof-lead { min-height:600px; border-right:0; border-bottom:1px solid rgba(17,19,17,.2); }
  .page-home .why-commitments li { min-height:175px; }
}

@media (max-width:680px) {
  
  
  
  .page-home .approach-cards-grid { grid-template-columns:1fr; gap:1rem; }
  .page-home .approach-card { min-height:560px; padding:1.6rem; }
  .page-home .approach-card-copy { margin-top:3rem; }
  .page-home .approach-card-signal { height:100px; margin:2rem 0; }
  .page-home .approach-card-copy h3 { font-size:clamp(2.6rem,12vw,3.8rem); }
  .page-home .approach-cards-footer { margin-top:3.5rem; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .page-home .approach-head { grid-template-columns:1fr; }
  .page-home .approach-head > .home-label,
  .page-home .approach-head > h2,
  .page-home .approach-intro-copy { grid-column:1; }
  .page-home .approach-intro-copy { margin-top:0; }
  
  
  
  
  
  
  
  
  
  
  .page-home .home-why-section { padding-block:5.5rem; }
  .page-home .why-intro { grid-template-columns:1fr; margin-bottom:3.5rem; }
  .page-home .why-intro > .home-label,
  .page-home .why-intro > h2,
  .page-home .why-intro-copy { grid-column:1; }
  .page-home .why-intro > h2 { max-width:8ch; font-size:clamp(3.6rem,15vw,5rem); }
  .page-home .why-intro-copy { margin-top:.75rem; }
  .page-home .why-proof-bar { grid-template-columns:1fr; min-height:64px; }
  .page-home .why-proof-bar b,
  .page-home .why-proof-bar span:last-child { display:none; }
  .page-home .why-proof-lead { min-height:570px; padding:2rem 1.5rem; }
  .page-home .why-proof-lead h3 { margin:4rem 0 1.5rem; font-size:clamp(3.2rem,15vw,4.7rem); }
  .page-home .why-proof-route { grid-template-columns:1fr 1fr; gap:1.25rem 0; }
  .page-home .why-proof-route span:nth-child(2)::after { display:none; }
  .page-home .why-commitments li {
    min-height:0;
    padding:2rem 1.5rem;
    grid-template-columns:38px 1fr;
    align-items:start;
    gap:1rem;
  }
  .page-home .why-commitments strong {
    grid-column:2;
    padding:1.15rem 0 0;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.18);
  }
  .page-home .why-commitments h3 { font-size:clamp(1.8rem,8vw,2.4rem); }
}

/* ==========================================================
   UNIFIED SITE HEADER
   One consistent chrome across every page: shared brand sizing,
   the circle-arrow CTA, a reliable mobile collapse at 960px and
   a redesigned full-screen menu in the studio's green/gold system.
   Placed last so it standardizes the older page-scoped variants.
   ========================================================== */
.site-header .brand { width:clamp(145px,15vw,210px); }
.site-header .brand-logo { width:100%; height:auto; display:block; }
.site-header .header-cta {
  min-height:46px;
  padding:.75rem 1rem;
  display:inline-flex;
  align-items:center;
  gap:1rem;
  border:0;
  background:#111311;
  color:#fff;
  font-size:.86rem;
  font-weight:600;
  text-decoration:none;
  transition:background .3s ease;
}
.site-header .header-cta:hover,
.site-header .header-cta:focus-visible { background:#102219; }
.site-header .header-cta:focus-visible { outline:2px solid #f1b547; outline-offset:2px; }
.site-header .header-cta i { width:19px; height:19px; flex:0 0 auto; border:1px solid currentColor; border-radius:50%; position:relative; transition:transform .3s ease; }
.site-header .header-cta i::after { content:"→"; position:absolute; inset:-5px 0 0; display:grid; place-items:center; font-size:.72rem; }
.site-header .header-cta:hover i { transform:translateX(3px); }
.site-header .menu-toggle { z-index:calc(var(--z-menu) + 1); }
.site-header .menu-toggle:focus-visible { outline:2px solid #f1b547; outline-offset:2px; }
.site-header .menu-toggle span { width:22px; height:2px; margin:7px auto; }

.site-header .mobile-menu {
  position:fixed;
  inset:var(--header-height) 0 0;
  display:flex;
  flex-direction:column;
  gap:clamp(1.5rem,4vh,2.5rem);
  padding:clamp(1.5rem,4vw,3rem) clamp(1.25rem,5vw,3rem) calc(2rem + env(safe-area-inset-bottom));
  background:#102219;
  color:#f5f1e7;
  overflow-y:auto;
  overscroll-behavior:contain;
  z-index:var(--z-menu);
}
.site-header .mobile-menu[hidden] { display:none; }
.site-header .mobile-menu .mobile-menu-brand,
.site-header .mobile-menu-brand { width:170px; height:auto; margin:0; filter:brightness(0) invert(1); opacity:.94; }
.site-header .mobile-menu nav { display:block; margin:0; counter-reset:mobnav; }
.site-header .mobile-menu nav a {
  counter-increment:mobnav;
  position:relative;
  display:flex;
  align-items:center;
  gap:1.1rem;
  padding:.9rem 0;
  border-bottom:1px solid rgba(245,241,231,.14);
  color:#f5f1e7;
  text-decoration:none;
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(2rem,7.5vw,3.2rem);
  line-height:1;
  letter-spacing:-.045em;
  transition:color .25s ease,padding-left .3s ease;
}
.site-header .mobile-menu nav a::before {
  content:"0" counter(mobnav);
  min-width:1.7rem;
  color:rgba(245,241,231,.42);
  font-family:var(--font-mono);
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.09em;
}
.site-header .mobile-menu nav a:hover,
.site-header .mobile-menu nav a:focus-visible { color:#f1b547; padding-left:.4rem; }
.site-header .mobile-menu nav a:focus-visible { outline:2px solid #f1b547; outline-offset:-2px; }
.site-header .mobile-menu nav a[aria-current="page"] { color:#f1b547; }
.site-header .mobile-menu nav a[aria-current="page"]::after {
  content:"";
  width:7px;
  height:7px;
  margin-left:auto;
  border-radius:50%;
  background:#f1b547;
}
.site-header .mobile-menu p {
  position:static;
  max-width:340px;
  margin:auto 0 0;
  color:rgba(245,241,231,.6);
  font-size:.92rem;
  line-height:1.55;
}

@media (max-width:960px) {
  .site-header .desktop-nav,
  .site-header .header-cta { display:none; }
  .site-header .menu-toggle { display:block; }
  .no-js .site-header .menu-toggle { display:none; }
  .site-header .header-inner { grid-template-columns:1fr auto; }
  .site-header .brand { width:clamp(132px,36vw,164px); }
}

@media (prefers-reduced-motion:no-preference) {
  .js .site-header .mobile-menu:not([hidden]) { animation:mobMenuIn .28s ease-out; }
  .js .site-header .mobile-menu:not([hidden]) .mobile-menu-brand { opacity:0; animation:mobLinkIn .4s .05s ease-out forwards; }
  .js .site-header .mobile-menu:not([hidden]) nav a { opacity:0; transform:translateY(14px); animation:mobLinkIn .42s var(--ease,ease-out) forwards; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(1) { animation-delay:.08s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(2) { animation-delay:.13s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(3) { animation-delay:.18s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(4) { animation-delay:.23s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(5) { animation-delay:.28s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(6) { animation-delay:.33s; }
  .js .site-header .mobile-menu:not([hidden]) nav a:nth-child(7) { animation-delay:.38s; }
  .js .site-header .mobile-menu:not([hidden]) p { opacity:0; animation:mobLinkIn .45s .42s ease-out forwards; }
}
@keyframes mobMenuIn { from { opacity:0; } to { opacity:1; } }
@keyframes mobLinkIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  .site-header .mobile-menu,
  .site-header .mobile-menu nav a,
  .site-header .mobile-menu .mobile-menu-brand,
  .site-header .mobile-menu p,
  .site-header .header-cta,
  .site-header .header-cta i { animation:none !important; transition:none !important; }
}

/* The blur bar lives on a pseudo-element: backdrop-filter on the header itself
   would turn it into a containing block and trap the fixed mobile menu inside. */
.site-header[data-header] { background:transparent; backdrop-filter:none; border-bottom:0; }
.site-header[data-header]::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:rgba(243,240,231,.94);
  border-bottom:1px solid rgba(17,19,18,.14);
  backdrop-filter:blur(18px);
}
.site-header[data-header].is-scrolled { background:transparent; backdrop-filter:none; border-color:transparent; }

/* Homepage variant: same neutralization at the higher specificity its
   scrolled-state rules use, and a consistent mobile header height. */
.page-home .site-header[data-header],
.page-home .site-header[data-header]:not(.is-scrolled),
.page-home .site-header[data-header].is-scrolled { background:transparent; backdrop-filter:none; }
@media (max-width:960px) {
  .page-home .site-header[data-header] { height:var(--header-height); }
}
.page-home .site-header[data-header] { position:fixed; inset:0 0 auto; z-index:var(--z-header); }

/* ==========================================================
   UNIFIED BUTTON INTERACTIONS
   Buttons retain their page-specific visual roles, but share
   one motion, focus, arrow and pressed-state language.
   ========================================================== */
:root {
  --button-ease:cubic-bezier(.22,.75,.25,1);
  --button-focus:#f1b547;
}

/* Navigation CTA: replace the offset text glyph with a precisely drawn arrow. */
.site-header .header-cta {
  min-height:50px;
  padding:.75rem .72rem .75rem 1.1rem;
  gap:1.15rem;
  line-height:1;
  border:1px solid #111311;
  box-shadow:0 0 0 rgba(16,34,25,0);
  transform:translateY(0);
  transition:background-color .24s ease,color .24s ease,border-color .24s ease,box-shadow .28s ease,transform .28s var(--button-ease);
}
.site-header .header-cta i {
  width:22px;
  height:22px;
  display:block;
  color:inherit;
  border-color:rgba(255,255,255,.68);
  transition:background-color .24s ease,border-color .24s ease,color .24s ease,transform .28s var(--button-ease);
}
.site-header .header-cta i::before {
  content:"";
  position:absolute;
  inset:auto;
  display:block;
  width:8px;
  height:0;
  left:5px;
  top:10px;
  border-top:1px solid currentColor;
  border-right:0;
  transform:none;
}
.site-header .header-cta i::after {
  content:"";
  position:absolute;
  inset:auto;
  display:block;
  width:5px;
  height:5px;
  left:9px;
  top:7px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.site-header .header-cta:hover,
.site-header .header-cta:focus-visible {
  background:#102219;
  border-color:#102219;
  box-shadow:0 8px 22px rgba(16,34,25,.16);
  transform:translateY(-1px);
}
.site-header .header-cta:hover i,
.site-header .header-cta:focus-visible i {
  background:var(--button-focus);
  border-color:var(--button-focus);
  color:#111311;
  transform:translateX(3px);
}
.site-header .header-cta:active { box-shadow:none; transform:translateY(0) scale(.985); }
.site-header .header-cta:focus-visible { outline:3px solid var(--button-focus); outline-offset:3px; }

/* Filled CTAs. */
.button,
.page-home .home-button,
.page-home .final-cta-primary {
  transform:translateY(0);
  will-change:transform;
  transition:background-color .24s ease,color .24s ease,border-color .24s ease,box-shadow .28s ease,transform .28s var(--button-ease);
}
.button { min-height:54px; padding:.9rem 1.15rem; }
.button svg,
.page-home .home-button svg {
  flex:0 0 auto;
  transition:transform .28s var(--button-ease);
}
.page-home .home-button::before { transition:transform .32s var(--button-ease); }
.button:hover,
.button:focus-visible,
.page-home .home-button:hover,
.page-home .home-button:focus-visible,
.page-home .final-cta-primary:hover,
.page-home .final-cta-primary:focus-visible {
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(16,34,25,.14);
}
.button:hover svg,
.button:focus-visible svg,
.page-home .home-button:hover svg,
.page-home .home-button:focus-visible svg { transform:translateX(4px); }
.button[href^="#"]:hover svg,
.button[href^="#"]:focus-visible svg { transform:translateY(3px); }
.button:active,
.page-home .home-button:active,
.page-home .final-cta-primary:active {
  box-shadow:none;
  transform:translateY(0) scale(.985);
}
.button:focus-visible,
.page-home .home-button:focus-visible {
  outline:3px solid var(--button-focus);
  outline-offset:3px;
}
.button-primary:hover,
.button-primary:focus-visible { background:#102219; color:#fff; border-color:#102219; }
.footer-lead .button-light:hover,
.footer-lead .button-light:focus-visible { background:#102219; color:#fff; border-color:#102219; }
.services-closing-cta .button:hover,
.services-closing-cta .button:focus-visible,
.industries-closing-cta .button:hover,
.industries-closing-cta .button:focus-visible,
.approach-closing-cta .button:hover,
.approach-closing-cta .button:focus-visible,
.section-closing-cta .button:hover,
.section-closing-cta .button:focus-visible { background:#dce5da; color:#111311; border-color:#dce5da; }

/* Inline project and chapter CTAs use the same arrow travel and underline reveal. */
.page-services .service-detail-link,
.page-industries .industry-chapter-link {
  position:relative;
  border-bottom-color:color-mix(in srgb,currentColor 34%,transparent);
  transition:color .24s ease;
}
.page-services .service-detail-link::after,
.page-industries .industry-chapter-link::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .32s var(--button-ease);
}
.page-services .service-detail-link span,
.page-industries .industry-chapter-link span {
  display:inline-block;
  transition:transform .28s var(--button-ease);
}
.page-services .service-detail-link:hover::after,
.page-services .service-detail-link:focus-visible::after,
.page-industries .industry-chapter-link:hover::after,
.page-industries .industry-chapter-link:focus-visible::after { transform:scaleX(1); }
.page-services .service-detail-link:hover span,
.page-services .service-detail-link:focus-visible span,
.page-industries .industry-chapter-link:hover span,
.page-industries .industry-chapter-link:focus-visible span { transform:translate(3px,-3px); }
.page-services .service-detail-link:focus-visible,
.page-industries .industry-chapter-link:focus-visible { outline:3px solid var(--button-focus); outline-offset:4px; }

.text-button { transition:color .24s ease,text-underline-offset .24s ease; }
.text-button:hover,
.text-button:focus-visible { color:#006c3a; text-underline-offset:.35em; }
.text-button:active { transform:translateY(1px); }

@media (prefers-reduced-motion:reduce) {
  .site-header .header-cta,
  .site-header .header-cta i,
  .button,
  .button svg,
  .page-home .home-button,
  .page-home .home-button::before,
  .page-home .home-button svg,
  .page-home .final-cta-primary,
  .page-home .final-cta-primary i,
  .page-services .service-detail-link,
  .page-services .service-detail-link::after,
  .page-services .service-detail-link span,
  .page-industries .industry-chapter-link,
  .page-industries .industry-chapter-link::after,
  .page-industries .industry-chapter-link span,
  .text-button { animation:none !important; transition:none !important; }
}

/* ==========================================================
   DISPLAY TYPE REFINEMENT
   A quieter, safer type scale across the site. The previous
   page-specific sizes occasionally exceeded the available grid
   and several sub-.90 line heights clipped Satoshi's forms.
   ========================================================== */

/* Give tightly tracked display type a small paint-safe edge. */
:is(.page-home,.page-work,.page-services,.page-industries,.page-approach,.page-about,.page-insights,.page-contact)
  :is(h1,h2,h3) {
  overflow:visible;
  text-wrap:balance;
}

/* Homepage: retain the large editorial hierarchy without letting
   later sections become visually louder than the hero. */
.page-home .services-intro h2, .page-home .work-intro h2, .page-home .why-intro > h2{
  font-size:clamp(3.5rem,5.45vw,6.6rem);
  line-height:.94;
}
.page-home .approach-card-copy h3,
.page-home .why-proof-lead h3 {
  line-height:.96;
}
.page-home .pov-editorial h2 {
  font-size:clamp(3.3rem,4.7vw,5.5rem);
  line-height:.96;
}
.page-home .final-cta-content h2 {
  font-size:clamp(3.7rem,6.8vw,8.5rem);
  line-height:.93;
}

/* Work */
.page-work .page-hero h1 {
  font-size:clamp(4.1rem,6.8vw,8.25rem);
  line-height:.94;
}
.page-work .section-introduction h2,
.page-work .section-how-we-document-projects h2 {
  font-size:clamp(3.7rem,5.7vw,7.1rem);
  line-height:.94;
}
.page-work .project-section .section-statement {
  font-size:clamp(3.25rem,4.75vw,6rem);
  line-height:.95;
}
.page-work .section-closing-cta h2 {
  font-size:clamp(3.8rem,6.1vw,7.5rem);
  line-height:.94;
}

/* Services */
.page-services .services-hero-copy h1 {
  font-size:clamp(4.2rem,7vw,8.75rem);
  line-height:.93;
}
.page-services .services-index-heading h2,
.page-services .service-detail-heading h2 {
  font-size:clamp(3.7rem,5.75vw,7.1rem);
  line-height:.94;
}
.page-services .services-closing-cta h2 {
  font-size:clamp(3.8rem,6.1vw,7.5rem);
  line-height:.94;
}

/* Industries: the chapter titles were the main clipping source. */
.page-industries .industries-hero-copy h1 {
  font-size:clamp(4rem,6.15vw,7.5rem);
  line-height:.94;
}
.page-industries .industries-index-intro h2 {
  font-size:clamp(3.7rem,5.55vw,6.9rem);
  line-height:.94;
}
.page-industries .industry-chapter header h2 {
  font-size:clamp(4rem,5.9vw,7.4rem);
  line-height:.94;
}
.page-industries .industries-closing-cta h2 {
  font-size:clamp(3.8rem,6.1vw,7.5rem);
  line-height:.94;
}

/* Approach */
.page-approach .approach-hero-copy h1 {
  font-size:clamp(4rem,5.9vw,7.4rem);
  line-height:.95;
}
.page-approach .approach-section-intro h2,
.page-approach .approach-ledger-intro h2 {
  font-size:clamp(3.7rem,5.75vw,7.1rem);
  line-height:.94;
}
.page-approach .approach-stage h3,
.page-approach .approach-engagement-grid h3 {
  line-height:.97;
}
.page-approach .approach-closing-cta h2 {
  font-size:clamp(3.8rem,6.1vw,7.5rem);
  line-height:.94;
}

/* About: preserve the staggered manifesto, but stop its reveal masks
   from shaving the top, sides, or descenders of the letterforms. */
.page-about .abt-hero h1 {
  font-size:clamp(3.3rem,7.5vw,9.5rem);
  line-height:.98;
}
.page-about .abt-line {
  padding:.08em .04em .12em;
  margin:-.08em -.04em -.12em;
}
.page-about .abt-thesis,
.page-about .abt-difference-head h2,
.page-about .abt-values-heading,
.page-about .abt-closing h2 {
  line-height:.98;
}
.page-about .abt-closing h2 {
  font-size:clamp(2.9rem,5.4vw,6.8rem);
}

/* The simpler editorial templates use the shared scale, with a more
   moderate hero and closing statement. */
.page-insights .page-hero h1,
.page-contact .page-hero h1 {
  font-size:clamp(3.2rem,6vw,6.5rem);
  line-height:.96;
}
.page-insights :is(.section-insights-closing,.subscribe-section) h2,
.page-contact .section-closing h2 {
  line-height:1;
}

@media (max-width:680px) {
  .page-home .services-intro h2, .page-home .work-intro h2, .page-home .why-intro > h2{
    font-size:clamp(3rem,12.5vw,4.35rem);
    line-height:.96;
  }
  .page-home .approach-card-copy h3,
  .page-home .why-proof-lead h3 {
    font-size:clamp(2.55rem,11vw,3.65rem);
    line-height:.98;
  }
  .page-home .pov-editorial h2 {
    font-size:clamp(2.9rem,12vw,3.8rem);
    line-height:.98;
  }
  .page-home .final-cta-content h2 {
    font-size:clamp(3.1rem,13.5vw,4.7rem);
    line-height:.96;
  }

  .page-work .page-hero h1,
  .page-services .services-hero-copy h1,
  .page-industries .industries-hero-copy h1,
  .page-approach .approach-hero-copy h1 {
    font-size:clamp(3.15rem,12.5vw,4.45rem);
    line-height:.97;
  }
  .page-work .section-introduction h2,
  .page-work .section-how-we-document-projects h2,
  .page-work .section-closing-cta h2,
  .page-services .services-index-heading h2,
  .page-services .service-detail-heading h2,
  .page-services .services-closing-cta h2,
  .page-industries .industries-index-intro h2,
  .page-industries .industry-chapter header h2,
  .page-industries .industries-closing-cta h2,
  .page-approach .approach-section-intro h2,
  .page-approach .approach-ledger-intro h2,
  .page-approach .approach-closing-cta h2 {
    font-size:clamp(3rem,12vw,4.3rem);
    line-height:.97;
  }
  .page-work .project-section .section-statement {
    font-size:clamp(2.85rem,11.5vw,4.1rem);
    line-height:.98;
  }
  .page-about .abt-hero h1 {
    font-size:clamp(2.75rem,11vw,4.05rem);
    line-height:1;
  }
  .page-about .abt-closing h2 {
    font-size:clamp(2.4rem,10vw,3.35rem);
    line-height:1;
  }
  .page-insights .page-hero h1,
  .page-contact .page-hero h1 {
    font-size:clamp(3rem,12vw,4.2rem);
    line-height:.98;
  }
}

/* Utility pages — privacy notice, 404 */
.page-utility { background:#f3f0e7; }
.page-utility .utility-page { padding:calc(var(--header-height) + clamp(3.5rem,7vw,6.5rem)) clamp(1.25rem,4vw,4.75rem) clamp(5rem,9vw,8rem); }
.page-utility .utility-shell { max-width:44rem; margin-inline:auto; }
.page-utility .utility-shell h1 { margin:.9rem 0 0; font-size:clamp(2.4rem,5vw,4rem); line-height:1.02; letter-spacing:-.045em; color:#111311; }
.page-utility .utility-updated { margin:1rem 0 0; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:#6a716b; }
.page-utility .utility-shell h2 { margin:2.6rem 0 .6rem; font-size:1.35rem; letter-spacing:-.02em; color:#111311; }
.page-utility .utility-shell p { margin:.4rem 0 0; color:#3f463f; line-height:1.65; }
.page-utility .utility-shell a { color:inherit; text-decoration-color:#f1b547; text-decoration-thickness:2px; text-underline-offset:3px; }
.page-utility .notfound-links { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.2rem; }
.page-utility .notfound-links a { display:inline-block; padding:.65rem 1.1rem; border:1px solid rgba(17,19,18,.25); text-decoration:none; font-weight:500; color:#111311; transition:background .3s var(--ease,ease),border-color .3s var(--ease,ease); }
.page-utility .notfound-links a:hover { background:#102219; border-color:#102219; color:#faf8f2; }
.page-utility .site-footer { background:#102219; }
.footer-bottom a { color:inherit; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; transition:text-decoration-color .25s ease; }
.footer-bottom a:hover, .footer-bottom a:focus-visible { text-decoration-color:currentColor; }

/* Homepage — credibility band */
.page-home .home-cred-band { padding:clamp(2.2rem,4vw,3.4rem) var(--home-gutter,clamp(1.25rem,4vw,4.75rem)); background:#efe9db; border-top:1px solid rgba(17,19,18,.1); border-bottom:1px solid rgba(17,19,18,.1); }
.page-home .cred-inner { width:min(1520px,100%); margin-inline:auto; }
.page-home .cred-label { margin:0 0 1.4rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:#6a6f66; }
.page-home .cred-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1.25rem,2.5vw,2.5rem); margin:0; padding:0; list-style:none; }
.page-home .cred-facts li { display:flex; flex-direction:column; gap:.45rem; padding-left:1rem; border-left:2px solid #f1b547; }
.page-home .cred-facts span { font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:#6a6f66; }
.page-home .cred-facts b { font-weight:500; font-size:.95rem; line-height:1.45; color:#1c211c; }
.page-home .cred-placeholder { margin:1.6rem 0 0; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em; color:#8a8f85; }
@media (max-width:960px) { .page-home .cred-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .page-home .cred-facts { grid-template-columns:minmax(0,1fr); } }

/* Homepage — operating model block in Why section */
.page-home .why-operating { grid-column:1 / -1; width:100%; margin:clamp(3rem,5vw,4.5rem) auto 0; padding-top:clamp(2.4rem,4vw,3.4rem); border-top:1px solid rgba(250,248,242,.18); display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(2rem,4vw,4rem); }
.page-home .why-operating-copy h3 { margin:.9rem 0 1rem; font-size:clamp(1.6rem,2.4vw,2.3rem); letter-spacing:-.03em; color:#faf8f2; }
.page-home .why-operating-copy p { margin:0; color:rgba(250,248,242,.78); line-height:1.65; max-width:34rem; }
.page-home .why-operating-facts { margin:0; display:flex; flex-direction:column; gap:1.3rem; }
.page-home .why-operating-facts > div { display:grid; grid-template-columns:minmax(0,11rem) minmax(0,1fr); gap:1rem; padding-bottom:1.3rem; border-bottom:1px solid rgba(250,248,242,.14); }
.page-home .why-operating-facts > div:last-child { border-bottom:0; padding-bottom:0; }
.page-home .why-operating-facts dt { font-family:var(--font-mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:#f1b547; padding-top:.25rem; }
.page-home .why-operating-facts dd { margin:0; color:rgba(250,248,242,.85); line-height:1.6; }
@media (max-width:960px) { .page-home .why-operating { grid-template-columns:minmax(0,1fr); } .page-home .why-operating-facts > div { grid-template-columns:minmax(0,1fr); gap:.35rem; } }

/* Contact form — required markers, honeypot, privacy note */
.project-form .form-required-note { margin:0 0 1.4rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:#6a716b; }
.project-form .req-mark { color:#df7730; font-weight:700; }
.project-form .opt-mark { font-size:.72em; font-weight:400; color:#79807a; letter-spacing:.02em; }
.project-form .hp-field { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.project-form .form-privacy-note { margin:1.4rem 0 0; font-size:.82rem; line-height:1.55; color:#5a615b; }
.project-form .form-privacy-note a { color:inherit; text-decoration-color:#f1b547; text-decoration-thickness:2px; text-underline-offset:3px; }
.project-form [data-submit-button][disabled] { opacity:.65; cursor:progress; }
.visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }

/* Services — practical outcomes + engagement models */
.page-services .service-outcomes { margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid rgba(17,19,18,.16); font-size:.92rem; line-height:1.6; color:#3f463f; }
.page-services .service-outcomes b { display:block; margin-bottom:.35rem; font-family:var(--font-mono); font-weight:500; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:#00934d; }
.page-services .service-research .service-outcomes,.page-services .service-transformation .service-outcomes { border-top-color:rgba(255,255,255,.2); color:rgba(250,248,242,.8); }
.page-services .service-research .service-outcomes b,.page-services .service-transformation .service-outcomes b { color:#f1b547; }
.page-services .services-engagements { padding:clamp(6rem,10vw,10rem) var(--services-gutter,clamp(1.25rem,4vw,4.75rem)); background:#efe9db; }
.page-services .eng-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:clamp(2.5rem,4vw,4rem); background:rgba(17,19,18,.18); border:1px solid rgba(17,19,18,.18); }
.page-services .eng-grid article { position:relative; padding:clamp(1.75rem,3vw,2.75rem); background:#faf8f2; }
.page-services .eng-grid article > span { font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; color:#df7730; }
.page-services .eng-grid h3 { margin:.9rem 0 .7rem; font-size:clamp(1.4rem,2vw,1.9rem); letter-spacing:-.03em; color:#111311; }
.page-services .eng-grid p { margin:0; color:#3f463f; line-height:1.62; }
.page-services .eng-uses { margin-top:1.3rem !important; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#5a615b !important; }
.page-services .eng-uses b { margin-right:.7rem; font-weight:500; color:#00934d; }
@media (max-width:820px) { .page-services .eng-grid { grid-template-columns:minmax(0,1fr); } }

/* Approach — practice lines under working standards */
.page-approach .approach-principles article em { display:block; margin-top:1rem; padding-top:.85rem; border-top:1px dashed rgba(17,19,18,.22); font-style:normal; font-size:.85rem; line-height:1.55; color:#5a615b; }

/* ============================================================
   Shared motion layer — page entrance, icon system, interaction polish
   ============================================================ */

/* Page entrance: one coordinated scene. Content is visible within ~150ms,
   fully settled by 600ms. No-JS renders instantly (gated on .js). */
@media (prefers-reduced-motion: no-preference) {
  .js main { animation: pageEnter var(--motion-duration-slow) var(--motion-ease-enter) both; }
  .js .site-header .header-inner { animation: pageEnterFade var(--motion-duration-scene) var(--motion-ease-enter) both; }
  .js .site-footer { animation: none; }
}
@keyframes pageEnter { from { opacity: 0; transform: translateY(var(--motion-distance-small)); } to { opacity: 1; transform: none; } }
@keyframes pageEnterFade { from { opacity: 0; } to { opacity: 1; } }

/* Inline glyph icons (replaces ↗ / ↓ / → text glyphs) */
.glyph-icon {
  width: .85em;
  height: .85em;
  display: inline-block;
  vertical-align: -.04em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: square;
  transition: transform var(--motion-duration-fast) var(--motion-ease-standard);
}
a:hover .glyph-icon--diag, a:focus-visible .glyph-icon--diag { transform: translate(2px, -2px); }
a:hover .glyph-icon--down, a:focus-visible .glyph-icon--down { transform: translateY(2px); }

/* Interaction polish: pressed states stay subtle and precise */
.button:active, .home-button:active, .header-cta:active { transform: translateY(1px); }
.project-form .button:active { transform: translateY(1px); }
.menu-toggle:active { transform: scale(.94); }
.eng-grid article { transition: box-shadow var(--motion-duration-base) var(--motion-ease-standard), transform var(--motion-duration-base) var(--motion-ease-standard); }
.eng-grid article:hover { box-shadow: 0 18px 44px rgba(17,19,18,.09); transform: translateY(-3px); }

@media (prefers-reduced-motion: reduce) {
  .js main, .js .site-header .header-inner { animation: none; }
  .glyph-icon, .button, .home-button, .header-cta, .menu-toggle, .eng-grid article { transition: none; }
  .eng-grid article:hover { transform: none; }
}

/* Contact form — failure state */
.page-contact .form-message-error { padding:clamp(1.5rem,3vw,2.5rem); border:1px solid rgba(168,45,35,.35); background:rgba(168,45,35,.05); margin-top:1.5rem; }
.page-contact .form-message-error span { color:#a82d23; }
.page-contact .form-message-error h3 { font-size:clamp(1.5rem,2.6vw,2.2rem); margin:.6rem 0; }
.page-contact .form-message-error a { color:inherit; text-decoration-color:#f1b547; text-decoration-thickness:2px; text-underline-offset:3px; }
