/* Self-hosted fonts (variable weight, latin + latin-ext). See ../fonts/LICENSE.txt */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500 700;font-display:swap;src:url(../fonts/space-grotesk-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500 700;font-display:swap;src:url(../fonts/space-grotesk-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Readex Pro";font-style:normal;font-weight:160 700;font-display:swap;src:url(../fonts/readex-pro-arabic.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}


/* Minimal reset (subset of Tailwind preflight the original relied on) */
*,::before,::after{box-sizing:border-box;margin:0;padding:0;border:0 solid}
html{line-height:1.5;-webkit-text-size-adjust:100%}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
small{font-size:80%}
ul,ol{list-style:none}
button{font:inherit;color:inherit;background-color:transparent;border-radius:0}
button{cursor:pointer}

html body{font-family:Inter,Arial,Helvetica,sans-serif}body h1,body h2,body h3,body .wordmark{font-family:"Space Grotesk",Arial,sans-serif}.hero .eyebrow{display:inline-flex;align-items:center;margin-bottom:25px;padding:7px 11px;border:1px solid #d8e2ef;border-radius:999px;background:#f7faff;letter-spacing:.09em}.hero h1 em{display:block;margin-top:.12em;color:var(--blue);font-style:normal}.hero .proof{margin-top:55px}.hero .operating-line{margin-top:48px}[dir=rtl] .hero .eyebrow{letter-spacing:0}
 .site .hero{padding-top:48px}.hero .eyebrow{margin-bottom:22px;border-radius:4px}.hero h1 em{font-size:1em;line-height:1.05}.actions{align-items:center;gap:10px}.actions .button{min-height:42px;padding:0 17px}
 .hero-detail{max-width:670px}.hero-detail .intro{margin-bottom:14px}.inline-cta{margin:0;color:var(--muted);font-weight:400}.inline-cta a{color:var(--blue);font-weight:700}.inline-cta a:hover{text-decoration:underline}.about .proof{margin-top:54px}
nav .nav-links{gap:24px;color:#667085;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.language{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:4px 0;color:#98a2b3;font-weight:500;cursor:pointer}.language i{font-style:normal;color:#c5cedb}.language .selected{color:var(--ink);font-weight:700}
.operating-line{margin-top:76px}.line-rail{height:2px;background:#d7dfeb;position:relative}.line-rail span{display:block;height:100%;background:var(--blue);transition:inline-size .35s ease}.stage-buttons{display:grid;grid-template-columns:repeat(3,1fr)}.stage{min-height:128px;padding:17px 24px 0 0;border:0;border-inline-end:1px solid var(--line);background:transparent;text-align:inherit;color:var(--muted);cursor:pointer;display:grid;align-content:start;gap:7px}.stage+.stage{padding-inline-start:24px}.stage span{font-weight:700;color:#98a2b3}.stage strong{color:var(--ink)}.stage small{max-width:250px;line-height:1.45;color:var(--muted)}.stage.active strong,.stage.active span,.stage:hover strong{color:var(--blue)}.proof{margin-top:30px}@media(max-width:720px){.operating-line{margin-top:52px}.stage-buttons{grid-template-columns:1fr}.stage,.stage+.stage{min-height:auto;padding:15px 0;border-inline-end:0;border-bottom:1px solid var(--line)}}
:root{--ink:#101624;--muted:#667085;--line:#d9e0ea;--blue:#1769e0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif}.site{min-height:100vh}.shell{width:min(1160px,calc(100% - 48px));margin:auto}.nav-wrap{position:sticky;top:0;z-index:5;background:#fffffff0;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:32px}.wordmark{font-size:1.3rem;font-weight:800;letter-spacing:-.075em}.wordmark span,.eyebrow,.card>span{color:var(--blue)}a{text-decoration:none;color:inherit}.nav-links{display:flex;gap:28px;color:#4b5565}.nav-links a:hover{color:var(--blue)}.language{border:1px solid var(--line);border-radius:4px;background:#fff;padding:9px 13px;font-weight:700;cursor:pointer}.hero{padding:112px 0 72px;border-bottom:1px solid var(--line)}.hero-copy{max-width:820px}.eyebrow{margin:0 0 22px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:850px;margin-bottom:28px;line-height:.95;letter-spacing:-.075em}h2{max-width:790px;margin-bottom:32px;line-height:1;letter-spacing:-.065em}.intro,.about>p:last-child{max-width:670px;color:#4b5565;line-height:1.6}.actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 21px;border:1px solid transparent;border-radius:4px;font-weight:700}.primary{background:var(--blue);color:#fff}.secondary{border-color:var(--line)}.proof{display:grid;grid-template-columns:repeat(3,1fr);margin-top:88px;border-top:1px solid var(--line)}.proof div{display:grid;gap:8px;padding:18px 24px 0 0}.proof div+div{padding-left:24px;border-inline-start:1px solid var(--line)}.proof span{color:#98a2b3;font-weight:700}.section{padding:112px 0}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}.card{min-height:255px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.card>span{font-weight:700}.card h3{margin:54px 0 10px;letter-spacing:-.035em}.card p{max-width:420px;margin:0;color:var(--muted);line-height:1.55}.approach{padding:110px 0;background:var(--ink);color:#fff}.approach-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:80px}.approach .eyebrow{color:#78aeff}.approach h2{margin:0}.approach-copy{color:#d0d8e5;line-height:1.65}.approach-copy ul{margin:36px 0 0;padding:0;border-top:1px solid #33415a;list-style:none}.approach-copy li{padding:14px 0;border-bottom:1px solid #33415a;color:#fff;font-weight:700}.contact{padding:88px 0;background:var(--blue);color:#fff}.contact-grid{display:flex;align-items:end;justify-content:space-between;gap:42px}.contact h2{max-width:700px;margin-bottom:14px}.contact p{margin:0;color:#dbeafe}.light{flex:none;background:white;color:var(--ink)}.footer{display:flex;justify-content:space-between;padding:28px 0;color:#667085}[dir=rtl]{font-family:Inter,"Readex Pro",Arial,sans-serif}[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{letter-spacing:0}[dir=rtl] .eyebrow{letter-spacing:0}[dir=rtl] .nav{flex-direction:row-reverse}[dir=rtl] .proof div{padding-right:0;padding-left:24px}[dir=rtl] .proof div+div{padding-right:24px;padding-left:0}@media(max-width:720px){.shell{width:calc(100% - 32px)}.nav{height:66px;gap:12px}.nav-links{display:none}.hero{padding:72px 0 48px}.proof{margin-top:58px;grid-template-columns:1fr}.proof div,.proof div+div{padding:15px 0;border-inline-start:0;border-top:1px solid var(--line)}.proof div:first-child{border-top:0}.section{padding:75px 0}.service-grid{grid-template-columns:1fr}.card{min-height:210px}.card h3{margin-top:35px}.approach{padding:75px 0}.approach-grid{grid-template-columns:1fr;gap:24px}.contact{padding:64px 0}.contact-grid{align-items:flex-start;flex-direction:column}.footer{gap:10px;flex-direction:column}}

/* Accessibility: skip link, keyboard focus, reduced motion */
.skip-link{position:absolute;inset-inline-start:16px;top:-100px;z-index:10;padding:10px 16px;border-radius:4px;background:var(--ink);color:#fff;font-weight:700}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.approach :focus-visible,.contact :focus-visible{outline-color:#fff}
.line-rail span{inline-size:0}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.line-rail span{transition:none}}

/* 404 page */
.not-found{min-height:calc(100vh - 77px);display:grid;align-content:center;padding:96px 0}
.not-found .code{margin:0 0 18px;color:var(--blue);font-weight:700;letter-spacing:.12em}
.not-found p{max-width:560px;color:var(--muted);line-height:1.6}
.not-found .links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.not-found .ar{margin-top:56px;padding-top:32px;border-top:1px solid var(--line)}

/* Enterprise evidence layer */
.evidence-row{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:8px;color:#667085;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}
.evidence-row span{text-align:end}
h2 .line{display:block}
.about .intro+.intro{margin-top:18px}
.footer{display:block;color:#667085}
.footer-top,.footer-legal{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.footer-legal{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);line-height:1.6;color:#b4bcc8}
.footer a:hover{color:var(--blue)}
[dir=rtl] .evidence-row{letter-spacing:0}
@media(max-width:720px){.footer-top,.footer-legal{flex-direction:column}.evidence-row{display:block}.evidence-row span{padding:0;text-align:start}.evidence-row span+span::before{content:" · "}}

/* Type scale — one consistent set of text styles below the hero:
   lead 1.16rem · body 1rem · label .74rem caps · footer .8rem */
.approach-copy,.contact p{line-height:1.6}
.approach-copy li{font-weight:400}
.card>span{letter-spacing:.12em}

/* Type scale — five tokens. Every text element maps to one of them.
   Display / Heading: fluid (clamp). Subheading / Body / Small: fixed.
   Secondary hierarchy via weight, case, tracking and colour only.
   Exception: the wordmark (logo). */
:root{--fs-display:clamp(3rem,7vw,6.8rem);--fs-heading:clamp(2.25rem,4.2vw,4.55rem);--fs-sub:1.25rem;--fs-body:1.125rem;--fs-small:.8125rem}
@media(max-width:720px){:root{--fs-body:1.0625rem}}

h1{font-size:var(--fs-display)}
h2{font-size:var(--fs-heading)}
.stage strong,.card h3{font-family:Inter,Arial,Helvetica,sans-serif;font-size:var(--fs-sub);font-weight:700;letter-spacing:-.04em;line-height:1.5}

/* Body */
.intro,.approach-copy,.approach-copy li,.contact p,.not-found p{font-size:var(--fs-body);line-height:1.6}

/* Small */
.inline-cta,.language,.skip-link,.stage small,.card p,.footer,.button{font-size:var(--fs-small)}

/* Label = Small + bold + tracking (+ caps where set) */
nav .nav-links,.eyebrow,.evidence-row,.stage span,.card>span,.proof span,.not-found .code{font-size:var(--fs-small);font-weight:700;letter-spacing:.12em}

/* Arabic: Readex Pro for Arabic glyphs, brand fonts for Latin; no tracking on Arabic script */
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] h3{font-family:"Space Grotesk","Readex Pro",Arial,sans-serif}
[dir=rtl] nav .nav-links,[dir=rtl] .stage span,[dir=rtl] .card>span{letter-spacing:0}

/* Stage descriptions: all rendered, only the active one visible, so the row
   always reserves the height of the longest description and never jumps.
   On mobile (stacked stages) inactive descriptions collapse instead. */
.stage small{visibility:hidden}
.stage.active small{visibility:visible}
@media(max-width:720px){.stage small{display:none}.stage.active small{display:block}}

/* Service cards mirror the Build / Run / Automate boxes:
   top + inline-end borders only, same padding, same number → title → text rhythm,
   a gap under the boxes and one horizontal line under the whole grid. */
.service-grid{border:0;row-gap:40px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.card{min-height:128px;padding:17px 24px 32px 0;border:0;border-top:1px solid var(--line);border-inline-end:1px solid var(--line);display:grid;align-content:start;gap:7px}
.card:nth-child(2n){padding-inline-start:24px}
.card>span{line-height:1.5;color:#98a2b3}
.card h3{margin:0}
.card p{max-width:420px;line-height:1.45}
[dir=rtl] .stage strong,[dir=rtl] .card h3{font-family:Inter,"Readex Pro",Arial,sans-serif;letter-spacing:0}
@media(max-width:720px){
  .service-grid{row-gap:0;padding-bottom:0}
  .card,.card:nth-child(2n){min-height:auto;padding:15px 0 20px;border-inline-end:0}
}

/* In-page anchors stop below the sticky header (76px nav + 1px border; 66px on mobile),
   so the logo (#top) returns to the true top and nav links don't hide section tops. */
section[id]{scroll-margin-top:77px}
@media(max-width:720px){section[id]{scroll-margin-top:67px}}

