/* OD-LAYOUT-PRIMITIVES v1 — structure only; product tokens follow the layer. */
@layer od-layout {
[hidden]:not([hidden="until-found" i]) { display:none !important; }
dialog:not([open]) { display:none !important; }
:where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-field,.od-stat,.od-cell,.od-tile)>:where(*) { min-width:0; }
.od-stack {display:flex;flex-direction:column;gap:var(--od-gap,8px)}
.od-row {display:flex;align-items:center;gap:var(--od-gap,8px)}
.od-row-top {display:flex;align-items:flex-start;gap:var(--od-gap,8px)}
.od-cluster {display:flex;flex-wrap:wrap;align-items:center;gap:var(--od-gap,8px)}
.od-fill {flex:1 1 0;min-width:0}.od-fixed {flex:none}
.od-grid {display:grid;gap:var(--od-gap,12px);grid-template-columns:repeat(var(--od-cols,3),minmax(0,1fr))}
.od-stat,.od-field,.od-cell {display:grid;gap:var(--od-gap,2px)}
:where(.od-stat,.od-field,.od-cell)>:where(*) {display:block}
.od-tile {display:grid;grid-template-rows:auto 1fr}:where(.od-tile)>:where(*) {display:block}
.od-media {display:block;width:100%;height:auto;aspect-ratio:var(--od-ratio,auto)}
.od-media-cover {object-fit:cover}
.od-icon {display:inline-block;inline-size:var(--od-icon-size,1em);block-size:var(--od-icon-size,1em);flex:none}
.od-truncate {display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.od-clamp-2,.od-clamp-3 {display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.od-clamp-2 {-webkit-line-clamp:2}.od-clamp-3 {-webkit-line-clamp:3}
.od-lines-2 {min-height:calc(2 * 1.4em)}.od-nowrap {white-space:nowrap}
.od-keep {word-break:keep-all;overflow-wrap:anywhere}
.od-screen {display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}
.od-scroll {overflow-y:auto;overscroll-behavior:contain;min-height:0}
.od-rail {display:flex;gap:var(--od-gap,8px);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding-inline:var(--od-rail-pad,16px);scroll-padding-inline:var(--od-rail-pad,16px)}
.od-rail::-webkit-scrollbar {display:none}:where(.od-rail)>:where(*) {flex:none;scroll-snap-align:start}
:where(.od-rail)>:where(:last-child) {margin-inline-end:var(--od-rail-pad,16px)}
.od-spacer {flex:none;visibility:hidden;pointer-events:none}.od-touch {min-width:44px;min-height:44px}
}
:root [hidden]:where(:not([hidden="until-found" i])) {display:none}
/* /OD-LAYOUT-PRIMITIVES v1 */
:root {
/* Momentum: lime is for dark surfaces and controls; green text stays readable on white. */
--brand-lime:#9bd83c;--brand-black:#252526;--brand-grey:#f1f3ef;--brand-white:#ffffff;
--bg:var(--brand-grey);--surface:var(--brand-white);--surface-warm:#e7ebe2;--fg:var(--brand-black);--fg-2:#4c554b;--muted:#576052;--meta:#3d6416;--border:#d5d9d0;--border-soft:#e6e9e2;
--accent:#3d6416;--accent-on:var(--brand-black);--accent-hover:#b0e75b;--accent-active:#8cc832;
--success:#2e6224;--warn:#765413;--danger:#a32929;
--font-display:"Century Gothic",Bahnschrift,"Trebuchet MS",sans-serif;--font-body:"Segoe UI",system-ui,sans-serif;--font-mono:"SF Mono",ui-monospace,Menlo,monospace;
--text-xs:12px;--text-sm:14px;--text-base:17px;--text-lg:20px;--text-xl:28px;--text-2xl:42px;--text-3xl:64px;--text-4xl:88px;
--leading-body:1.65;--leading-tight:1.04;--tracking-display:-.045em;
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;
--section-y-desktop:112px;--section-y-tablet:80px;--section-y-phone:56px;
--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-pill:9999px;
--elev-flat:none;--elev-ring:0 0 0 1px var(--border);--elev-raised:0 16px 40px rgba(37,37,38,.12);
--focus-ring:0 0 0 4px rgba(61,100,22,.24);--motion-fast:180ms;--motion-base:240ms;--ease-standard:cubic-bezier(.2,0,0,1);
--container-max:1180px;--container-gutter-desktop:36px;--container-gutter-tablet:24px;--container-gutter-phone:16px;
--ink:var(--brand-black);--ink-2:#31352f;--paper:var(--surface);--bone:var(--bg);--body:var(--fg-2);--line:var(--border);--line-soft:var(--border-soft);--accent-dk:var(--accent);--accent-soft:var(--surface-warm);
--serif:var(--font-display);--sans:var(--font-body);--max:var(--container-max);--ease:var(--ease-standard);
--line-size:1px;--rule:var(--line-size) solid var(--border);--display-size:clamp(48px,5.6vw,80px);--heading-size:clamp(36px,4.4vw,64px);--small-heading:clamp(28px,3vw,42px);--header-height:96px;
--brand-logo-width:208px;--brand-logo-footer-width:256px;--inverse-copy:#d6d9d3;--inverse-line:#4b5048;
}
*,*::before,*::after {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:var(--space-8);-webkit-text-size-adjust:100%}
body {margin:0;background:var(--surface);color:var(--fg);font:400 var(--text-base)/var(--leading-body) var(--font-body);-webkit-font-smoothing:antialiased}
body.menu-open {overflow:hidden}
::selection {background:var(--surface-warm);color:var(--fg)}
h1,h2,h3,h4,p,figure {margin:0}
h1,h2,h3 {font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-display);text-wrap:balance}
h1 {font-size:var(--display-size);line-height:1.06}
h2 {font-size:var(--heading-size);line-height:1.1}
h3 {font-size:var(--text-xl);line-height:1.24}
p {color:var(--fg-2)}
p+p {margin-top:var(--space-5)}
a {color:var(--accent);text-underline-offset:var(--space-1);text-decoration-thickness:1px}
button,input,textarea,select {font:inherit}
button,a {touch-action:manipulation}
button {cursor:pointer}
a,button,input,textarea {transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}
:where(a,button,input,textarea,select,summary):focus-visible {outline:2px solid var(--accent);outline-offset:var(--space-1)}
:target {scroll-margin-top:var(--space-8)}
.container {width:min(calc(100% - var(--container-gutter-desktop) * 2),var(--container-max));margin-inline:auto}
.skip-link {position:fixed;top:var(--space-3);left:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--ink);color:var(--surface);z-index:100;transform:translateY(-200%)}
.skip-link:focus {transform:translateY(0)}
.eyebrow,.case-meta,.panel-title {color:var(--accent);font:500 var(--text-xs)/1.5 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.eyebrow {margin-bottom:var(--space-6)}
.section {padding-block:var(--section-y-desktop)}
.section-alt {background:var(--bg)}
.section-head {min-width:0}
.section-head-wide {display:grid;grid-template-columns:1.2fr 1fr;column-gap:var(--space-12);align-items:end;margin-bottom:var(--space-12)}
.section-head-wide>.eyebrow {grid-column:1/-1}
.section-head-wide h2 {max-width:16ch}
.section-lede {font-size:var(--text-base);max-width:62ch}
.section-grid {display:grid;grid-template-columns:1fr 1.45fr;gap:var(--space-12)}
.section-body {min-width:0}
.section-head>.section-lede {margin-top:var(--space-6)}
.section-head>p:last-child:not(.eyebrow) {margin-top:var(--space-6)}
.lede {font-size:var(--text-lg)}
.text-link {display:inline-flex;align-items:center;gap:var(--space-4);min-height:44px;color:var(--fg);text-decoration:none;font-weight:500}
.text-link>span {color:var(--accent)}
.site-header {--fg:var(--brand-white);--fg-2:var(--inverse-copy);--accent:var(--brand-lime);--border:var(--inverse-line);background:var(--brand-black);color:var(--fg);border-bottom:var(--rule)}
.header-inner {min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}
.brand {display:flex;align-items:center;gap:var(--space-5);text-decoration:none;color:var(--fg);flex:none}
.brand-mark {display:block;width:var(--brand-logo-width);max-width:100%;line-height:1;color:inherit}
.brand-logo {display:block;width:100%;height:auto;aspect-ratio:360 / 80}
.brand-mark b {font-weight:400;color:var(--accent)}
.brand-sub {display:block;max-width:160px;padding-left:var(--space-5);border-left:var(--rule);font-size:10px;line-height:1.6;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}
.site-nav {display:flex;align-items:center;gap:var(--space-8)}
.site-nav>a {position:relative;min-height:44px;display:inline-flex;align-items:center;color:var(--fg-2);text-decoration:none;font-size:var(--text-sm)}
.site-nav>a[aria-current="page"] {color:var(--fg)}
.site-nav>a[aria-current="page"]::after {content:"";position:absolute;bottom:var(--space-1);left:0;right:0;height:2px;background:var(--accent)}
.site-nav .nav-cta {padding-inline:var(--space-5);border:1px solid var(--brand-lime);background:var(--brand-lime);color:var(--brand-black);gap:var(--space-4);font-weight:600}
.menu-toggle {display:none;background:transparent;border:var(--rule);min-height:44px;padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-3);color:var(--fg);font-size:var(--text-sm)}
.menu-toggle .od-icon {--od-icon-size:20px}
.hero {--fg:var(--brand-white);--fg-2:var(--inverse-copy);--accent:var(--brand-lime);--border:var(--inverse-line);padding-top:var(--section-y-tablet);background:var(--brand-black);color:var(--fg)}
.hero-layout {display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:var(--space-12);padding-bottom:var(--section-y-tablet)}
.hero-copy {max-width:700px}
.hero h1 {margin-bottom:var(--space-8);max-width:13ch}
.hero h1 em {display:block;color:var(--accent);font-weight:700;font-style:normal}
.hero-lede {margin-top:var(--space-6);font-size:var(--text-lg);max-width:62ch;color:var(--fg-2)}
.hero-copy .hero-lede {font-size:18px;max-width:48ch}
.hero-actions {display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-8)}
.btn {display:inline-flex;justify-content:center;align-items:center;gap:var(--space-6);min-height:52px;padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:500;text-decoration:none;border:1px solid transparent;border-radius:0;line-height:1.4;white-space:nowrap}
.btn-primary {background:var(--brand-lime);color:var(--brand-black);font-weight:600}
.btn-primary:active {background:var(--accent-active);color:var(--accent-on)}
.btn-secondary,.btn-ghost {border-color:var(--border);background:transparent;color:var(--fg)}
.btn-full {width:100%}
.btn:disabled {cursor:wait;background:var(--fg-2);color:var(--surface)}
.btn .od-icon {--od-icon-size:18px}
.hero-art {position:relative;border:0;background:transparent;padding:var(--space-6);min-width:0}
.decision-flow {
--flow-heading:28px;--flow-step-heading:20px;--flow-copy:16px;--flow-marker:32px;
--flow-duration:300ms;--flow-first-delay:160ms;--flow-next-delay:480ms;
min-width:0;width:100%;margin:0;padding-block:var(--space-6);border-top:1px solid var(--inverse-line);
}
.decision-flow-intro .eyebrow {margin-bottom:var(--space-3)}
.decision-flow-intro h2 {font-size:var(--flow-heading);line-height:1.25;letter-spacing:-.035em}
.decision-steps {list-style:none;margin:var(--space-8) 0 0;padding:0}
.decision-step {display:grid;grid-template-columns:var(--flow-marker) minmax(0,1fr);gap:var(--space-5)}
.decision-marker {display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0}
.decision-number {display:flex;align-items:center;justify-content:center;width:var(--flow-marker);height:var(--flow-marker);flex:none;border:1px solid var(--brand-lime);border-radius:50%;color:var(--brand-lime);font:500 var(--text-xs)/1 var(--font-mono)}
.decision-connector {display:flex;justify-content:center;align-items:center;flex:1;min-height:var(--space-8);padding-bottom:var(--space-2);color:var(--brand-lime)}
.decision-connector .od-icon {--od-icon-size:24px;animation:decision-connect var(--flow-duration) ease-out var(--flow-first-delay) backwards}
.decision-step:nth-child(2) .decision-connector .od-icon {animation-delay:var(--flow-next-delay)}
.decision-copy {min-width:0;padding-bottom:var(--space-6)}
.decision-step:last-child .decision-copy {padding-bottom:0}
.decision-copy h3 {font-size:var(--flow-step-heading);line-height:1.4;letter-spacing:-.025em;color:var(--fg);max-width:30ch}
.decision-copy p {font-size:var(--flow-copy);line-height:1.65;margin-top:var(--space-2);max-width:38ch;color:var(--fg-2)}
/* Only the connectors animate, once. All explanatory text is always visible. */
@keyframes decision-connect {from {opacity:0;transform:translateY(-4px)} to {opacity:1;transform:translateY(0)}}
.art-head {display:flex;justify-content:space-between;gap:var(--space-4);font:400 10px/1.5 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}
.art-head span:last-child {color:var(--accent)}
.decision-diagram {display:block;width:100%;height:auto;overflow:visible;color:var(--accent)}
.diagram-grid {stroke:var(--border);stroke-width:.7}
.diagram-orbit {fill:none;stroke:var(--accent);stroke-width:1.25}
.diagram-orbit-soft {stroke:var(--border)}
.diagram-core {fill:var(--ink)}
.diagram-dot {fill:var(--accent)}
.diagram-label {fill:var(--fg-2);font:11px var(--font-mono);letter-spacing:1px}
.diagram-center {fill:var(--surface);font:20px var(--font-display)}
.diagram-cross {stroke:var(--fg-2);stroke-width:1}
.hero-art figcaption {padding-top:var(--space-4);border-top:var(--rule)}
.art-caption {display:block;font:24px/1.3 var(--font-display);color:var(--fg)}
.art-foot {display:block;margin-top:var(--space-2);font:10px/1.6 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}
.sector-strip {border-top:var(--rule);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-5);padding-block:var(--space-6)}
.sector-strip>p {font-size:var(--text-xs);color:var(--fg-2)}
.sector-strip ul {list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-8);margin:0;padding:0;font-size:var(--text-sm)}
.sector-strip li {display:flex;align-items:center;gap:var(--space-2)}
.sector-strip li::before {content:"";width:4px;height:4px;display:block;background:var(--accent)}
.proof-strip {--fg:var(--brand-black);--fg-2:var(--brand-black);--border:#78ad29;background:var(--brand-lime);border-top:0;border-bottom:0;padding-block:var(--space-8)}
.stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}
.stat {padding-right:var(--space-8)}
.stat+.stat {border-left:var(--rule);padding-left:var(--space-8)}
.stat-num {font-family:var(--font-display);font-size:var(--text-xl);color:var(--fg);line-height:1.2}
.stat-label {margin-top:var(--space-2);font-size:var(--text-sm);max-width:30ch}
.pillar-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12) var(--space-8)}
.pillar {display:flex;flex-direction:column;align-items:flex-start;min-width:0;color:var(--fg);text-decoration:none;border-top:var(--rule);padding-top:var(--space-6)}
.pillar-top {display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:var(--space-8)}
.pillar-number {font:var(--text-xs)/1 var(--font-mono);color:var(--accent)}
.pillar-top .od-icon {--od-icon-size:24px;color:var(--accent)}
.pillar h3 {max-width:18ch;margin-bottom:var(--space-4)}
.pillar p {font-size:16px}
.pillar-link {display:flex;gap:var(--space-4);font-size:var(--text-sm);margin-top:var(--space-6);color:var(--accent)}
.selected-work {background:var(--ink);color:var(--surface)}
.selected-work .eyebrow {color:var(--brand-lime)}
.selected-work h2 {max-width:15ch}
.selected-work .section-head-wide p,.selected-work .section-lede {color:var(--surface-warm)}
.work-list {list-style:none;padding:0;margin:var(--space-12) 0 0;counter-reset:work}
.work-row {border-top:1px solid color-mix(in srgb,var(--surface),transparent 75%)}
.work-row>a {color:var(--surface);display:grid;grid-template-columns:64px 1.1fr 1fr 32px;gap:var(--space-8);align-items:start;text-decoration:none;padding-block:var(--space-8)}
.work-row h3 {font-size:30px;color:var(--surface)}
.work-row .case-meta {color:var(--brand-lime);margin-bottom:var(--space-3);font-size:10px}
.work-row p {color:var(--surface-warm);font-size:16px}
.work-number {font:var(--text-xs)/2 var(--font-mono);color:var(--brand-lime)}
.work-row .od-icon {--od-icon-size:24px}
.selected-work .text-link {margin-top:var(--space-8);color:var(--surface)}
.selected-work .text-link span {color:var(--brand-lime)}
.approach-list {margin:0;padding:0;list-style:none;counter-reset:step}
.approach-list li {display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-6);border-top:var(--rule)}
.approach-list li:first-child {padding-top:0;border-top:0}
.step {color:var(--accent);font:var(--text-xs)/2 var(--font-mono)}
.approach-list h3 {font-size:var(--text-xl);margin-bottom:var(--space-3)}
.approach-list p {font-size:16px;max-width:62ch}
.cta-band {padding-block:var(--section-y-tablet);background:var(--brand-grey);border-top:var(--rule)}
.cta-inner {display:flex;justify-content:space-between;align-items:center;gap:var(--space-12)}
.cta-band h2 {max-width:20ch;font-size:clamp(32px,3.5vw,48px)}
.cta-band p {margin-top:var(--space-5);max-width:60ch}
.cta-band .btn {flex:none}
.site-footer {padding-top:var(--section-y-phone);padding-bottom:var(--space-8);background:var(--ink);color:var(--surface)}
.footer-inner {display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-12);padding-bottom:var(--space-12)}
.footer-brand .brand-mark {width:var(--brand-logo-footer-width);color:var(--surface)}
.footer-brand .brand-mark b {color:var(--surface-warm)}
.footer-tag {display:block;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--surface-warm);max-width:28ch}
.footer-nav {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3) var(--space-6);align-content:start}
.footer-nav a {min-height:44px;display:flex;align-items:center;text-decoration:none;color:var(--surface);font-size:var(--text-sm)}
.footer-legal {border-top:1px solid color-mix(in srgb,var(--surface),transparent 75%);padding-top:var(--space-6)}
.footer-legal-line {color:var(--surface-warm);font-size:var(--text-xs)}
.footer-legal-line+p {margin-top:var(--space-2)}
.site-footer a:not(.brand) {color:var(--surface)}
.footer-bottom {display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-6)}
.footer-bottom p {font-size:var(--text-xs);color:var(--surface-warm)}
.page-hero {--fg:var(--brand-white);--fg-2:var(--inverse-copy);--accent:var(--brand-lime);--border:var(--inverse-line);color:var(--fg);padding-block:var(--section-y-tablet);background:var(--brand-black);border-bottom:var(--rule)}
.page-hero .service-index a {color:var(--fg)}
.page-hero h1 {max-width:15ch;font-size:clamp(48px,5.8vw,80px)}
.page-hero .hero-lede {max-width:70ch}
.about-grid {display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr);gap:var(--section-y-tablet);align-items:start}
.person-card {padding:var(--space-8);border:var(--rule);background:var(--bg)}
.person-card .panel-title {margin-bottom:var(--space-6)}
.person-facts {list-style:none;margin:0 0 var(--space-8);padding:0}
.person-facts li {padding-block:var(--space-4);border-bottom:var(--rule);font-size:16px;display:grid;gap:var(--space-2)}
.person-facts li:first-child {padding-top:0}
.person-facts li span {display:block;font:var(--text-xs)/1.6 var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.06em}
.prose {max-width:72ch}
.prose h2 {font-size:var(--small-heading);margin-top:var(--space-12);margin-bottom:var(--space-6)}
.prose h2:first-child {margin-top:0}
.prose p {max-width:72ch}
.plain-list {list-style:none;margin:var(--space-6) 0;padding:0}
.plain-list li {padding-block:var(--space-4);border-bottom:var(--rule)}
.plain-list span {display:block;font-weight:600;margin-bottom:var(--space-2)}
.service-index {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3) var(--space-8);margin-top:var(--space-12);padding-top:var(--space-6);border-top:var(--rule)}
.service-index a {display:flex;align-items:center;gap:var(--space-3);color:var(--fg);font-size:var(--text-sm);text-decoration:none;min-height:44px}
.service-index .service-index-num {font:var(--text-xs)/1 var(--font-mono);color:var(--accent)}
.service-item {display:grid;grid-template-columns:1fr 1.2fr;gap:var(--section-y-tablet);padding-block:var(--section-y-tablet);border-bottom:var(--rule)}
.service-item:first-child {padding-top:0}
.service-item:last-child {padding-bottom:0;border-bottom:0}
.service-head {min-width:0}
.service-head .service-count {display:block;color:var(--accent);font:var(--text-xs)/1 var(--font-mono);margin-bottom:var(--space-6)}
.service-head h2 {font-size:var(--small-heading);margin-bottom:var(--space-6)}
.service-lede {font-size:var(--text-base)}
.tick-list {list-style:none;margin:var(--space-6) 0 0;padding:0}
.tick-list li {position:relative;padding:var(--space-3) 0 var(--space-3) var(--space-6);border-bottom:var(--rule);font-size:16px;color:var(--fg-2)}
.tick-list li::before {content:"";position:absolute;left:0;top:24px;width:5px;height:5px;background:var(--accent)}
.model-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}
.model {padding-top:var(--space-6);border-top:var(--rule)}
.model h3 {margin-bottom:var(--space-4)}
.model p {font-size:16px;max-width:58ch}
.note {padding-top:var(--space-6);border-top:var(--rule);margin-top:var(--space-8);font-size:var(--text-sm);color:var(--fg-2);max-width:72ch}
.sectors-list {list-style:none;padding:0;margin:0}
.sectors-list li {padding-block:var(--space-4);border-bottom:var(--rule);font-size:var(--text-base)}
.sectors-list li:first-child {padding-top:0}
.case-toolbar {display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-12)}
.case-filters {display:flex;flex-wrap:wrap;gap:var(--space-2)}
.filter {display:inline-flex;align-items:center;min-height:44px;border:var(--rule);background:transparent;color:var(--fg);padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}
.filter[aria-pressed="true"] {background:var(--brand-lime);border-color:var(--brand-lime);color:var(--brand-black);font-weight:600}
.case-count {font:var(--text-xs)/1.6 var(--font-mono);color:var(--fg-2);flex:none;padding-block:var(--space-3)}
.case-grid {display:grid;gap:var(--space-12)}
.case {padding-top:var(--space-8);border-top:var(--rule);counter-increment:case}
.case-top {display:grid;grid-template-columns:1fr 1.65fr;gap:var(--space-8);align-items:start;margin-bottom:var(--space-8)}
.case-top h2 {font-size:clamp(28px,3vw,40px);max-width:34ch}
.case-meta {padding-top:var(--space-2)}
.case-body {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}
.case-block {min-width:0}
.case-block h3 {font:500 var(--text-xs)/1.6 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-4)}
.case-block p {font-size:16px}
.contact-grid {display:grid;grid-template-columns:1fr 1.2fr;gap:var(--section-y-tablet);align-items:start}
.contact-copy h2 {font-size:var(--small-heading);margin-bottom:var(--space-8)}
.contact-copy .approach-list h3 {font-size:24px}
.contact-points {padding:var(--space-8) 0 0;margin:var(--space-8) 0 0;border-top:var(--rule);list-style:none}
.contact-points li {display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--text-sm);padding-block:var(--space-2);color:var(--fg-2)}
.contact-points .od-icon {--od-icon-size:18px;margin-top:var(--space-1);color:var(--accent)}
.contact-panel {padding:var(--space-8);border:var(--rule);background:var(--bg)}
.form-heading {font-size:var(--text-xl);margin-bottom:var(--space-2)}
.form-intro {font-size:var(--text-sm);margin-bottom:var(--space-8)}
.form-row {display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}
.form-row label {color:var(--fg);font-size:var(--text-sm);font-weight:500}
.optional {font-weight:400;color:var(--fg-2);margin-left:var(--space-2)}
input,textarea {width:100%;max-width:100%;min-width:0;border:var(--rule);border-radius:0;background:var(--surface);color:var(--fg);padding:var(--space-3) var(--space-4);font-size:16px;line-height:1.5}
input {min-height:48px}
textarea {resize:vertical;min-height:160px}
textarea::placeholder {color:var(--fg-2)}
input[aria-invalid="true"],textarea[aria-invalid="true"] {border-color:var(--danger)}
.form-error,.field-error {color:var(--danger);font-size:var(--text-sm)}
.error-summary {padding:var(--space-4);border:1px solid var(--danger);margin-bottom:var(--space-6)}
.error-summary p,.error-summary a {color:var(--danger)}
.error-summary ul {margin:var(--space-2) 0 0;padding-left:var(--space-5);font-size:var(--text-sm)}
.field-error {margin:0}
.form-status {margin-top:var(--space-4);font-size:var(--text-sm)}
.form-footnote {font-size:var(--text-xs);margin-top:var(--space-4);line-height:1.7}
.hp-field {display:none}
.turnstile-wrap {margin-block:var(--space-6);min-height:68px;max-width:100%}
.enquiry-success h2 {font-size:var(--small-heading);margin-bottom:var(--space-6)}
.enquiry-success p {margin-bottom:var(--space-6)}
@media (hover:hover) {
.site-nav>a:hover,.footer-nav a:hover,.text-link:hover {color:var(--accent)}
.site-footer a:hover,.selected-work a:hover {color:var(--brand-lime)}
.site-nav .nav-cta:hover {border-color:var(--brand-white);background:var(--brand-white);color:var(--brand-black)}
.btn-ghost:hover {border-color:var(--accent);background:var(--bg);color:var(--accent)}
.btn-primary:hover {background:var(--accent-hover);color:var(--accent-on)}
.pillar:hover h3,.service-index a:hover {color:var(--accent)}
.pillar:hover {border-top-color:var(--accent)}
.work-row>a:hover {background:color-mix(in srgb,var(--surface),transparent 96%)}
.filter:hover {border-color:var(--accent)}
}
@media (min-width:1440px) {.hero {padding-top:96px}.hero-layout {padding-bottom:96px}}
@media (max-width:1024px) {
:root {--section-y-desktop:80px;--header-height:88px}
.brand-sub {display:none}
.site-nav {gap:var(--space-6)}
.hero-layout {grid-template-columns:1.15fr 1fr;gap:var(--space-8)}
.hero h1 {font-size:clamp(48px,6.5vw,72px)}
.art-head {font-size:9px}
.hero-art {padding:var(--space-4)}
.section-grid,.service-item,.about-grid,.contact-grid {gap:var(--space-12)}
.work-row>a {grid-template-columns:32px 1fr 1fr 24px;gap:var(--space-6)}
.case-top {grid-template-columns:1fr 1.6fr}
}
@media (max-width:767px) {
:root {--section-y-desktop:56px;--container-gutter-desktop:24px;--display-size:64px;--header-height:80px}
.header-inner {position:relative;flex-wrap:wrap;gap:0;padding-block:var(--space-4)}
.brand-mark {width:192px}
.menu-toggle {display:inline-flex}
.site-nav {display:flex;width:100%;flex-wrap:wrap;gap:var(--space-2) var(--space-6);padding-top:var(--space-4);padding-bottom:var(--space-2)}
.js .site-nav {display:none}
.js .site-nav.is-open {display:flex}
.site-nav>a {font-size:16px}
.site-nav .nav-cta {margin-left:auto}
.hero {padding-top:var(--space-12)}
.hero-layout {grid-template-columns:1fr;gap:var(--space-12);padding-bottom:var(--space-12)}
.hero h1 {font-size:clamp(52px,10vw,76px);max-width:12ch}
.hero-copy {max-width:620px}
.hero-art {max-width:520px;width:100%;padding:var(--space-6);justify-self:center}
.decision-diagram {max-height:360px}
.decision-flow {max-width:620px;justify-self:start;padding-top:var(--space-6);padding-bottom:0}
.art-head {font-size:10px}
.sector-strip {align-items:flex-start;flex-direction:column;gap:var(--space-4)}
.sector-strip ul {gap:var(--space-3) var(--space-6);font-size:var(--text-xs)}
.stats {gap:var(--space-6)}
.stat {padding:0}
.stat+.stat {padding-left:var(--space-6)}
.stat-num {font-size:24px}
.stat-label {font-size:var(--text-xs)}
.section-head-wide,.section-grid {grid-template-columns:1fr;gap:var(--space-6)}
.section-head-wide h2 {max-width:18ch}
.section-head-wide {margin-bottom:var(--space-8)}
.pillar-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8)}
.pillar h3 {font-size:26px}
.pillar-top {margin-bottom:var(--space-6)}
.work-row>a {grid-template-columns:24px 1fr 24px;gap:var(--space-4)}
.work-summary {grid-column:2/3;grid-row:2}
.work-row .od-icon {grid-column:3;grid-row:1}
.work-row h3 {font-size:28px}
.approach-list {margin-top:var(--space-6)}
.cta-inner {flex-direction:column;align-items:flex-start;gap:var(--space-8)}
.cta-band {padding-block:var(--section-y-phone)}
.footer-inner {grid-template-columns:1fr;gap:var(--space-8)}
.footer-nav {grid-template-columns:repeat(3,minmax(0,1fr))}
.page-hero {padding-block:var(--section-y-phone)}
.page-hero h1 {font-size:clamp(44px,8vw,64px);max-width:16ch}
.hero-lede {font-size:18px}
.about-grid,.contact-grid {grid-template-columns:1fr}
.person-card {max-width:none}
.about-grid>.prose {grid-row:1}
.about-grid>.person-card {grid-row:2}
.service-index {grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2) var(--space-4)}
.service-item {grid-template-columns:1fr;gap:var(--space-6);padding-block:var(--section-y-phone)}
.service-head h2 {max-width:22ch}
.case-toolbar {flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8)}
.case-top {grid-template-columns:1fr;gap:var(--space-4)}
.case-body {grid-template-columns:1fr;gap:var(--space-6)}
.case-block {max-width:72ch}
}
@media (max-width:480px) {
:root {--container-gutter-desktop:20px}
.brand-mark {width:176px}
.hero-art {padding:var(--space-4)}
.hero-actions {gap:var(--space-4)}
.hero-actions .btn {padding-inline:var(--space-5)}
.hero-actions .text-link {font-size:var(--text-sm)}
.hero h1 {font-size:clamp(48px,12vw,60px)}
.stats {grid-template-columns:1fr;gap:var(--space-5)}
.stat {display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:var(--space-4)}
.stat+.stat {border-left:0;border-top:var(--rule);padding:var(--space-5) 0 0}
.stat-label {margin:0;font-size:var(--text-sm)}
.pillar-grid {grid-template-columns:1fr}
.pillar h3 {max-width:none}
.pillar-top {margin-bottom:var(--space-5)}
.pillar p {max-width:38ch}
.model-grid {grid-template-columns:1fr}
.contact-panel,.person-card {padding:var(--space-5)}
.turnstile-wrap {margin-inline:calc(-1 * var(--space-3))}
.service-index {grid-template-columns:1fr}
.footer-nav {grid-template-columns:repeat(2,minmax(0,1fr))}
.site-nav .nav-cta {margin-left:0}
.art-caption {font-size:22px}
}
/* Search landing pages and source-linked practical guides share the Momentum system. */
.breadcrumbs {display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-8);color:var(--fg-2)}
.site-nav>a[aria-current="true"] {color:var(--fg)}
.site-nav>a[aria-current="true"]::after {content:"";position:absolute;bottom:var(--space-1);left:0;right:0;height:2px;background:var(--accent)}
.breadcrumbs a {display:inline-flex;align-items:center;min-height:44px;color:var(--fg);text-decoration:none}
.service-detail-grid {display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.5fr);gap:var(--section-y-tablet);align-items:start}
.detail-aside {border-top:var(--rule);padding-top:var(--space-6);min-width:0}
.detail-aside .text-link {margin-top:var(--space-6)}
.service-detail-grid .prose>p:first-of-type {font-size:var(--text-lg)}
.service-item {row-gap:var(--space-6)}
.service-detail-link {grid-column:2;margin-top:0;justify-self:start}
.related-title {font-size:var(--text-xl);line-height:1.4;margin-bottom:var(--space-4)}
.source-links {padding-left:var(--space-5);margin-block:var(--space-4);line-height:1.75}
.source-links a {overflow-wrap:anywhere}
.source-links li+li {margin-top:var(--space-3)}
.reading-layout .prose {margin-inline:auto;width:100%}
.article-meta {font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-8)}
.insight-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);margin-bottom:var(--space-8)}
.insight-card {display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5);min-width:0;padding-top:var(--space-6);border-top:var(--rule)}
.insight-card h2,.insight-card h3 {font-size:var(--text-xl);line-height:1.3}
.insight-card h2 a,.insight-card h3 a {color:var(--fg);text-decoration:none}
.insight-card .text-link {margin-top:auto}
.insight-card .eyebrow {margin-bottom:0}
.retry-verification {background:transparent;border:0;color:var(--accent);padding:0;text-align:left}
.verification-status {margin-top:var(--space-3)}
@media (hover:hover) {
.insight-card h2 a:hover,.insight-card h3 a:hover {color:var(--accent);text-decoration:underline}
}
@media (max-width:960px) {
.header-inner {flex-wrap:wrap;gap:0;padding-block:var(--space-4)}
.brand-sub {display:none}
.menu-toggle {display:inline-flex}
.site-nav {display:flex;width:100%;flex-wrap:wrap;gap:var(--space-2) var(--space-6);padding-top:var(--space-4);padding-bottom:var(--space-2)}
.js .site-nav {display:none}.js .site-nav.is-open {display:flex}
.site-nav>a {font-size:16px}.site-nav .nav-cta {margin-left:auto}
.stats {grid-template-columns:1fr;gap:var(--space-6)}
.stat {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:var(--space-6);padding:0}
.stat+.stat {border-left:0;border-top:var(--rule);padding:var(--space-6) 0 0}
.stat-num {font-size:24px}.stat-label {margin:0;font-size:var(--text-sm);max-width:48ch}
.service-detail-grid {grid-template-columns:1fr;gap:var(--space-12)}
.detail-aside {max-width:72ch}
.insight-grid {grid-template-columns:1fr}
.insight-card {max-width:72ch}
}
@media (max-width:767px) {.service-detail-link {grid-column:1}}
@media (max-width:600px) {
.stat {display:block}.stat-label {margin-top:var(--space-2)}
.site-nav .nav-cta {margin-left:0}
}
/* Clear keyboard focus on both white content and the dark brand surfaces. */
:where(a,button,input,textarea,select,summary):focus-visible {outline:3px solid var(--accent);outline-offset:var(--space-1)}
.btn-primary:focus-visible,.site-nav .nav-cta:focus-visible {outline-color:var(--fg);box-shadow:0 0 0 2px var(--surface)}
.site-header .menu-toggle[aria-expanded="true"] {background:var(--brand-lime);border-color:var(--brand-lime);color:var(--brand-black)}
.btn:disabled {background:var(--border);color:var(--fg-2);cursor:wait}
.filter:focus-visible {outline-offset:var(--space-1)}
.brand-logo {object-fit:contain}
@media (prefers-reduced-motion:reduce) {
html {scroll-behavior:auto}
*,*::before,*::after {transition:none !important;animation:none !important}
}
