@charset "UTF-8";

:root {
  color-scheme: light;
  --paper: #f7f6f2;
  --white: #fff;
  --ink: #171918;
  --ink-soft: #303533;
  --secondary: #5a615e;
  --rule: #d2d2cc;
  --field: #e9e8e2;
  --accent: #9a312d;
  --accent-bright: #df6a61;
  --gutter: clamp(22px, 5vw, 72px);
  --rail: 160px;
  --gap: 48px;
  --header-height: 78px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-synthesis: none;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html.direct-anchor-entry { scroll-behavior: auto; }
body { margin: 0; overflow-x: hidden; background: var(--paper); }
::selection { color: var(--white); background: var(--accent); }
a { color: inherit; text-underline-offset: 5px; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
button { font: inherit; }
p, h1, h2, h3, dl, dd, figure, ul { margin: 0; }
img { display: block; max-width: 100%; }

.frame { width: min(1180px, calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.skip-link { position: fixed; top: 10px; left: var(--gutter); z-index: 80; padding: 10px 16px; color: var(--white); background: var(--accent); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); color: var(--white); }

.site-header { position: sticky; top: 0; z-index: 30; height: var(--header-height); background: rgba(247,246,242,.985); border-bottom: 1px solid var(--rule); }
.site-header::after { content: ""; position: absolute; bottom: -1px; left: 0; width: max(34px, calc((100vw - 1180px) / 2 + 72px)); height: 2px; background: var(--accent); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; height: 100%; }
.brand-lockup { display: flex; align-items: center; gap: 17px; min-width: 0; }
.brand-lockup > p { width: 84px; padding-left: 14px; border-left: 2px solid #8b2925; color: #424845; font-size: 9px; font-weight: 650; line-height: 1.32; letter-spacing: .075em; text-transform: uppercase; }
.logo-link { position: relative; display: block; flex: 0 1 240px; text-decoration: none; }
.logo-link img { position: relative; z-index: 1; width: 240px; height: auto; opacity: 1; }
.brand-accent { position: absolute; z-index: 2; right: 13%; bottom: -7px; width: 38px; height: 3px; background: var(--accent); opacity: 0; transform: scaleX(.25); transform-origin: left; pointer-events: none; }
.brand-accent::after { content: ""; position: absolute; top: -3px; right: -1px; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 7px solid var(--accent); }
.brand-accent.is-active { animation: brand-direction 1.46s cubic-bezier(.2,.7,.2,1) both; }
nav ul { display: flex; align-items: center; gap: 32px; padding: 0; list-style: none; }
nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; font-size: 18px; font-weight: 500; letter-spacing: -.01em; text-decoration: none; }
nav a::after { content: ""; position: absolute; right: 0; bottom: 5px; left: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; }
nav a:hover, nav a:focus-visible { color: var(--ink); }
nav a:hover::after, nav a:focus-visible::after { transform: scaleX(1); }
.nav-contact { color: var(--accent); }
.nav-contact::before { content: ""; width: 13px; height: 1px; margin-right: 8px; background: currentColor; }
.nav-contact:hover, .nav-contact:focus-visible { color: var(--accent); }

.dark-section { color: var(--white); background: var(--ink); }
.accent-text { color: var(--accent-bright); }
.eyebrow, .article-label { font-size: 11px; font-weight: 600; line-height: 1.45; letter-spacing: .105em; text-transform: uppercase; }
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .085em;
  text-transform: uppercase;
}
.section-label::before { content: ""; flex: 0 0 auto; width: 22px; height: 2px; background: var(--accent); }
.section-label-link { min-height: 44px; text-decoration: none; }

.waypoint-period {
  --period-color: var(--accent);
  font-family: "Arial Rounded MT Bold", ui-rounded, "Trebuchet MS", sans-serif;
  font-weight: 700;
  color: var(--period-color);
}
.hero .waypoint-period { --period-color: var(--accent-bright); }
.search-story .waypoint-period { --period-color: #f3aaa2; }

/* Replay controls are independent overlays. The real inline punctuation remains
   untouched in document flow underneath them. */
.waypoint-replay {
  position: absolute;
  z-index: 25;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  transform: translate(-50%,-50%);
  cursor: pointer;
}
.waypoint-replay::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  border: 1px solid var(--replay-color,var(--accent));
  border-radius: 50%;
  opacity: 0;
  transform: translate(-50%,-50%) scale(.72);
  transition: opacity 160ms ease, transform 160ms ease;
}
.waypoint-replay:hover::after { opacity: .38; transform: translate(-50%,-50%) scale(1); }
.waypoint-replay:focus-visible { outline: 0; }
.waypoint-replay:focus-visible::after { opacity: 1; box-shadow: 0 0 0 2px var(--paper), 0 0 0 4px var(--replay-color,var(--accent)); transform: translate(-50%,-50%) scale(1); }
.waypoint-replay[data-waypoint="hero"] { --replay-color: var(--accent-bright); }
.waypoint-replay[data-waypoint="search"] { --replay-color: #f3aaa2; }
.waypoint-period.is-pulsing { animation: period-text-pulse 360ms ease-out; }
.waypoint-replay.is-pulsing::after { animation: period-ring-pulse 360ms ease-out; }

.hero {
  --field-drift-x: 0px;
  --field-drift-y: 0px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  scroll-margin-top: var(--header-height);
}
.hero::before { content: ""; position: absolute; z-index: 4; top: 0; left: 0; width: max(20px, calc((100vw - 1180px) / 2)); height: 4px; background: var(--accent); }
.hero-inner { position: relative; z-index: 2; display: flex; align-items: center; min-height: 548px; padding-block: 77px 84px; }
.hero-copy { position: relative; z-index: 2; width: min(930px, 90%); margin-left: clamp(0px, 5vw, 70px); }
h1 { max-width: 930px; margin-top: 18px; font-size: clamp(47px, 5.25vw, 72px); font-weight: 500; line-height: 1.01; letter-spacing: -.052em; text-wrap: balance; }
.hero-description { max-width: 860px; margin-top: 29px; color: #d9ddda; font-size: 18.5px; line-height: 1.6; }
/* A self-contained temporal search field sits beneath the Hero copy. Quiet
   depth processes coexist while one active process carries the local story. */
.hero-atmosphere { position: absolute; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; opacity: .98; transition: opacity 700ms ease; contain: layout paint style; }
/* Final production atmosphere: a narrower near haze with quieter continuous
   depth behind it. */
.hero-atmosphere {
  --ambient-current-a: .035;
  --ambient-current-b: .116;
  --ambient-current-c: .045;
  --ambient-current-d: .064;
  --ambient-current-e: .026;
  --ambient-current-f: .037;
  --ambient-awake: .49;
  --ambient-secondary: .22;
  --ambient-alternative: .12;
  --ambient-primary: .53;
  --ambient-resolved: .58;
  --ambient-evaluation-active: .84;
  --ambient-evaluation-resolved: .96;
  --ambient-evaluation-haze: .17;
  --ambient-evaluation-core: .82;
  --ambient-trace: .17;
  --ambient-route-early: .22;
  --ambient-route-peak: .68;
  --ambient-route-hold: .59;
  --ambient-concentration-rise: .18;
  --ambient-concentration-peak: .72;
  --ambient-concentration-hold: .58;
  --ambient-concentration-tail: .22;
  --ambient-mid-breathe-low: .21;
  --ambient-mid-breathe-high: .285;
  --ambient-far-breathe-low: .105;
  --ambient-far-breathe-high: .16;
  --ambient-active-breathe-low: .14;
  --ambient-active-breathe-high: .3;
  --ambient-near-scale: 1.055;
  --ambient-mid-scale: .96;
  --ambient-far-scale: .87;
  --ambient-near-blur: 0px;
  --ambient-mid-blur: .28px;
  --ambient-far-blur: .9px;
  --ambient-near-haze-width: 23.5;
  --ambient-near-core-width: 1.8;
  --ambient-near-branch-width: 1.05;
  --ambient-mid-haze-width: 18.5;
  --ambient-mid-core-width: 1.45;
  --ambient-mid-branch-width: .82;
  --ambient-far-haze-width: 7.25;
  --ambient-far-core-width: .7;
  --ambient-far-branch-width: .32;
  --ambient-near-flow-duration: 2.5s;
  --ambient-near-branch-duration: 3.2s;
  --ambient-mid-flow-duration: 4s;
  --ambient-mid-branch-duration: 5s;
  --ambient-far-flow-duration: 7.2s;
  --ambient-far-branch-duration: 8.8s;
  --ambient-mid-breathe-duration: 8.1s;
  --ambient-mid-depth-duration: 13.4s;
  --ambient-far-breathe-duration: 13.5s;
  --ambient-far-depth-duration: 22s;
  --ambient-route-duration: 4.8s;
  --ambient-concentration-duration: 4.8s;
}
.hero-field { display: block; width: 100%; height: 100%; overflow: visible; }
.hero-current-plane { transform: translate3d(var(--field-drift-x),var(--field-drift-y),0); transition: filter 520ms ease; will-change: transform; }
.search-current { opacity: .009; transform-box: fill-box; transform-origin: center; transition: opacity 980ms ease, transform 1050ms cubic-bezier(.2,.68,.2,1), filter 620ms ease; }
.search-current.depth-near { opacity: .013; }
.search-current.depth-mid { opacity: .016; }
.search-current.depth-far { opacity: .008; }
.search-current.search-current-a { opacity: .019; }
.search-current.search-current-b { opacity: .054; }
.search-current.search-current-c { opacity: .017; }
.search-current.search-current-d { opacity: .025; }
.search-current.search-current-e { opacity: .008; }
.search-current.search-current-f { opacity: .012; }
.hero-atmosphere .search-current {
  transform: scale(var(--ambient-depth-scale,1));
  filter: blur(var(--ambient-depth-blur,0px)) brightness(var(--ambient-state-brightness,1)) saturate(var(--ambient-state-saturation,1));
}
.hero-atmosphere .search-current.depth-near {
  --ambient-depth-scale: var(--ambient-near-scale);
  --ambient-depth-blur: var(--ambient-near-blur);
  --ambient-flow-duration: var(--ambient-near-flow-duration);
  --ambient-branch-duration: var(--ambient-near-branch-duration);
  --ambient-active-breathe-low: .12;
  --ambient-active-breathe-high: .25;
}
.hero-atmosphere .search-current.depth-mid {
  --ambient-depth-scale: var(--ambient-mid-scale);
  --ambient-depth-blur: var(--ambient-mid-blur);
  --ambient-flow-duration: var(--ambient-mid-flow-duration);
  --ambient-branch-duration: var(--ambient-mid-branch-duration);
}
.hero-atmosphere .search-current.depth-far {
  --ambient-depth-scale: var(--ambient-far-scale);
  --ambient-depth-blur: var(--ambient-far-blur);
  --ambient-flow-duration: var(--ambient-far-flow-duration);
  --ambient-branch-duration: var(--ambient-far-branch-duration);
}
.hero-atmosphere .search-current-a { opacity: var(--ambient-current-a); }
.hero-atmosphere .search-current-b { opacity: var(--ambient-current-b); }
.hero-atmosphere .search-current-c { opacity: var(--ambient-current-c); }
.hero-atmosphere .search-current-d { opacity: var(--ambient-current-d); }
.hero-atmosphere .search-current-e { opacity: var(--ambient-current-e); }
.hero-atmosphere .search-current-f { opacity: var(--ambient-current-f); }
.search-current path, .evaluation-span path, .ambient-route { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.search-current .current-haze { stroke: #8f9994; stroke-width: 22; opacity: .22; filter: url(#kw-soft-current); }
.search-current .current-core { stroke: url(#kw-current-core); stroke-width: 1.5; opacity: .84; }
.search-current .current-branch { stroke: #a9b1ad; stroke-width: .9; stroke-dasharray: .08 .12 .17 .18 .1 .35; opacity: .52; }
.search-current .warm-core { stroke: url(#kw-current-red); }
.search-current.depth-far .current-haze { stroke-width: 13; opacity: .1; }
.search-current.depth-far .current-core { stroke-width: .85; opacity: .48; }
.search-current.depth-far .current-branch { opacity: .24; }
.hero-atmosphere .depth-near .current-haze { stroke-width: var(--ambient-near-haze-width); }
.hero-atmosphere .depth-near .current-core { stroke-width: var(--ambient-near-core-width); }
.hero-atmosphere .depth-near .current-branch { stroke-width: var(--ambient-near-branch-width); }
.hero-atmosphere .depth-mid .current-haze { stroke-width: var(--ambient-mid-haze-width); }
.hero-atmosphere .depth-mid .current-core { stroke-width: var(--ambient-mid-core-width); }
.hero-atmosphere .depth-mid .current-branch { stroke-width: var(--ambient-mid-branch-width); }
.hero-atmosphere .depth-far .current-haze { stroke-width: var(--ambient-far-haze-width); }
.hero-atmosphere .depth-far .current-core { stroke-width: var(--ambient-far-core-width); }
.hero-atmosphere .depth-far .current-branch { stroke-width: var(--ambient-far-branch-width); }
.search-current.is-awake { opacity: .4; }
.search-current.is-secondary { opacity: .13; }
.search-current.is-alternative { --ambient-state-brightness: .94; opacity: .105; filter: brightness(.94); }
.search-current.is-primary { --ambient-state-brightness: 1.06; opacity: .43; filter: brightness(1.06); }
.search-current.is-resolved { --ambient-state-brightness: 1.12; --ambient-state-saturation: 1.04; opacity: .47; filter: brightness(1.12) saturate(1.04); }
.hero-atmosphere .search-current.is-awake { opacity: var(--ambient-awake); }
.hero-atmosphere .search-current.is-secondary { opacity: var(--ambient-secondary); }
.hero-atmosphere .search-current.is-alternative { opacity: var(--ambient-alternative); }
.hero-atmosphere .search-current.is-primary,
.hero-atmosphere .search-current.is-resolved { --ambient-depth-blur: 0px; transform: scale(1); }
.hero-atmosphere .search-current.is-primary { opacity: var(--ambient-primary); }
.hero-atmosphere .search-current.is-resolved { opacity: var(--ambient-resolved); }
.search-current:is(.is-awake, .is-secondary, .is-alternative, .is-primary, .is-resolved) { transition-duration: 700ms, 1050ms, 620ms; }

.evaluation-concentration-field { pointer-events: none; }
.evaluation-concentration { opacity: 0; }
.evaluation-concentration .concentration-haze { fill: #d8d0c6; opacity: .25; filter: url(#kw-concentration-soft); transform: scale(.58); transform-box: fill-box; transform-origin: center; }
.evaluation-concentration.concentration-warm .concentration-haze { fill: #a94b45; opacity: .27; }

.evaluation-field { pointer-events: none; }
.evaluation-span { opacity: 0; transition: opacity 952ms ease; }
.evaluation-span .evaluation-haze { stroke: url(#kw-evaluation-haze); stroke-width: 21; opacity: .135; filter: url(#kw-evaluation-soft); }
.evaluation-span .evaluation-core { stroke: url(#kw-current-red); stroke-width: 1.5; stroke-dasharray: .16 .12 .08 .2; opacity: .64; }
.evaluation-span.is-active { opacity: .74; }
.evaluation-span.is-resolved { opacity: .88; }
.evaluation-span:is(.is-active, .is-resolved) { transition-duration: 680ms; }
.evaluation-span.is-resolved .evaluation-haze { opacity: .15; }
.evaluation-span.is-resolved .evaluation-core { opacity: .8; }
.hero-atmosphere .evaluation-span.is-active { opacity: var(--ambient-evaluation-active); }
.hero-atmosphere .evaluation-span.is-resolved { opacity: var(--ambient-evaluation-resolved); }
.hero-atmosphere .evaluation-span.is-resolved .evaluation-haze { opacity: var(--ambient-evaluation-haze); }
.hero-atmosphere .evaluation-span.is-resolved .evaluation-core { opacity: var(--ambient-evaluation-core); }

.result-traces { opacity: 1; }
.result-trace { fill: #d7ddd9; opacity: 0; transition: opacity 728ms ease; }
.result-trace.is-active { opacity: .14; transition-duration: 520ms; }
.hero-atmosphere .result-trace.is-active { opacity: var(--ambient-trace); }
.ambient-route { stroke: url(#kw-route-light); stroke-width: 1.85; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; filter: url(#kw-route-glow); }
.hero-field-vignette { pointer-events: none; }
.hero-atmosphere.is-signature-active { opacity: .52; }
.hero-atmosphere.is-signature-active .hero-current-plane { filter: brightness(.7); }
.hero-atmosphere.is-signature-landed .search-current-a { animation: ambient-field-response 760ms ease-out both; }
.hero-atmosphere.is-scroll-active .hero-current-plane { filter: brightness(1.04); }
.hero-atmosphere.is-settled { opacity: .91; }
.hero-atmosphere.is-offscreen { opacity: .72; }

.hero-field-motion .search-current-b .current-haze { animation: ambient-mid-depth-breathe var(--ambient-mid-breathe-duration,8.6s) ease-in-out infinite alternate; }
.hero-field-motion .search-current-b .current-branch { animation: ambient-depth-flow var(--ambient-mid-depth-duration,15s) linear infinite; }
.hero-field-motion .search-current-d .current-haze { animation: ambient-far-depth-breathe var(--ambient-far-breathe-duration,12.8s) ease-in-out 1.7s infinite alternate; }
.hero-field-motion .search-current-d .current-branch { animation: ambient-depth-flow var(--ambient-far-depth-duration,21s) linear 2.3s infinite reverse; }
.hero-field-motion .search-current.is-awake .current-core,
.hero-field-motion .search-current.is-secondary .current-core,
.hero-field-motion .search-current.is-primary .current-core,
.hero-field-motion .search-current.is-resolved .current-core { stroke-dasharray: .18 .08 .06 .16 .1 .42; animation: ambient-current-flow var(--ambient-flow-duration,3.1s) linear infinite; }
.hero-field-motion .search-current.is-awake .current-branch,
.hero-field-motion .search-current.is-primary .current-branch,
.hero-field-motion .search-current.is-resolved .current-branch { animation: ambient-branch-flow var(--ambient-branch-duration,3.8s) linear infinite; }
.hero-field-motion .search-current.is-awake .current-haze,
.hero-field-motion .search-current.is-primary .current-haze { animation: ambient-current-breathe 1.9s ease-in-out infinite alternate; }
.hero-field-motion .result-trace.is-active { animation: ambient-trace 2090ms ease-in-out both; }
.hero-field-motion .evaluation-span.is-active .evaluation-core { animation: ambient-evaluation-flow 2.3s linear infinite; }
.hero-field-motion .ambient-route.is-routing { animation: ambient-route-resolve var(--ambient-route-duration,3900ms) cubic-bezier(.18,.68,.2,1) both; }
.hero-field-motion .evaluation-concentration.is-active { animation: ambient-concentration-presence var(--ambient-concentration-duration,3800ms) cubic-bezier(.16,.7,.18,1) both; }
.hero-field-motion .evaluation-concentration.is-active .concentration-haze { animation: ambient-concentration-cohere var(--ambient-concentration-duration,3800ms) cubic-bezier(.16,.7,.18,1) both; }
.hero-field-motion.is-offscreen *, .hero-field-motion.is-offscreen *::before, .hero-field-motion.is-offscreen *::after { animation-play-state: paused !important; }

@keyframes ambient-current-flow { from { stroke-dashoffset: .14; } to { stroke-dashoffset: -1.86; } }
@keyframes ambient-branch-flow { from { stroke-dashoffset: .3; } to { stroke-dashoffset: -1.7; } }
@keyframes ambient-depth-flow { from { stroke-dashoffset: .16; } to { stroke-dashoffset: -1.84; } }
@keyframes ambient-mid-depth-breathe { from { opacity: var(--ambient-mid-breathe-low,.15); } to { opacity: var(--ambient-mid-breathe-high,.23); } }
@keyframes ambient-far-depth-breathe { from { opacity: var(--ambient-far-breathe-low,.07); } to { opacity: var(--ambient-far-breathe-high,.13); } }
@keyframes ambient-current-breathe { from { opacity: var(--ambient-active-breathe-low,.11); } to { opacity: var(--ambient-active-breathe-high,.24); } }
@keyframes ambient-evaluation-flow { from { stroke-dashoffset: .2; } to { stroke-dashoffset: -1.8; } }
@keyframes ambient-trace { 0%,100% { opacity: 0; transform: translate3d(-12px,3px,0); } 30%,60% { opacity: var(--ambient-trace,.12); transform: translate3d(9px,-2px,0); } }
@keyframes ambient-route-resolve { 0% { stroke-dashoffset: 1; opacity: 0; } 12% { opacity: var(--ambient-route-early,.24); } 56% { stroke-dashoffset: 0; opacity: var(--ambient-route-peak,.72); } 72% { stroke-dashoffset: 0; opacity: var(--ambient-route-hold,.62); } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes ambient-field-response { 0%,100% { opacity: .051; } 37% { opacity: .192; } }
@keyframes ambient-concentration-presence { 0%,100% { opacity: 0; } 18% { opacity: var(--ambient-concentration-rise,.18); } 38% { opacity: var(--ambient-concentration-peak,.72); } 66% { opacity: var(--ambient-concentration-hold,.58); } 84% { opacity: var(--ambient-concentration-tail,.22); } }
@keyframes ambient-concentration-cohere { 0% { transform: scale(.58); } 38% { transform: scale(1); } 66% { transform: scale(.92); } 100% { transform: scale(1.12); } }

.section-grid { display: grid; grid-template-columns: var(--rail) minmax(0,1fr); gap: var(--gap); }
.section-rail { padding-top: 6px; }
.section-content { min-width: 0; }
.content-section, .approach-section, .technology-section, .pricing-section, .contact-section { scroll-margin-top: calc(var(--header-height) - 1px); }
.content-section { padding-block: 92px 101px; }
.editorial-lead, .data-story, .technology-lead { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(280px,.94fr); gap: 56px; }
.editorial-lead { padding-bottom: 46px; }
.editorial-copy { max-width: 640px; color: var(--secondary); font-size: 18px; line-height: 1.61; }
.editorial-copy p + p { margin-top: 20px; }
.section-intro { font-size: clamp(33px,3.15vw,46px); font-weight: 500; line-height: 1.08; letter-spacing: -.038em; text-wrap: balance; }
.what-we-do-lead { align-items: start; padding-bottom: 39px; }
.category-authority { position: relative; max-width: 600px; padding: 2px 0 2px 58px; color: var(--ink-soft); font-size: 18.5px; font-weight: 500; line-height: 1.58; }
.category-authority::before { content: ""; position: absolute; top: 16px; left: 0; width: 35px; height: 2px; background: var(--accent); }
.locator-definition { max-width: 920px; padding: 25px 30px; border-left: 3px solid var(--accent); color: var(--ink); background: rgba(154,49,45,.045); font-size: clamp(19px,1.75vw,23px); font-weight: 450; line-height: 1.52; letter-spacing: -.012em; }
.what-we-do-story { display: grid; grid-template-columns: minmax(0,1.06fr) minmax(280px,.94fr); gap: 56px; padding: 41px 0 48px; }
.what-we-do-story p { font-size: 18px; line-height: 1.61; }
.present-day-capability { color: var(--ink-soft); }
.custom-advantage { color: var(--ink-soft); }
.unusual-request { position: relative; display: block; margin: 20px 0 58px; padding: 36px 0 0 28px; border-top: 1px solid var(--rule); color: var(--ink-soft); font-size: 17px; font-weight: 500; line-height: 1.55; text-decoration-thickness: 1px; text-decoration-color: transparent; }
.unusual-request::before { content: ""; position: absolute; top: -1px; left: 0; width: 39px; height: 2px; background: var(--accent); }
.unusual-request span { color: var(--accent); font-weight: 700; }
.unusual-request:hover, .unusual-request:focus-visible { color: var(--ink); text-decoration-color: var(--accent); }

.requirements-visual { display: block; width: 148px; height: auto; margin-top: 34px; overflow: visible; }
.requirements-visual path, .technology-choice path { fill: none; stroke: #a9aaa5; stroke-width: 1.1; vector-effect: non-scaling-stroke; }
.requirements-visual circle, .technology-choice circle { fill: var(--paper); stroke: var(--accent); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.requirements-visual .visual-endpoint, .technology-choice .visual-endpoint { fill: var(--accent); }

.capabilities { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.capability { min-width: 0; padding: 29px 24px 32px; }
.capability:first-child { padding-left: 0; }
.capability:last-child { padding-right: 0; }
.capability + .capability { border-left: 1px solid var(--rule); }
.capability h3 { position: relative; padding-top: 19px; font-size: 16px; font-weight: 700; line-height: 1.35; }
.capability h3::before { content: ""; position: absolute; top: 0; left: 0; width: 18px; height: 2px; background: var(--accent); }
.capability p { max-width: 455px; margin-top: 14px; color: var(--secondary); font-size: 16.5px; line-height: 1.6; }
.beyond-search { display: grid; grid-template-columns: 112px 150px minmax(300px,1fr); gap: 34px; align-items: center; margin-top: 44px; padding-block: 35px 5px; }
.beyond-search > p { color: var(--secondary); font-size: 17px; line-height: 1.62; }
.article-label { color: var(--accent); }
.beyond-route { display: flex; align-items: center; width: 100%; }
.route-node { flex: 0 0 auto; width: 9px; height: 9px; border: 2px solid var(--accent); border-radius: 50%; }
.route-line { flex: 1; height: 1px; background: var(--accent); transform-origin: left; }
.destination-pin { position: relative; display: inline-block; flex: 0 0 auto; width: 20px; height: 20px; background: var(--accent-bright); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.destination-pin > span { position: absolute; top: 6px; left: 6px; width: 8px; height: 8px; background: var(--ink); border-radius: 50%; }
.destination-pin.small { width: 16px; height: 16px; }
.destination-pin.small > span { top: 5px; left: 5px; width: 6px; height: 6px; }

.search-story { color: var(--white); background: var(--accent); scroll-margin-top: calc(var(--header-height) - 1px); }
.search-story-grid { display: grid; grid-template-columns: minmax(0,.96fr) minmax(300px,1.14fr) 240px; gap: 45px; align-items: center; min-height: 302px; padding-block: 49px 53px; }
.search-story .section-label { margin-bottom: 17px; color: #fff; }
.search-story .section-label::before { background: #f5b4ae; }
.search-story h2 { max-width: 500px; font-size: clamp(31px,2.75vw,40px); font-weight: 500; line-height: 1.08; letter-spacing: -.038em; text-wrap: balance; }
.search-explanation { padding-left: 27px; border-left: 1px solid rgba(255,255,255,.48); font-size: 17px; line-height: 1.61; }
.result-comparison { position: relative; display: grid; gap: 13px; padding: 12px 0 12px 22px; border-left: 1px solid rgba(255,255,255,.5); }
.comparison-origin, .comparison-choice { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; }
.comparison-origin > span { width: 8px; height: 8px; background: var(--white); border-radius: 50%; }
.result-comparison small { display: block; color: #f7d3cf; font-size: 9px; line-height: 1.25; letter-spacing: .035em; text-transform: uppercase; }
.comparison-choice strong { display: block; font-size: 12px; font-weight: 600; line-height: 1.3; }
.comparison-route { position: absolute; top: 29px; bottom: 24px; left: 26px; width: 1px; background: rgba(255,255,255,.55); transform-origin: top; }
.location-node { position: relative; width: 16px; height: 16px; border: 1px solid rgba(255,255,255,.95); border-radius: 50%; }
.nearest-choice { opacity: .82; }
.nearest-choice small { color: #fff; }
.nearest-choice .location-node::after { content: "×"; position: absolute; top: -6px; left: 3px; color: var(--white); font-size: 15px; }
.relevant-choice .destination-pin { background: var(--white); }
.relevant-choice .destination-pin > span { background: var(--accent); }

.approach-section { padding-block: 94px 100px; background: var(--field); }
.data-story { padding-bottom: 54px; }
@media (min-width: 821px) {
  .data-story { grid-template-rows: auto auto; row-gap: 0; }
  .data-story > .section-intro { grid-column: 1; grid-row: 1; align-self: start; }
  .data-story > .editorial-copy { display: contents; }
  .data-story > .editorial-copy p { max-width: 640px; margin-top: 0; }
  .data-story > .editorial-copy p:nth-child(1) { grid-column: 1; grid-row: 2; padding-top: 32px; }
  .data-story > .editorial-copy p:nth-child(2) { grid-column: 2; grid-row: 2; padding-top: 32px; }
}
.operations-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.operations-grid article { min-width: 0; padding: 34px 30px 38px 0; }
.operations-grid article + article { padding-left: 34px; border-left: 1px solid #b9bab4; }
.operations-grid h3 { margin-top: 14px; font-size: 23px; font-weight: 500; line-height: 1.22; letter-spacing: -.025em; }
.operations-grid article > p:last-child { margin-top: 17px; color: var(--secondary); font-size: 16.5px; line-height: 1.6; }

.technology-section { padding-block: 94px 102px; }
.technology-section .section-label { color: #d6dbd7; }
.technology-section .section-label::before { background: var(--accent-bright); }
.technology-lead { padding-bottom: 53px; }
.technology-lead > p { max-width: 630px; color: #cbd0cc; font-size: 17.5px; line-height: 1.62; }
.technology-choice { display: block; width: 230px; height: auto; margin-top: 31px; overflow: visible; }
.technology-choice path { stroke: #626965; }
.technology-choice circle { fill: var(--ink); stroke: var(--accent-bright); }
.technology-choice .visual-endpoint { fill: var(--accent-bright); }
.technology-detail { position: relative; display: grid; grid-template-columns: 112px minmax(0,1fr); border-top: 1px solid #535a56; }
.stack-guide { position: relative; min-height: 100%; }
.stack-guide > span { position: absolute; top: 40px; bottom: 42px; left: 32px; width: 1px; background: #7b4541; opacity: .9; transform-origin: top; }
.stack-guide i { position: absolute; left: 27px; width: 11px; height: 11px; background: var(--ink); border: 1.5px solid var(--accent-bright); border-radius: 50%; }
.stack-guide i:nth-of-type(1) { top: 38px; }
.stack-guide i:nth-of-type(2) { top: 50%; }
.stack-guide i:nth-of-type(3) { bottom: 40px; background: var(--accent-bright); }
.technology-list { display: grid; grid-template-columns: 1fr 1fr; }
.technology-list > div { min-height: 190px; padding: 37px 44px 40px 0; border-bottom: 1px solid #454b47; }
.technology-list > div:nth-child(even) { padding-left: 44px; border-left: 1px solid #454b47; }
.technology-list dt { color: var(--white); font-size: 18px; font-weight: 600; }
.technology-list dd { max-width: 500px; margin-top: 9px; color: #c6cbc7; font-size: 16px; line-height: 1.6; }

.pricing-section { padding-block: 65px 70px; }
.pricing-content { display: grid; grid-template-columns: minmax(0,.9fr) minmax(280px,1.1fr); gap: 38px; align-items: start; padding-left: 23px; border-left: 3px solid var(--accent); }
.pricing-content .section-intro { font-size: clamp(29px,2.7vw,39px); }
.pricing-content > p { color: var(--secondary); font-size: 17.5px; line-height: 1.62; }

.contact-section { padding-block: 56px 60px; color: var(--white); background: var(--ink-soft); }
.contact-section .section-label { color: #f0f2f0; }
.contact-section .section-label::before { background: var(--accent-bright); }
.contact-content { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 64px; align-items: end; }
.contact-content .contact-found { margin: 0 0 10px; color: var(--accent-bright); font-size: 15px; font-weight: 600; line-height: 1.4; }
.contact-section .section-intro { max-width: 720px; font-size: clamp(29px,2.9vw,42px); }
.contact-content p { margin-top: 15px; color: #c7ccc8; font-size: 17px; }
.contact-prompt { color: #d6dbd7; text-decoration-color: rgba(214,219,215,.46); }
.contact-prompt:hover, .contact-prompt:focus-visible { color: var(--white); text-decoration-color: var(--accent-bright); }
.contact-link { display: inline-flex; align-items: center; gap: 13px; min-height: 44px; color: var(--accent-bright); font-size: 16px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.contact-link span { transition: transform 180ms ease; }
.contact-link:hover, .contact-link:focus-visible { color: var(--white); }
.contact-link:hover span, .contact-link:focus-visible span { transform: translateX(4px); }

.site-footer { color: var(--secondary); background: var(--paper); border-top: 1px solid var(--rule); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 18px 30px; min-height: 74px; padding-block: 13px; font-size: 12px; }
.footer-links { display: flex; align-items: center; gap: 28px; }
.footer-links a { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; }

/* The only document-spanning motion is the opening brand-to-destination path. */
.waypoint-motion-group { position: absolute; top: 0; left: 0; z-index: 60; pointer-events: none; overflow: visible; }
.waypoint-motion-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.waypoint-motion-path { fill: none; stroke: var(--accent-bright); stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; opacity: .92; }
.waypoint-traveler { position: absolute; top: 0; left: 0; width: 31px; height: 31px; opacity: 0; will-change: transform,opacity; }
.motion-pin { position: absolute; inset: 2px; background: var(--accent-bright); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 0 0 1px rgba(255,255,255,.38); }
.motion-pin::after { content: ""; position: absolute; top: 8px; left: 8px; width: 9px; height: 9px; background: var(--ink); border-radius: 50%; }
.landing-ring { position: absolute; top: 0; left: 0; width: 22px; height: 22px; border: 1px solid var(--accent-bright); border-radius: 50%; opacity: 0; will-change: transform,opacity; }

/* With scripting active, unseen diagrams wait in an intelligible quiet state.
   Reduced motion and no-script visitors receive the complete static state. */
.motion-ready .content-section.motion-pending:not(.is-animating) .requirements-visual path,
.motion-ready .technology-section.motion-pending:not(.is-animating) .technology-choice path { stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .28; }
.motion-ready .content-section.motion-pending:not(.is-animating) .requirements-visual .visual-endpoint,
.motion-ready .technology-section.motion-pending:not(.is-animating) .technology-choice .visual-endpoint { opacity: .3; transform: scale(.7); transform-box: fill-box; transform-origin: center; }
.motion-ready .search-story.motion-pending:not(.is-animating) .comparison-route { transform: scaleY(0); }
.motion-ready .search-story.motion-pending:not(.is-animating) .nearest-choice { opacity: .52; }
.motion-ready .search-story.motion-pending:not(.is-animating) .nearest-choice .location-node::after { opacity: 0; }
.motion-ready .search-story.motion-pending:not(.is-animating) .relevant-choice { opacity: .28; }
.motion-ready .technology-section.motion-pending:not(.is-animating) .stack-guide > span { transform: scaleY(0); }
.motion-ready .technology-section.motion-pending:not(.is-animating) .stack-guide i { opacity: .2; transform: scale(.65); }

.content-section.is-animating .requirements-visual path { animation: custom-lines-in 560ms cubic-bezier(.22,.72,.2,1) both; }
.content-section.is-animating .requirements-visual .visual-endpoint { animation: endpoint-register 300ms ease-out 520ms both; transform-box: fill-box; transform-origin: center; }

.search-story.is-animating .nearest-choice { animation: search-nearest 720ms ease-out both; }
.search-story.is-animating .nearest-choice .location-node::after { animation: search-rejection 260ms ease-out 360ms both; }
.search-story.is-animating .comparison-route { animation: draw-stack 430ms ease-out 560ms both; }
.search-story.is-animating .relevant-choice { animation: relevant-result 360ms ease-out 850ms both; }
.search-story.is-animating .relevant-choice .destination-pin { animation: resolve-pin 360ms ease-out 850ms both; }

.technology-section.is-animating .technology-choice path { animation: technology-paths 520ms cubic-bezier(.22,.72,.2,1) both; }
.technology-section.is-animating .technology-choice .visual-endpoint { animation: endpoint-register 280ms ease-out 470ms both; transform-box: fill-box; transform-origin: center; }
.technology-section.is-animating .stack-guide > span { animation: draw-stack 500ms ease-out 650ms both; }
.technology-section.is-animating .stack-guide i { animation: reveal-node 220ms ease-out both; }
.technology-section.is-animating .stack-guide i:nth-of-type(1) { animation-delay: 670ms; }
.technology-section.is-animating .stack-guide i:nth-of-type(2) { animation-delay: 850ms; }
.technology-section.is-animating .stack-guide i:nth-of-type(3) { animation-delay: 1040ms; }

@keyframes brand-direction { 0% { opacity: 0; transform: scaleX(.2); } 14%,78% { opacity: 1; transform: scaleX(1); } 100% { opacity: 0; transform: scaleX(1.2); } }
@keyframes period-text-pulse { 0%,100% { filter: none; text-shadow: none; } 44% { filter: brightness(1.28); text-shadow: 0 0 8px var(--period-color); } }
@keyframes period-ring-pulse { 0% { opacity: .78; transform: translate(-50%,-50%) scale(.55); } 100% { opacity: 0; transform: translate(-50%,-50%) scale(2.15); } }
@keyframes custom-lines-in { from { stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .32; } to { stroke-dasharray: 1; stroke-dashoffset: 0; opacity: 1; } }
@keyframes technology-paths { from { stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .35; } to { stroke-dasharray: 1; stroke-dashoffset: 0; opacity: 1; } }
@keyframes draw-stack { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes resolve-pin { from { opacity: .22; transform: rotate(-45deg) scale(.64); } to { opacity: 1; transform: rotate(-45deg) scale(1); } }
@keyframes endpoint-register { 0% { opacity: .3; transform: scale(.68); } 62% { opacity: 1; transform: scale(1.42); } 100% { opacity: 1; transform: scale(1); } }
@keyframes search-nearest { 0% { opacity: .42; transform: translateY(0); } 22%,48% { opacity: 1; transform: translateY(-1px); } 100% { opacity: .82; transform: translateY(0); } }
@keyframes search-rejection { from { opacity: 0; transform: scale(.55); } to { opacity: 1; transform: scale(1); } }
@keyframes relevant-result { from { opacity: .24; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
@keyframes reveal-node { from { opacity: .2; transform: scale(.65); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 1100px) {
  :root { --rail: 140px; --gap: 38px; }
  .header-inner { gap: 28px; }
  .logo-link, .logo-link img { width: 220px; }
  nav ul { gap: 24px; }
  nav a { font-size: 17px; }
  .hero-copy { width: 92%; margin-left: 35px; }
  .hero-atmosphere { opacity: .94; }
  .capabilities { grid-template-columns: 1fr 1fr; }
  .capability { padding: 29px 30px 34px; }
  .capability:nth-child(odd) { padding-left: 0; border-left: 0; }
  .capability:nth-child(even) { padding-right: 0; }
  .capability:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .search-story-grid { grid-template-columns: minmax(0,.9fr) minmax(280px,1.1fr); gap: 36px; }
  .result-comparison { grid-column: 2; }
  .operations-grid { grid-template-columns: 1fr 1fr; }
  .operations-grid article:nth-of-type(3) { grid-column: 1 / -1; border-top: 1px solid #b9bab4; border-left: 0; padding-left: 0; }
}

@media (max-width: 900px) {
  nav a { font-size: 16px; }
  .brand-lockup { gap: 13px; }
  .brand-lockup > p { width: 76px; padding-left: 11px; }
  .beyond-search { grid-template-columns: 90px minmax(0,1fr); gap: 24px; }
  .beyond-search > p { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  :root { --rail: 125px; --gap: 30px; }
  .editorial-lead, .data-story, .technology-lead { grid-template-columns: 1fr; gap: 27px; }
  .editorial-lead, .data-story { padding-bottom: 42px; }
  .editorial-lead.what-we-do-lead { padding-bottom: 28px; }
  .what-we-do-story { grid-template-columns: 1fr; gap: 25px; padding-block: 28px 43px; }
  .requirements-visual { width: 128px; }
  .beyond-search { grid-template-columns: 90px minmax(0,1fr); gap: 24px; }
  .beyond-search > p { grid-column: 1 / -1; }
  .search-story-grid { grid-template-columns: 1fr; gap: 23px; min-height: 0; padding-block: 43px 47px; }
  .search-explanation { max-width: 620px; padding: 18px 0 0 17px; }
  .result-comparison { grid-column: auto; max-width: 430px; padding-block: 9px; }
  .technology-lead { padding-bottom: 40px; }
  .technology-detail { grid-template-columns: 78px minmax(0,1fr); }
  .stack-guide > span { left: 23px; }
  .stack-guide i { left: 18px; }
  .technology-list > div { padding-right: 29px; }
  .technology-list > div:nth-child(even) { padding-left: 31px; }
}

@media (max-width: 760px) {
  :root { --header-height: 104px; --rail: auto; --gap: 0; }
  .waypoint-motion-group { z-index: 29; }
  .site-header::after { width: 62px; }
  .header-inner { display: grid; grid-template-columns: 1fr auto; grid-template-rows: 62px 41px; gap: 0 12px; }
  .brand-lockup { grid-column: 1 / -1; justify-content: space-between; }
  .brand-lockup > p { width: 86px; font-size: 8.5px; }
  .logo-link { flex: none; width: min(205px,58vw); }
  .logo-link img { width: 100%; }
  nav { grid-column: 1 / -1; align-self: stretch; border-top: 1px solid var(--rule); }
  nav ul { justify-content: space-between; gap: 18px; }
  nav a { min-height: 40px; font-size: 14px; }
  nav a::after { bottom: 2px; }
  .hero-inner { min-height: 0; padding-block: 66px 70px; }
  .hero-copy { width: 100%; margin-left: 0; }
  .hero-atmosphere { opacity: .91; }
  .hero-field { width: 170%; transform: translateX(-40%); }
  .field-current-mobile-hide, .trace-a, .trace-c, .evaluation-span[data-evaluation="0"], .evaluation-span[data-evaluation="2"], .ambient-route[data-ambient-route="0"], .ambient-route[data-ambient-route="2"] { display: none; }
  .evaluation-concentration-field { opacity: .72; }
  .search-current.search-current-a { opacity: .014; }
  .search-current.search-current-b { opacity: .045; }
  .search-current.search-current-c { opacity: .02; }
  .search-current .current-haze { stroke-width: 14; opacity: .14; }
  .search-current .current-core { stroke-width: 1.2; opacity: .62; }
  .search-current .current-branch { stroke-width: .7; opacity: .3; }
  .evaluation-span .evaluation-haze { stroke-width: 15; }
  .ambient-route { stroke-width: 1.65; }
  .hero-atmosphere {
    --ambient-current-a: .027;
    --ambient-current-b: .095;
    --ambient-current-c: .039;
    --ambient-near-scale: 1.03;
    --ambient-mid-scale: .955;
    --ambient-near-haze-width: 18.5;
    --ambient-near-core-width: 1.42;
    --ambient-near-branch-width: .88;
    --ambient-mid-haze-width: 14;
    --ambient-mid-core-width: 1.2;
    --ambient-mid-branch-width: .66;
  }
  h1 { font-size: clamp(44px,10.7vw,61px); }
  .section-grid { grid-template-columns: 1fr; gap: 26px; }
  .section-rail { padding: 0; }
  .requirements-visual { display: none; }
  .content-section, .approach-section, .technology-section { padding-block: 66px 71px; }
  .editorial-lead, .data-story, .technology-lead { grid-template-columns: 1fr; gap: 27px; }
  .editorial-lead, .data-story { padding-bottom: 43px; }
  .editorial-lead.what-we-do-lead { padding-bottom: 27px; }
  .beyond-search { grid-template-columns: 96px minmax(0,1fr); gap: 24px; margin-top: 39px; padding-top: 32px; }
  .beyond-search > p { grid-column: 1 / -1; }
  .search-story-grid { grid-template-columns: 1fr; gap: 23px; min-height: 0; padding-block: 43px 47px; }
  .search-explanation { max-width: 620px; padding: 18px 0 0 17px; }
  .result-comparison { grid-column: auto; max-width: 430px; padding-block: 9px; }
  .operations-grid { grid-template-columns: 1fr; }
  .operations-grid article, .operations-grid article:nth-of-type(3) { grid-column: auto; padding: 27px 0 30px; border-left: 0; }
  .operations-grid article + article { border-top: 1px solid #b9bab4; border-left: 0; }
  .technology-lead { padding-bottom: 40px; }
  .pricing-section { padding-block: 54px 59px; }
  .pricing-content { grid-template-columns: 1fr; gap: 25px; }
  .contact-section { padding-block: 48px 52px; }
  .contact-content { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 520px) {
  .hero-inner { padding-block: 60px 64px; }
  .hero-atmosphere { opacity: .88; }
  h1 { font-size: clamp(40px,12vw,50px); }
  .hero-description { font-size: 17px; line-height: 1.58; }
  .content-section, .approach-section, .technology-section { padding-block: 58px 62px; }
  .section-grid { gap: 23px; }
  .section-intro { font-size: 34px; }
  .category-authority { padding-left: 49px; font-size: 17px; }
  .category-authority::before { width: 28px; }
  .what-we-do-story { gap: 22px; padding-block: 26px 39px; }
  .what-we-do-story p { font-size: 17px; }
  .locator-definition { padding: 20px 20px 21px; font-size: 18px; }
  .unusual-request { margin: 10px 0 48px; padding-top: 28px; }
  .capabilities { grid-template-columns: 1fr; }
  .capability, .capability:first-child, .capability:last-child, .capability:nth-child(odd), .capability:nth-child(even) { grid-column: 1; grid-row: auto; min-height: 0; padding: 25px 0 30px; border-left: 0; }
  .capability + .capability { border-top: 1px solid var(--rule); }
  .capability:first-child { border-top: 0; }
  .capability p { font-size: 17px; }
  .beyond-search { grid-template-columns: 84px minmax(0,1fr); }
  .search-story h2 { font-size: 33px; }
  .technology-choice { width: 210px; }
  .technology-detail { grid-template-columns: 36px minmax(0,1fr); }
  .stack-guide > span { left: 8px; }
  .stack-guide i { left: 3px; }
  .technology-list { grid-template-columns: 1fr; }
  .technology-list > div, .technology-list > div:nth-child(even) { min-height: 0; padding: 25px 0 29px; border-left: 0; }
  .technology-list dd { font-size: 16px; }
  .pricing-content { padding-left: 17px; }
  .pricing-content .section-intro { font-size: 32px; }
  .contact-link { font-size: 15px; }
  .footer-inner { align-items: flex-start; flex-direction: column; gap: 3px; padding-block: 19px; }
  .footer-links { width: 100%; justify-content: space-between; }
}

@media (max-width: 340px) {
  :root { --gutter: 18px; }
  .logo-link { width: 184px; }
  .brand-lockup > p { width: 76px; padding-left: 10px; font-size: 8px; }
  nav ul { gap: 11px; }
  nav ul { gap: 9px; }
  nav a { font-size: 13px; }
  h1 { font-size: 39px; }
  .hero-atmosphere { opacity: .85; }
  .section-intro { font-size: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
  .waypoint-replay { display: none !important; }
  .hero-atmosphere { opacity: .9 !important; }
  .hero-current-plane { transform: none !important; }
  .search-current { opacity: .006 !important; }
  .search-current-a { opacity: .012 !important; }
  .search-current-b { opacity: .045 !important; }
  .search-current-c { opacity: .019 !important; }
  .search-current-d { opacity: .022 !important; }
  .evaluation-concentration { opacity: 0 !important; }
  .evaluation-span, .result-trace,
  .ambient-route { opacity: 0 !important; }
}

@media print {
  :root { --paper: #fff; --ink: #000; --secondary: #333; --gutter: 0px; --header-height: 0px; }
  .site-header, .skip-link, .waypoint-replay, .waypoint-motion-group, .hero-atmosphere, .requirements-visual, .technology-choice, .beyond-route, .result-comparison, .stack-guide, .footer-links { display: none; }
  .dark-section, .search-story, .contact-section { color: #000; background: #fff; }
  .content-section, .approach-section, .technology-section, .pricing-section, .contact-section { padding-block: 28px; }
  .section-grid { grid-template-columns: 130px minmax(0,1fr); gap: 25px; }
}
