/* SES WORX */
@font-face{font-family: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/league-spartan-latin-ext-400-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/league-spartan-latin-400-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/league-spartan-latin-ext-500-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/league-spartan-latin-500-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 600; src:url(fonts/league-spartan-latin-ext-600-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 600; src:url(fonts/league-spartan-latin-600-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 700; src:url(fonts/league-spartan-latin-ext-700-normal.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: 'League Spartan'; font-style: normal; font-display: swap; font-weight: 700; src:url(fonts/league-spartan-latin-700-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/figtree-latin-ext-400-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/figtree-latin-400-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/figtree-latin-ext-500-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/figtree-latin-500-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 600; src:url(fonts/figtree-latin-ext-600-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 600; src:url(fonts/figtree-latin-600-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 700; src:url(fonts/figtree-latin-ext-700-normal.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: 'Figtree'; font-style: normal; font-display: swap; font-weight: 700; src:url(fonts/figtree-latin-700-normal.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: 'IBM Plex Mono'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/ibm-plex-mono-latin-ext-400-normal.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: 'IBM Plex Mono'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/ibm-plex-mono-latin-400-normal.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: 'IBM Plex Mono'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/ibm-plex-mono-latin-ext-500-normal.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: 'IBM Plex Mono'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/ibm-plex-mono-latin-500-normal.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: 'IBM Plex Sans Arabic'; font-style: normal; font-display: swap; font-weight: 400; src:url(fonts/ibm-plex-sans-arabic-arabic-400-normal.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,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1;}
@font-face{font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-display: swap; font-weight: 500; src:url(fonts/ibm-plex-sans-arabic-arabic-500-normal.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,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1;}
@font-face{font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-display: swap; font-weight: 600; src:url(fonts/ibm-plex-sans-arabic-arabic-600-normal.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,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1;}
@font-face{font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-display: swap; font-weight: 700; src:url(fonts/ibm-plex-sans-arabic-arabic-700-normal.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,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1;}
/* Layout: two worlds. Advisory lives on the light page, Solutions on dark ink.
   Every illustration is built from the three logo dots (coral, grey, blue). */
:root{
  color-scheme:light;
  --ink:#101319; --paper:#F6F7F9; --card:#FFFFFF; --muted:#566070; --line:#DADEE5; --mist:#E6E9EE;
  --coral:#FF5A5F; --grey:#A3A6AD; --blue:#0B3FA8; --blue-hi:#5B8CFF;
  --on-dark:#F3F4F6; --on-dark-muted:#A9B0BD; --dark-line:#2B303A; --dark-card:#181C24;
  --f-display:"League Spartan","Century Gothic",Futura,"Trebuchet MS",sans-serif;
  --f-body:"Figtree","Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --gutter:clamp(16px,4vw,48px);
  --band:clamp(64px,9vw,128px);
}
:root[lang="ar"]{
  --f-display:"IBM Plex Sans Arabic","Segoe UI",Tahoma,sans-serif;
  --f-body:"IBM Plex Sans Arabic","Segoe UI",Tahoma,sans-serif;
  --f-mono:"IBM Plex Sans Arabic","Segoe UI",Tahoma,sans-serif;
}
:root[lang="ar"] *{letter-spacing:0 !important}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6}
a{color:inherit}
:focus-visible{outline:3px solid var(--blue-hi);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:1220px;margin-inline:auto;padding-inline:var(--gutter)}
.mono{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.05;text-wrap:balance;margin:0}
:root[lang="ar"] h1,:root[lang="ar"] h2,:root[lang="ar"] h3{line-height:1.35}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.ltr{direction:ltr;unicode-bidi:isolate}
svg text{font-family:"League Spartan","Century Gothic",Futura,sans-serif}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:999px;font-family:var(--f-body);font-weight:600;font-size:1rem;text-decoration:none;border:1.5px solid transparent;cursor:pointer;line-height:1.2}
.btn.coral{background:var(--coral);color:var(--ink)}
.btn.coral:hover{background:#fff}
.btn.ink{background:var(--ink);color:#fff}
.btn.ink:hover{background:var(--blue)}
.btn.outline{border-color:var(--ink);color:var(--ink);background:transparent}
.btn.outline:hover{background:var(--mist)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--ink);color:var(--on-dark);border-bottom:1px solid var(--dark-line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;padding-block:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;text-decoration:none;color:inherit;direction:ltr}
.brand svg{height:28px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,32px)}
.nav a{font-size:.95rem;font-weight:500;text-decoration:none;color:var(--on-dark-muted);white-space:nowrap}
.nav a:hover{color:#fff}
.nav a.pill{color:var(--ink);background:var(--coral);padding:7px 16px;border-radius:999px}
.nav a.pill:hover{background:#fff}
.langs{display:flex;gap:2px;border:1px solid var(--dark-line);border-radius:999px;padding:3px;direction:ltr}
.langs button{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.72rem;letter-spacing:.06em;min-width:34px;height:30px;border-radius:999px;border:0;background:transparent;color:var(--on-dark-muted);cursor:pointer;padding:0 6px}
.langs button:hover{color:#fff}
.langs button[aria-pressed="true"]{background:var(--on-dark);color:var(--ink)}
.tools{display:flex;align-items:center;gap:10px}
.m-cta{display:none;font-size:.88rem;font-weight:600;text-decoration:none;color:var(--ink);background:var(--coral);padding:7px 14px;border-radius:999px;white-space:nowrap}
@media(max-width:900px){.nav{display:none}.m-cta{display:inline-block}}
@media(max-width:400px){.top .wrap{gap:8px}.brand svg{height:19px}.tools{gap:6px}.langs{padding:2px}.langs button{min-width:28px;height:30px;padding:0 4px}.m-cta{padding:6px 10px;font-size:.78rem}}
@media(max-width:420px) and (min-width:401px){.brand svg{height:22px}.langs button{min-width:30px}}

/* hero */
.hero{background:var(--ink);color:var(--on-dark);padding-block:clamp(48px,7vw,96px) clamp(40px,5vw,72px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px clamp(24px,5vw,72px);align-items:center}
.eyebrow{display:flex;align-items:center;gap:14px;color:var(--on-dark-muted)}
.dots{display:inline-flex;gap:6px;direction:ltr}
.dots i{width:12px;height:12px;border-radius:50%;display:block}
.dots i:nth-child(1){background:var(--coral)}.dots i:nth-child(2){background:var(--grey)}.dots i:nth-child(3){background:var(--blue-hi)}
.hero h1{font-size:clamp(2.8rem,7.4vw,6.6rem);letter-spacing:-.02em;margin-top:22px;color:#fff;max-width:11ch}
.lead{color:var(--on-dark-muted);font-size:clamp(1.06rem,1.5vw,1.28rem);max-width:50ch;margin-top:24px}
.hero-art{max-width:460px;width:100%;justify-self:center}
.hero-art svg{display:block;width:100%;height:auto;overflow:visible}
.orbit{transform-origin:240px 240px;animation:spin 40s linear infinite}
.orbit.r{animation-duration:62s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:clamp(36px,5vw,56px)}
.pillar{display:flex;flex-direction:column;gap:10px;padding:clamp(20px,2.4vw,30px);border-radius:24px;text-decoration:none;min-width:0;transition:transform .2s ease}
.pillar:hover{transform:translateY(-3px)}
.pillar .row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pillar h2{font-size:clamp(1.6rem,2.8vw,2.3rem)}
.pillar p{font-size:1rem}
.pillar .arr{font-size:1.4rem;line-height:1;direction:ltr}
:root[dir="rtl"] .pillar .arr{transform:scaleX(-1)}
.pillar.a{background:var(--paper);color:var(--ink)}
.pillar.a p{color:var(--muted)}
.pillar.s{background:var(--blue);color:#fff}
.pillar.s p{color:rgba(255,255,255,.82)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px clamp(20px,4vw,56px);margin-top:clamp(32px,4vw,48px);padding-top:26px;border-top:1px solid var(--dark-line)}
.stats div{min-width:0}
.stats b{display:block;font-family:"League Spartan","Century Gothic",sans-serif;font-weight:600;font-size:clamp(2.2rem,4.6vw,3.8rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.stats div:nth-child(1) b{color:var(--coral)}
.stats div:nth-child(3) b{color:var(--blue-hi)}
.stats span{display:block;color:var(--on-dark-muted);margin-top:8px;font-size:.98rem}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-art{max-width:260px;order:-1;justify-self:start}}
@media(max-width:600px){.pillars{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){grid-column:1 / -1}}

/* logo marquee */
.mq{background:var(--card);border-bottom:1px solid var(--line);padding-block:24px 28px;direction:ltr;overflow:hidden}
.mq-label{text-align:center;color:var(--muted);margin-bottom:16px}
.mq-view{overflow:hidden}
.mq-track{display:flex;width:max-content;animation:mq 110s linear infinite}
.mq-track.rev{animation-direction:reverse}
.mq-track:hover{animation-play-state:paused}
.mq-set{display:flex;align-items:center;gap:28px;padding-inline-end:28px}
.mq-set img{display:block;max-width:none}
@keyframes mq{to{transform:translateX(-50%)}}

/* shared section pieces */
.band{padding-block:var(--band);scroll-margin-top:60px}
.kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;border-radius:999px;padding:7px 14px 7px 10px}
.kicker::before{content:"";width:12px;height:12px;border-radius:50%}
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px clamp(32px,6vw,96px);align-items:center}
.intro h2{font-size:clamp(2.1rem,4.6vw,3.8rem);letter-spacing:-.01em;margin-top:22px}
.intro p{font-size:clamp(1.05rem,1.4vw,1.2rem);margin-top:20px;max-width:48ch}
.art{width:100%;max-width:520px;justify-self:center}
.art svg{display:block;width:100%;height:auto;overflow:visible}
@media(max-width:860px){.intro{grid-template-columns:1fr}.art{max-width:380px;justify-self:start}}
.sub{font-family:var(--f-mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:18px}

/* ADVISORY (light) */
.adv .kicker{background:var(--card);border:1px solid var(--line);color:var(--ink)}
.adv .kicker::before{background:var(--coral)}
.adv .intro p{color:var(--muted)}
.aud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:clamp(48px,6vw,80px)}
.acard{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0}
.acard i{width:40px;height:40px;border-radius:50%;display:block;margin-bottom:6px}
.acard:nth-child(1) i{background:var(--coral)}
.acard:nth-child(2) i{background:var(--grey)}
.acard:nth-child(3) i{background:var(--blue)}
.acard:nth-child(4) i{background:var(--ink)}
.acard h3{font-size:1.32rem;line-height:1.15}
.acard p{color:var(--muted);font-size:.96rem}
@media(max-width:1000px){.aud{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.acard{padding:18px}.acard i{width:28px;height:28px}.acard h3{font-size:1.12rem}.acard p{font-size:.9rem}}@media(max-width:360px){.aud{grid-template-columns:1fr}}
.talks{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:16px 32px;align-items:start;border-top:1px solid var(--line);padding-top:28px}
.talks .sub{color:var(--muted);margin:0;padding-top:8px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags li{border-radius:999px;padding:8px 16px;font-weight:500;font-size:.96rem}
.talks .tags li{background:var(--card);border:1px solid var(--line)}
@media(max-width:760px){.talks{grid-template-columns:1fr}}

/* SOLUTIONS (dark) */
.sol{background:var(--ink);color:var(--on-dark)}
.sol .kicker{background:var(--dark-card);border:1px solid var(--dark-line);color:var(--on-dark)}
.sol .kicker::before{background:var(--blue-hi)}
.sol .intro h2{color:#fff}
.sol .intro p{color:var(--on-dark-muted)}
.radar{position:relative;width:100%;max-width:460px;aspect-ratio:1;justify-self:center;direction:ltr;overflow:hidden;border-radius:50%}
.radar svg{position:absolute;inset:0;width:100%;height:100%}
.sweep{position:absolute;inset:4.5%;border-radius:50%;background:conic-gradient(from 0deg,rgba(91,140,255,.42),rgba(91,140,255,0) 70deg,rgba(91,140,255,0) 360deg);animation:spin 6s linear infinite}
.blip{position:absolute;width:2.4%;aspect-ratio:1;border-radius:50%;background:#59606D;transform:translate(-50%,-50%)}
.blip.hit{width:4%;background:var(--coral)}
.blip.hit.b{background:var(--blue-hi)}
.blip.hit::after{content:"";position:absolute;inset:-60%;border-radius:50%;border:2px solid currentColor;color:inherit;opacity:0;animation:ping 3s ease-out infinite}
.blip.hit{color:var(--coral)}
.blip.hit.b{color:var(--blue-hi)}
.blip.hit.d2::after{animation-delay:1s}.blip.hit.d3::after{animation-delay:2s}
@keyframes ping{0%{transform:scale(.4);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media(max-width:860px){.radar{max-width:340px;justify-self:start}}

.funcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(48px,6vw,80px)}
.func{position:relative;overflow:hidden;border-radius:24px;padding:clamp(22px,2.6vw,32px);min-width:0;display:flex;flex-direction:column;gap:10px}
.func::before{content:"";position:absolute;width:150px;aspect-ratio:1;border-radius:50%;inset-block-start:-60px;inset-inline-end:-50px;background:rgba(255,255,255,.2)}
.func h3{position:relative;font-size:clamp(1.5rem,2.4vw,2rem);margin-top:52px}
.func p{position:relative;font-size:1rem;max-width:30ch}
.func.c1{background:var(--coral);color:var(--ink)}
.func.c2{background:var(--mist);color:var(--ink)}
.func.c2::before{background:rgba(163,166,173,.4)}
.func.c3{background:var(--blue);color:#fff}
.func.c3::before{background:rgba(255,255,255,.14)}
@media(max-width:860px){.funcs{grid-template-columns:1fr}}

.sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.side{background:var(--dark-card);border:1px solid var(--dark-line);border-radius:24px;padding:clamp(22px,2.6vw,34px);min-width:0}
.side .sub{color:var(--on-dark-muted);display:flex;align-items:center;gap:10px}
.side .sub::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--coral)}
.side:nth-child(2) .sub::before{background:var(--blue-hi)}
.side ol{counter-reset:n}
.side li{counter-increment:n;display:flex;gap:16px;align-items:baseline;padding-block:14px;border-top:1px solid var(--dark-line);font-family:var(--f-display);font-weight:500;font-size:1.18rem;line-height:1.25;color:#fff}
.side li::before{content:"0" counter(n);font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.78rem;color:var(--on-dark-muted);flex:none}
@media(max-width:860px){.sides{grid-template-columns:1fr}}

.rule{margin-top:16px;border:1.5px solid var(--coral);border-radius:24px;padding:clamp(22px,2.6vw,34px);display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:12px 40px;align-items:baseline}
.rule .sub{color:var(--coral);margin:0}
.rule p{font-family:var(--f-display);font-weight:500;font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.35;color:#fff}
:root[lang="ar"] .rule p{line-height:1.7}
@media(max-width:760px){.rule{grid-template-columns:1fr}}

/* corridor plot: cities at their true longitude between 80°W and 60°E */
.corr-wrap{margin-top:clamp(56px,7vw,96px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--dark-line)}
.corr-head{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:end;justify-content:space-between}
.corr-head h3{font-size:clamp(1.6rem,3vw,2.5rem);color:#fff;max-width:20ch}
.legend{display:flex;gap:22px;color:var(--on-dark-muted)}
.legend>span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:11px;height:11px;border-radius:50%;border:2px solid var(--on-dark);display:block}
.legend i.o{background:var(--on-dark)}
.corr{direction:ltr;margin-top:24px}
.corr-plot{position:relative;aspect-ratio:1000/300;max-width:100%}
.corr-plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.node{position:absolute;top:97.33%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--on-dark);background:var(--ink)}
.node.office{background:var(--on-dark);box-shadow:0 0 0 5px rgba(243,244,246,.14)}
.corr-labels{position:relative;height:146px}
.lab{position:absolute;top:16px;transform:translateX(-50%);white-space:nowrap;text-align:center;line-height:1.25}
.lab b{display:block;font-family:var(--f-body);font-weight:600;font-size:.86rem;color:var(--on-dark)}
.lab span{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.7rem;letter-spacing:.08em;color:var(--on-dark-muted)}
.lab.l2{top:58px}
.lab.l2::before,.lab.l3::before{content:"";position:absolute;left:50%;bottom:100%;margin-bottom:3px;height:50px;width:1px;background:var(--dark-line)}
.lab.l3{top:100px}
.lab.l3::before{height:92px}
@media(max-width:640px){.lab span{display:none}.corr-labels{height:108px}.lab.l2{top:46px}.lab.l2::before{height:38px}.lab.l3{top:76px}.lab.l3::before{height:68px}.lab b{font-size:.74rem}.node{width:11px;height:11px}}
.routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px}
.route{display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:var(--dark-card);border:1px solid var(--dark-line);border-radius:20px;padding:22px;min-width:0}
.route .tag{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.74rem;letter-spacing:.1em;color:var(--on-dark-muted)}
.route h4{margin:0;font-family:var(--f-display);font-weight:600;font-size:1.25rem;line-height:1.2;color:#fff}
.focus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;margin-top:28px}
.focus .sub{color:var(--on-dark-muted);margin-bottom:12px}
.sol .tags li{border:1px solid var(--dark-line);color:var(--on-dark)}
@media(max-width:760px){.routes,.focus{grid-template-columns:1fr}}

/* references + leadership */
.refs-band{background:var(--card)}
.refs-head{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:end;justify-content:space-between;margin-bottom:clamp(28px,4vw,48px)}
.refs-head h2{font-size:clamp(2rem,4vw,3.2rem);max-width:16ch}
.refs-head .sub{color:var(--muted)}
.refs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.ref{border:1px solid var(--line);border-radius:18px;display:grid;place-items:center;padding:10px;background:#fff;min-width:0}
.ref img{display:block;width:100%;max-width:220px;height:auto;aspect-ratio:12/5}
.ref[hidden]{display:none}
.refs-more{display:flex;justify-content:center;margin-top:24px}
@media(max-width:480px){.refs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:clamp(48px,6vw,80px)}
.person{display:flex;align-items:center;gap:20px;background:var(--paper);border-radius:22px;padding:22px 26px;min-width:0}
.person .av{width:68px;height:68px;border-radius:50%;flex:none;display:grid;place-items:center;font-family:"League Spartan",sans-serif;font-weight:600;font-size:1.4rem;letter-spacing:.04em;padding-top:3px}
.person:nth-child(1) .av{background:var(--coral);color:var(--ink)}
.person:nth-child(2) .av{background:var(--blue);color:#fff}
.person h3{font-family:"League Spartan","Century Gothic",sans-serif;font-size:1.4rem;line-height:1.1;margin-bottom:4px}
.person .mono{color:var(--muted)}
@media(max-width:760px){.people{grid-template-columns:1fr}}

/* contact */
.contact{background:var(--coral);color:var(--ink)}
.contact h2{font-size:clamp(2.1rem,4.4vw,3.6rem);max-width:14ch;margin-top:10px}
.contact .lede{font-weight:500;margin-top:16px;max-width:44ch}
.cgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start;margin-top:clamp(32px,4vw,48px)}
@media(max-width:900px){.cgrid{grid-template-columns:1fr}}
.brief{background:var(--card);border-radius:28px;padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:22px;min-width:0}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend,.flabel{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:12px;display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips label{display:inline-block;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:500;font-size:.96rem;cursor:pointer;background:#fff}
.chips label:hover{border-color:var(--ink)}
.chips input:checked+label{background:var(--ink);border-color:var(--ink);color:#fff}
.chips input:focus-visible+label{outline:3px solid var(--blue-hi);outline-offset:3px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.fields{grid-template-columns:1fr}}
.fld{display:flex;flex-direction:column;min-width:0}
.brief input{width:100%;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper)}
.brief input:focus{outline:none;border-color:var(--ink)}
.fnote{font-size:.94rem;color:var(--muted)}
textarea{width:100%;min-height:150px;border:1.5px solid var(--line);border-radius:16px;padding:16px;font:inherit;font-size:1rem;line-height:1.5;color:var(--ink);background:var(--paper);resize:vertical}
textarea:focus{outline:none;border-color:var(--ink)}
.brief .row{display:flex;flex-wrap:wrap;gap:10px}
.cinfo{display:flex;flex-direction:column}
.cinfo>div{padding-block:20px;border-top:1.5px solid rgba(16,19,25,.3)}
.cinfo>div:last-child{border-bottom:1.5px solid rgba(16,19,25,.3)}
.cinfo .mono{display:block;margin-bottom:8px}
.big{font-family:"League Spartan","Century Gothic",sans-serif;font-weight:600;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;overflow-wrap:anywhere;user-select:all}
.inline{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.mini{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--ink);background:transparent;color:var(--ink);padding:6px 13px;border-radius:999px;cursor:pointer}
.mini:hover{background:var(--ink);color:#fff}
.mini.wa{text-decoration:none}
.office{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center}
.office+.office{margin-top:18px}
.office h3{font-size:1.3rem}
.office address{font-style:normal;font-size:.95rem;grid-column:1;direction:ltr;text-align:start}
.office .clock{grid-column:2;grid-row:1 / span 2;text-align:end}
.office .clock b{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:500;font-size:1.45rem;font-variant-numeric:tabular-nums}
.office .clock span{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.7rem;letter-spacing:.1em}

/* footer */
footer{background:var(--ink);color:var(--on-dark-muted);padding-block:44px}
footer .wrap{display:flex;flex-direction:column;gap:24px}
.f-top,.f-bot{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between}
.f-bot{border-top:1px solid var(--dark-line);padding-top:22px}
footer .brand{color:var(--on-dark)}
footer .brand svg{height:26px}
footer nav{display:flex;flex-wrap:wrap;gap:8px 24px}
footer nav a{text-decoration:none;font-size:.93rem}
footer nav a:hover{color:#fff}
footer ul{display:flex;flex-wrap:wrap;gap:6px 24px}
footer small{font-size:.86rem}
footer .social{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:.93rem;color:var(--on-dark-muted)}
footer .social:hover{color:#fff}

/* positions (kept out of inline style attributes so a strict CSP can be used) */
[data-l="9.8"]{left:9.8%}[data-l="15"]{left:15%}[data-l="22"]{left:22%}[data-l="31"]{left:31%}[data-l="33"]{left:33%}[data-l="40"]{left:40%}[data-l="52"]{left:52%}[data-l="56.2"]{left:56.2%}[data-l="61"]{left:61%}[data-l="63"]{left:63%}[data-l="64.7"]{left:64.7%}[data-l="68"]{left:68%}[data-l="72"]{left:72%}[data-l="73"]{left:73%}[data-l="74"]{left:74%}[data-l="74.5"]{left:74.5%}[data-l="80"]{left:80%}[data-l="86"]{left:86%}[data-l="91"]{left:91%}
[data-t="22"]{top:22%}[data-t="28"]{top:28%}[data-t="35"]{top:35%}[data-t="38"]{top:38%}[data-t="42"]{top:42%}[data-t="44"]{top:44%}[data-t="58"]{top:58%}[data-t="62"]{top:62%}[data-t="66"]{top:66%}[data-t="70"]{top:70%}[data-t="80"]{top:80%}[data-t="84"]{top:84%}
.blend{mix-blend-mode:screen}.mq-gap{margin-top:22px}.noev{pointer-events:none}.muted-d{color:var(--on-dark-muted)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .mq-track,.orbit,.sweep,.blip.hit::after,.float{animation:none}
  .mq-view{overflow-x:auto}
  .pillar{transition:none}
}
.float{animation:float 7s ease-in-out infinite}
.float.f2{animation-delay:-2.3s}.float.f3{animation-delay:-4.6s}
@keyframes float{50%{transform:translateY(-8px)}}
