/* The final readable layout is also the no-JavaScript and reduced-motion layout. */
.home-page .home-hero-copy { min-width: 0; padding-block: 44px; }
.home-page .home-hero h1.kinetic-title { margin: 24px 0 0; font-size: clamp(1.9rem,4.2vw,3.8rem); line-height: 1.06; }
.home-hero h1.kinetic-title .title-stage { display: block; position: relative; }
.home-hero h1.kinetic-title .title-line { display: block; white-space: nowrap; }
.home-hero h1.kinetic-title [data-title-word] { display: inline-block; color: var(--navy); transform-origin: center; }
.home-hero h1.kinetic-title .work-word { display: inline-block; color: var(--blue); font-size: 1.38em; font-weight: 750; text-transform: uppercase; letter-spacing: -.055em; }
.motion-replay { display: none; align-items: center; gap: 7px; min-height: 34px; margin-top: 13px; padding: 3px 0; border: 0; background: transparent; color: #556779; cursor: pointer; font: inherit; font-size: .73rem; font-weight: 650; }
.motion-enabled .motion-replay { display: inline-flex; }
.motion-replay .ui-icon { width: 15px; height: 15px; transition: transform .25s ease; }
.motion-replay:hover { color: var(--blue); }
.motion-replay:hover .ui-icon { transform: rotate(-30deg); }
.motion-replay:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; border-radius: 2px; }
.hero-contact { display: grid; gap: 6px; margin-top: 26px; }
.hero-contact a { display: flex; align-items: center; gap: 11px; width: fit-content; color: var(--navy); text-decoration: none; }
.hero-contact a:first-child { font-size: clamp(1.45rem,2.1vw,1.8rem); font-weight: 750; letter-spacing: -.02em; }
.hero-contact a:last-child { font-size: 1rem; color: #405568; }
.hero-contact .ui-icon { color: var(--blue); }
.hero-contact a:hover { color: var(--blue); }
.home-hero-facts { margin-top: 25px; }

.capability-rail .shell { grid-template-columns: repeat(6,minmax(0,1fr)); }
.capability-item { display: flex; min-width: 0; min-height: 142px; align-items: center; justify-content: center; flex-direction: column; gap: 14px; padding: 23px 12px; border-left: 1px solid var(--line); color: var(--navy); text-decoration: none; transition: background-color .25s ease, color .25s ease; }
.capability-item:last-child { border-right: 1px solid var(--line); }
.capability-rail .capability-item .capability-label { display: block; border: 0; padding: 0; font: inherit; font-size: .82rem; font-weight: 650; text-align: center; }
.capability-item .capability-icon { width: 34px; height: 34px; flex: 0 0 auto; color: var(--blue); overflow: visible; }
.capability-item:hover, .capability-item:focus-visible { color: var(--blue); background: #eef6fc; }
.capability-item:focus-visible { outline: 2px solid var(--blue); outline-offset: -3px; }
.follow-stage [data-follow-word] { display: inline-block; position: relative; transform-origin: center; }
.follow-software { color: var(--blue); }
.follow-job { color: #346d18; }
.follow-heading { position: relative; }
.editorial-grid > div > p { margin-top: 22px; }
.anagram-word { display: inline-block; white-space: nowrap; }
.anagram-letter { display: inline-block; }
.anagram-line { display: block; color: var(--blue); }
.anagram-tail { display: block; margin-top: .18em; }
.operations-copy .motion-replay { align-self: flex-start; margin-bottom: 5px; }
.principle-visual { display: grid; min-height: 118px; place-items: center; margin: -8px -10px 24px; border: 1px solid #e2ebf2; border-radius: 15px; background: linear-gradient(145deg,#f3f8fc,#fff); }
.principle-art { display: block; width: min(100%,205px); height: 110px; color: var(--blue); }
.principle-art .art-muted { stroke: #a5b7c5; }
.principle-art .art-green { stroke: #4d8b29; stroke-width: 3; }
.principle-columns article { transition: background-color .25s ease; }
.principle-columns article:hover { background: #f6fafc; }
@media (max-width: 860px) {
  .home-page .home-hero-copy { padding: 42px 34px; }
  .home-page .home-hero h1.kinetic-title { font-size: clamp(2.25rem,7vw,3.8rem); max-width: 590px; }
  .capability-rail .shell { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .capability-item { border-bottom: 1px solid var(--line); }
  .capability-item:nth-child(3) { border-right: 1px solid var(--line); }
}
@media (max-width: 620px) {
  .home-page .home-hero-copy { padding: 34px 23px; }
  .home-page .home-hero h1.kinetic-title { font-size: clamp(1.75rem,7.6vw,2.7rem); }
  .capability-rail .shell { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .capability-item { min-height: 130px; }
  .capability-item:nth-child(3) { border-right: 0; }
  .capability-item:nth-child(even) { border-right: 1px solid var(--line); }
  .hero-contact a:last-child { font-size: .92rem; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-enabled .motion-replay { display: none; }
  .home-page .hero-enter { animation: none; }
  .capability-item, .principle-columns article { transition: none; }
}

/* Refined motion: centre-of-screen stories and continuous, upright curved type. */
.home-page .title-stage, .home-page .follow-heading { isolation: isolate; }
.home-page [data-title-work] { position: relative; z-index: 2; }
.home-page [data-title-word] { position: relative; z-index: 3; }
.home-page .section-observe, .home-page .reveal { transition-duration: 1.05s; }
.home-page .capability-item { position: relative; overflow: hidden; transition: background-color .5s ease, color .5s ease, box-shadow .5s ease, transform .4s ease; }
.capability-item::after { content: ''; position: absolute; inset: auto 22% 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--blue); transform: scaleX(0); transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.capability-item:hover::after, .capability-item:focus-visible::after { transform: scaleX(1); }
.capability-item:active { transform: scale(.97); background: #deeffb; }
.home-page .ledger-list > a { grid-template-columns: 112px minmax(0,.95fr) minmax(0,1.05fr) 24px; gap: 22px; padding: 20px 8px; min-height: 130px; transition: background-color .5s ease, color .5s ease, box-shadow .5s ease, transform .35s ease; }
.home-page .ledger-list > a:hover { padding-inline: 8px; background: #f3f8fc; box-shadow: inset 3px 0 var(--blue); }
.home-page .ledger-list > a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.home-page .ledger-list > a:active { transform: scale(.99); }
.service-visual { display: grid; width: 112px; height: 90px; place-items: center; border: 1px solid #e1ebf2; border-radius: 12px; background: linear-gradient(135deg,#f0f7fc,#fff); color: var(--blue); }
.service-visual svg { display: block; width: 104px; height: 83px; }
.service-visual .visual-muted { stroke: #90a9bc; }
.service-visual .visual-fill { fill: #edf6fc; }
.service-visual .visual-accent { stroke: #3b842b; }
.home-page .ledger-list > a b .ui-icon { transition: transform .55s ease; }
.home-page .ledger-list > a:hover b .ui-icon, .home-page .ledger-list > a:focus-visible b .ui-icon { transform: translateX(5px); }
.anagram-tail { position: relative; }
.blueprint-word { display: inline-block; position: relative; z-index: 1; }
.blueprint-guides { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; fill: none; stroke: #4a94c9; stroke-width: .8px; }
.blueprint-guides line { opacity: 0; vector-effect: non-scaling-stroke; }
.field-build { max-width: 360px; margin: 24px 0 12px; padding: 14px 12px 12px; background: linear-gradient(145deg,#f1f7fb,#fff); border: 1px solid #dde8f0; border-radius: 14px; }
.field-build-art { display: block; width: 100%; height: auto; color: var(--blue); }
.field-build .field-muted { stroke: #93aabb; }
.field-build .field-accent { stroke: #448536; }
.field-build .field-tile { fill: #ecf5fb; }
.field-build .field-signal { opacity: 0; }
.field-build-labels { display: flex; justify-content: space-between; padding: 0 4px; color: #556b7e; font-size: .72rem; font-weight: 650; }
.home-page .home-contact .shell > .time-contact { display: grid; grid-template-columns: 148px minmax(0,1fr); align-items: center; gap: 36px; }
.time-visual { width: 148px; color: var(--blue); }
.time-visual svg { width: 100%; display: block; overflow: visible; }
.clock-face { fill: #f4f9fd; }
.clock-halo { stroke: #bdd5e7; stroke-width: 1.2; transform: rotate(-90deg); transform-origin: 80px 80px; }
.clock-ticks { stroke: #90a9bc; }
.clock-hour, .clock-minute { transform-origin: 80px 80px; }
.clock-hour { stroke-width: 3.5; transform: rotate(50deg); }
.clock-minute { stroke-width: 2.4; transform: rotate(30deg); }
.home-page .time-copy h2 { font-size: clamp(2rem,3.8vw,3.7rem); }
.home-page .time-copy .button { margin: 27px 0 0; }
@media (max-width: 1000px) {
  .home-page .ledger-list > a { grid-template-columns: 94px minmax(0,1fr) 24px; gap: 18px; }
  .service-visual { width: 94px; height: 82px; grid-row: span 2; }
  .service-visual svg { width: 90px; height: 72px; }
  .home-page .ledger-list > a strong { grid-column: 2; align-self: end; }
  .home-page .ledger-list > a em { grid-column: 2; grid-row: 2; align-self: start; }
  .home-page .ledger-list > a b { grid-column: 3; grid-row: 1 / 3; }
}
@media (max-width: 620px) {
  .home-page .ledger-list > a { grid-template-columns: 68px minmax(0,1fr) 18px; gap: 8px 13px; padding-block: 21px; }
  .service-visual { width: 68px; height: 68px; border-radius: 10px; }
  .service-visual svg { width: 64px; height: 54px; }
  .home-page .ledger-list strong { font-size: .98rem; line-height: 1.35; }
  .home-page .ledger-list em { font-size: .78rem; line-height: 1.5; }
  .home-page .ledger-list > a b .ui-icon { width: 18px; }
  .home-page .home-contact .shell > .time-contact { grid-template-columns: 1fr; gap: 24px; }
  .time-visual { width: 108px; }
  .home-page .time-copy h2 { font-size: clamp(1.85rem,7.8vw,2.5rem); }
  .field-build { margin-top: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .capability-item, .home-page .capability-item::after,
  .home-page .ledger-list > a, .home-page .ledger-list > a b .ui-icon { transition: none; }
  .home-page .capability-item:active, .home-page .ledger-list > a:active { transform: none; }
}
@media (max-width: 380px) {
  .home-page .ledger-list > a { grid-template-columns: 56px minmax(0,1fr) 18px; gap: 13px 11px; }
  .service-visual { grid-row: 1; width: 56px; height: 59px; }
  .service-visual svg { width: 53px; height: 47px; }
  .home-page .ledger-list > a strong { align-self: center; }
  .home-page .ledger-list > a em { grid-column: 1 / -1; grid-row: 2; font-size: .84rem; }
  .home-page .ledger-list > a b { grid-row: 1; }
}

/* Selected stories: headline 10, S2, B2 and F2. */
.home-page .chosen-heading { position: relative; min-width: 0; container-type: inline-size; font-family: var(--font-sans); font-weight: 600; letter-spacing: -.05em; line-height: 1.13; }
.chosen-heading .chosen-scene { display: block; position: relative; isolation: isolate; }
.chosen-heading .typeset, .chosen-heading .section-type { display: block; position: relative; z-index: 1; }
.chosen-heading .line, .chosen-heading .type-line { display: block; }
.chosen-heading .word { display: inline-block; }
.chosen-heading .traced-word { display: block; width: 92%; margin: 7px 0 0; line-height: 0; }
.chosen-heading .traced-svg, .chosen-heading .outline-word { display: block; width: 100%; height: auto; overflow: visible; }
.chosen-heading .traced-svg text, .chosen-heading .needs-hub text, .chosen-heading .ink-word { font-family: 'Segoe UI',Arial,sans-serif; font-weight: 750; letter-spacing: -5px; fill: var(--blue); stroke: var(--blue); stroke-width: .8; paint-order: stroke; }
.chosen-heading .trace-corner { fill: none; stroke: #adc7db; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chosen-heading .trace-green { fill: none; stroke: var(--green); stroke-width: 3; stroke-linecap: round; }
.home-page .home-hero h1.chosen-ten { margin: 24px 0 0; font-size: clamp(1.75rem,7.9cqw,3.4rem); }
.chosen-ten .line { overflow: hidden; padding-bottom: 3px; }
.chosen-ten .outline-wrap { display: block; width: 88%; max-width: 480px; margin-top: 8px; }
.chosen-ten .ink-word { font-size: 143px; letter-spacing: -9px; stroke-width: 1.2; }
.chosen-ten .ink-line { fill: none; stroke: #a9c5da; stroke-width: 2; stroke-linecap: round; }
.chosen-ten .ink-green { fill: none; stroke: var(--green); stroke-width: 3; stroke-linecap: round; }
.home-page .editorial-grid h2.chosen-s2 { max-width: 720px; font-size: clamp(1.9rem,6.4cqw,3.4rem); }
.chosen-s2 .chosen-scene { padding-bottom: 120px; }
.chosen-s2 .traced-word { max-width: 530px; width: 80%; }
.chosen-heading .sentence-tail { display: block; max-width: 610px; margin-top: 15px; font-size: clamp(1rem,3.25cqw,1.45rem); font-weight: 450; letter-spacing: -.025em; line-height: 1.4; color: #536779; }
.chosen-heading .section-rail { position: absolute; left: 0; bottom: 0; width: 90%; max-width: 590px; height: 90px; fill: none; stroke: #b1cbdf; stroke-width: 1.8; }
.chosen-heading .rail-node { fill: #f8fbfe; stroke: var(--blue); stroke-width: 1.5; }
.chosen-heading .rail-mark { stroke: var(--blue); stroke-linecap: round; stroke-linejoin: round; }
.chosen-heading .section-rail text { fill: #71899c; stroke: none; font: 11px 'Segoe UI',Arial,sans-serif; letter-spacing: 0; }
.chosen-heading .rail-dot { fill: var(--blue); stroke: none; opacity: 0; }
.home-page .ledger-heading { grid-template-columns: minmax(0,1.3fr) minmax(0,.7fr); align-items: center; }
.home-page .ledger-heading h2.chosen-b2 { font-size: clamp(1.6rem,6.4cqw,2.6rem); }
.chosen-b2 .chosen-scene { padding-top: 12px; padding-bottom: 10px; }
.chosen-b2 .hub-heading { width: 100%; text-align: center; }
.chosen-heading .needs-hub { display: block; width: 100%; height: auto; margin-top: 30px; overflow: visible; }
.chosen-heading .hub-feed { fill: none; stroke: #b1cbdf; stroke-width: 1.5; }
.chosen-heading .hub-centre { fill: #fbfdff; stroke: #a8c5dc; stroke-width: 1.5; }
.chosen-heading .hub-symbol { fill: #f6faff; stroke: var(--blue); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.chosen-heading .hub-symbol path { fill: none; }
.chosen-heading .needs-hub text { letter-spacing: -2.5px; }
.home-page .trade-case h2.chosen-f2 { font-size: clamp(1.65rem,7.3cqw,3rem); }
.chosen-f2 .traced-word { width: 100%; margin-top: 4px; }
.chosen-f2 .traced-svg text { letter-spacing: -1.5px; }
.chosen-f2 .trace-corner { opacity: 0; }
.chosen-heading .field-transform { display: block; width: 100%; height: auto; margin-top: 22px; fill: none; stroke: #acc7dc; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.chosen-heading .field-source { stroke: #83a8c4; }
.chosen-heading .field-target { stroke: var(--blue); fill: none; }
.chosen-heading .field-record rect { fill: #f5faef; stroke: #7bad52; }
.chosen-heading .field-record path { stroke: #579831; stroke-width: 2; }
.chosen-heading .field-final-records { stroke: #94b5ce; }
.chosen-heading .field-final-records path { stroke: #579831; stroke-width: 2; }
@media(max-width:860px) {
  .home-page .ledger-heading { grid-template-columns: 1fr; gap: 25px; }
  .services-heading-story { max-width: 620px; }
  .home-page .trade-case h2.chosen-f2 { max-width: 600px; }
}
@media(max-width:620px) {
  .home-page .home-hero h1.chosen-ten { font-size: clamp(1.55rem,7.7cqw,2.8rem); }
  .home-page .editorial-grid h2.chosen-s2 { font-size: clamp(1.7rem,7.4cqw,2.7rem); }
  .chosen-s2 .traced-word { width: 96%; }
  .chosen-s2 .chosen-scene { padding-bottom: 95px; }
  .chosen-heading .section-rail { width: 100%; height: auto; bottom: 7px; }
  .home-page .ledger-heading h2.chosen-b2 { font-size: clamp(1.35rem,6.4cqw,2.1rem); }
  .chosen-heading .needs-hub { margin-top: 22px; }
  .home-page .trade-case h2.chosen-f2 { font-size: clamp(1.5rem,7.3cqw,2.5rem); }
  .chosen-heading .field-transform { margin-top: 15px; }
}

/* Alternating photo panels: right, left, right, left, right. */
.home-page .home-photo { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #edf2f5; }
.home-page .home-photo > img, .home-page .home-photo .media-reveal > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; filter: none; }
.home-page .home-photo::after, .home-page .home-photo .media-reveal::after { display: none; }
.home-page .home-hero-media { min-height: 610px; }
.home-page .home-hero-media img { object-position: center bottom; }
.home-page .editorial-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); grid-template-areas: 'media copy'; gap: 0; padding: 0; overflow: hidden; }
.home-page .software-story-copy { grid-area: copy; min-width: 0; padding: clamp(30px,4vw,52px); }
.home-page .software-story-media { grid-area: media; min-height: 540px; }
.home-page .software-story-media img { object-position: 67% center; }
.home-page .editorial-grid h2.chosen-s2 { font-size: clamp(1.8rem,7cqw,2.8rem); }
.home-page .chosen-s2 .traced-word { width: 100%; }
.home-page .chosen-s2 .sentence-tail { font-size: clamp(1rem,3.7cqw,1.2rem); }
.home-page .chosen-s2 .section-rail { width: 100%; }
.home-page .software-story-copy > p { margin: 24px 0 0; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.home-page .service-ledger > .shell { padding: 0; overflow: hidden; }
.home-page .ledger-heading { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); align-items: stretch; gap: 0; margin-bottom: 0; }
.home-page .services-heading-story { max-width: none; min-width: 0; padding: clamp(30px,4vw,52px); }
.home-page .ledger-heading h2.chosen-b2 { font-size: clamp(1.55rem,6.4cqw,2.45rem); }
.home-page .services-story-lead { margin: 24px 0 0; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.home-page .services-story-media { min-height: 520px; }
.home-page .services-story-media img { object-position: 51% center; }
.home-page .ledger-list { padding: 20px clamp(30px,4vw,52px) 30px; }
.home-page .operations-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.home-page .operations-story-media { min-height: 580px; }
.home-page .operations-story-media img { object-position: center; }
.home-page .trade-case-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.home-page .trade-case-copy { min-width: 0; padding: clamp(30px,4vw,52px); }
.home-page .field-story-media { min-height: 580px; }
.home-page .field-story-media img { object-position: center; }
@media(max-width:860px) {
  .home-page .editorial-grid, .home-page .ledger-heading, .home-page .operations-grid, .home-page .trade-case-grid { grid-template-columns: minmax(0,1fr); }
  .home-page .editorial-grid { grid-template-areas: 'copy' 'media'; }
  .home-page .home-hero-media { min-height: 490px; }
  .home-page .software-story-media, .home-page .services-story-media, .home-page .operations-story-media, .home-page .field-story-media { min-height: 0; height: clamp(320px,60vw,460px); }
  .home-page .operations-story-media { order: 2; }
  .home-page .operations-copy { order: 1; }
  .home-page .software-story-media img { object-position: center 40%; }
  .home-page .services-story-media img { object-position: center 42%; }
  .home-page .ledger-heading h2.chosen-b2 { max-width: 600px; margin-inline: auto; }
}
@media(max-width:620px) {
  .home-page .home-hero-media { min-height: 420px; }
  .home-page .software-story-copy, .home-page .services-heading-story, .home-page .trade-case-copy { padding: 30px 23px; }
  .home-page .editorial-grid h2.chosen-s2 { font-size: clamp(1.65rem,7.4cqw,2.7rem); }
  .home-page .ledger-heading h2.chosen-b2 { font-size: clamp(1.3rem,6.4cqw,2.1rem); }
  .home-page .ledger-list { padding: 12px 21px 20px; }
  .home-page .operations-copy { padding: 32px 23px; }
  .home-page .software-story-media, .home-page .services-story-media, .home-page .operations-story-media, .home-page .field-story-media { height: 300px; }
}

/* Pending visuals occupy their final space and appear only when their sequence starts. */
html.home-motion-ready [data-motion-root][data-motion-state="pending"] { opacity: 0; }
@media(prefers-reduced-motion:reduce){
 html.home-motion-ready [data-motion-root][data-motion-state="pending"] { opacity: 1; }
}
