/* TomorrowX site v12.01 — film-first design system.
   New pages use the tx- classes. Existing content pages load site-v11-51.css first,
   then this file, which re-themes their tokens to the same monochrome system. */

@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;src:url("fonts/poppins-300.woff") format("woff")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/poppins-400.woff") format("woff")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/poppins-500.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/inter-400.woff") format("woff")}
@font-face{font-family:"Inter";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/inter-400i.woff") format("woff")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/inter-500.woff") format("woff")}

:root{
  --tx-ink:#111111;--tx-ink-2:#545454;--tx-muted:#6B6B6B;
  --tx-paper:#FFFFFF;--tx-mist:#F4F4F2;--tx-line:#DEDED9;--tx-line-2:#C9C9C4;
  --tx-night:#1C1C1C;--tx-night-2:#2A2A2A;--tx-night-line:#3A3A3A;--tx-on-night:#FFFFFF;--tx-on-night-2:#D6D6D6;--tx-on-night-3:#BDBDBD;
  --tx-focus:#0B6FB8;
  --tx-display:"Poppins","Inter",system-ui,sans-serif;
  --tx-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --tx-max:1200px;--tx-pad:clamp(20px,4vw,40px);--tx-radius:16px;
  /* legacy tokens re-themed for existing content pages */
  --ink:#111111 !important;--ink-soft:#545454 !important;--paper:#FFFFFF !important;--paper-2:#F4F4F2 !important;--paper-3:#E4E4E0 !important;
  --night:#1C1C1C !important;--night-2:#2A2A2A !important;--white:#FFFFFF !important;--line:#C9C9C4 !important;--line-dark:#5A5A5A !important;
  --accent:#E4E4E0 !important;--accent-deep:#111111 !important;--focus:#0B6FB8 !important;
  --display:"Poppins","Inter",system-ui,sans-serif !important;--body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif !important;--sans:"Inter",system-ui,sans-serif !important;
}

/* ---------- base ---------- */
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--tx-body);color:var(--tx-ink);background:var(--tx-paper);line-height:1.6;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto}
.tx-page h1,.tx-page h2,.tx-page h3{font-family:var(--tx-display);font-weight:400;margin:0;letter-spacing:-.005em}
.tx-page p{margin:0}
.tx-page a{color:var(--tx-ink)}
.tx-page a:hover{color:var(--tx-ink-2)}
:focus-visible{outline:3px solid var(--tx-focus);outline-offset:3px}
.tx-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tx-skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--tx-ink);color:#fff;padding:12px 18px;border-radius:8px;text-decoration:none;font-family:var(--tx-body)}
.tx-skip:focus{top:12px;color:#fff}
.tx-wrap{max-width:var(--tx-max);margin:0 auto;padding:0 var(--tx-pad);box-sizing:border-box}
.tx-tm{font-size:.6em;vertical-align:super;line-height:0}

/* ---------- header ---------- */
.tx-header{position:sticky;top:0;z-index:50;background:var(--tx-paper);border-bottom:1px solid #E4E4E0;font-family:var(--tx-body)}
.tx-header--dark{background:var(--tx-night);border-bottom-color:#333}
.tx-header .tx-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.tx-brand{display:flex;align-items:center}
.tx-brand img{height:28px;width:auto;display:block}
.tx-nav{display:flex;align-items:center;gap:26px;font-size:15px}
.tx-nav a{text-decoration:none;color:var(--tx-ink);padding:6px 0;border-bottom:2px solid transparent}
.tx-nav a:hover{border-bottom-color:currentColor;color:var(--tx-ink)}
.tx-nav a[aria-current="page"]{font-weight:500;border-bottom-color:currentColor}
.tx-header--dark .tx-nav a{color:#fff}
.tx-nav .tx-nav-cta{background:var(--tx-ink);color:#fff;padding:11px 20px;border-radius:999px;font-weight:500;border:0}
.tx-nav .tx-nav-cta:hover{background:#333;color:#fff}
.tx-header--dark .tx-nav .tx-nav-cta{background:#fff;color:var(--tx-ink)}
.tx-menu-button{display:none;font:inherit;font-size:15px;background:none;border:1px solid var(--tx-line-2);border-radius:999px;padding:10px 18px;color:var(--tx-ink);cursor:pointer}
.tx-header--dark .tx-menu-button{color:#fff;border-color:#5A5A5A}
.tx-mobile-menu{display:flex;flex-direction:column;background:var(--tx-paper);border-bottom:1px solid var(--tx-line);padding:8px var(--tx-pad) 20px}
.tx-mobile-menu[hidden]{display:none}
.tx-mobile-menu a{padding:14px 0;border-bottom:1px solid #EDEDEA;text-decoration:none;color:var(--tx-ink);font-size:17px}
@media (max-width:1080px){.tx-nav{display:none}.tx-menu-button{display:inline-block}}

/* ---------- type and buttons ---------- */
.tx-label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--tx-muted);font-family:var(--tx-body);margin:0}
.tx-dark .tx-label,.tx-on-dark .tx-label{color:var(--tx-on-night-3)}
.tx-h1{font-size:clamp(40px,6vw,64px);line-height:1.08;font-weight:300}
.tx-h2{font-size:clamp(30px,3.6vw,40px);line-height:1.2}
.tx-h3{font-size:clamp(22px,2.4vw,30px);line-height:1.25}
.tx-lead{font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:var(--tx-ink-2);max-width:760px}
.tx-body{font-size:17px;line-height:1.7;color:var(--tx-ink-2)}
.tx-small{font-size:14px;line-height:1.6;color:var(--tx-ink-2)}
.tx-fine{font-size:13px;line-height:1.6;color:var(--tx-muted)}
.tx-light{font-weight:300}
.tx-actions{display:flex;flex-wrap:wrap;gap:14px}
.tx-btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;padding:15px 26px;border-radius:999px;font-weight:500;font-size:16px;line-height:1.2;border:1px solid transparent;font-family:var(--tx-body);cursor:pointer}
.tx-btn--dark{background:var(--tx-ink);color:#fff}
.tx-page .tx-btn--dark,.tx-page .tx-btn--dark:hover{color:#fff}
.tx-btn--dark:hover{background:#333}
.tx-btn--light{background:#fff;color:var(--tx-ink)}
.tx-page .tx-btn--light,.tx-page .tx-btn--light:hover{color:var(--tx-ink)}
.tx-btn--light:hover{background:#EDEDEA}
.tx-btn--line{border-color:var(--tx-ink);color:var(--tx-ink);font-weight:400}
.tx-btn--line-light{border-color:#6B6B6B;color:#fff;font-weight:400}
.tx-page .tx-btn--line-light,.tx-page .tx-btn--line-light:hover{color:#fff}
.tx-btn svg{flex:0 0 auto}
.tx-link{font-weight:500;font-size:16px}
.tx-dark .tx-link,.tx-dark a{color:#fff}

/* ---------- sections ---------- */
.tx-section{padding:clamp(64px,8vw,96px) 0}
.tx-section--tight{padding:clamp(48px,6vw,72px) 0}
.tx-mist{background:var(--tx-mist)}
.tx-dark{background:var(--tx-night);color:#fff}
.tx-dark .tx-lead,.tx-dark .tx-body{color:var(--tx-on-night-2)}
.tx-dark .tx-small,.tx-dark .tx-fine{color:var(--tx-on-night-3)}
.tx-border-top{border-top:1px solid #E4E4E0}
.tx-stack{display:flex;flex-direction:column;gap:20px}
.tx-stack--lg{gap:40px}
.tx-stack--sm{gap:12px}
.tx-head{display:flex;flex-direction:column;gap:14px;max-width:780px}
.tx-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px}
.tx-split{display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,56px);align-items:center}
.tx-split--top{align-items:flex-start}
.tx-split>*{flex:1 1 460px;min-width:0}
.tx-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.tx-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}
.tx-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.tx-grid--4{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.tx-img{width:100%;height:auto;display:block;border-radius:var(--tx-radius);border:1px solid var(--tx-line)}
.tx-dark .tx-img{border-color:#333}
.tx-breadcrumb{font-size:14px;color:var(--tx-ink-2)}
.tx-breadcrumb a{color:var(--tx-ink-2)}

/* ---------- home hero and film ---------- */
.tx-hero{background:var(--tx-night);color:#fff;padding:clamp(56px,7vw,80px) 0 clamp(40px,5vw,64px)}
.tx-hero .tx-h1{max-width:940px}
.tx-hero .tx-lead{color:var(--tx-on-night-2)}
.tx-film{position:relative;margin-top:clamp(40px,5vw,56px);border-radius:var(--tx-radius);overflow:hidden;background:#2A2A2A}
.tx-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#2A2A2A}
.tx-film-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 0 0;color:var(--tx-on-night-3);font-size:13px}

/* four moments */
.tx-moment{margin:0;display:flex;flex-direction:column;gap:14px}
.tx-moment img{width:100%;height:auto;display:block;border-radius:12px;border:1px solid #E4E4E0}
.tx-moment figcaption{display:flex;flex-direction:column;gap:6px}
.tx-moment span:last-child{font-size:17px;line-height:1.5}

/* doors */
.tx-door{background:#fff;border:1px solid var(--tx-line);border-radius:var(--tx-radius);overflow:hidden;display:flex;flex-direction:column}
.tx-door>img{width:100%;height:auto;display:block;border-bottom:1px solid #E4E4E0}
.tx-door-body{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:20px;flex-grow:1}
.tx-door-list{list-style:none;margin:0;padding:0;border-top:1px solid #E4E4E0}
.tx-door-list a{display:flex;flex-direction:column;gap:4px;padding:18px 0;border-bottom:1px solid #E4E4E0;text-decoration:none}
.tx-door-list strong{font-size:18px;font-weight:500;color:var(--tx-ink)}
.tx-door-list span{font-size:15px;line-height:1.5;color:var(--tx-ink-2)}
.tx-door-list a:hover strong{text-decoration:underline}
.tx-door .tx-btn{margin-top:auto;align-self:flex-start}

/* tiles and cards */
.tx-tile{display:flex;flex-direction:column;gap:10px;padding:28px;border:1px solid var(--tx-line);border-radius:12px;text-decoration:none;background:#fff;min-height:120px}
.tx-tile .tx-tile-title{font-family:var(--tx-display);font-size:21px;line-height:1.3;color:var(--tx-ink)}
.tx-tile .tx-tile-text{font-size:15px;line-height:1.5;color:var(--tx-ink-2)}
a.tx-tile:hover{border-color:var(--tx-ink)}
.tx-tile[hidden]{display:none}
.tx-rule{border-top:1px solid var(--tx-ink);padding-top:20px;display:flex;flex-direction:column;gap:10px}
.tx-rule h3{font-size:20px;line-height:1.3}
.tx-rule p{font-size:16px;line-height:1.6;color:var(--tx-ink-2)}
.tx-dark .tx-rule{border-top-color:#5A5A5A}
.tx-dark .tx-rule p{color:var(--tx-on-night-2)}
.tx-card{background:#fff;border:1px solid var(--tx-line);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:12px}
.tx-card h3{font-size:21px;line-height:1.3}
.tx-card p{font-size:15px;line-height:1.6;color:var(--tx-ink-2)}
.tx-card .tx-card-grow{flex-grow:1}
.tx-panel{border:1px solid var(--tx-line);border-radius:var(--tx-radius);padding:clamp(28px,3.5vw,40px);display:flex;flex-direction:column;gap:16px}
.tx-panel--dark{background:var(--tx-night);border-color:var(--tx-night);color:#fff}
.tx-panel--dark .tx-body{color:var(--tx-on-night-2)}
.tx-panel--dark .tx-label{color:var(--tx-on-night-3)}
.tx-list{list-style:none;margin:0;padding:0;border-top:1px solid #D6D6D1}
.tx-list li{padding:16px 0;border-bottom:1px solid #D6D6D1;font-size:16px;line-height:1.55}
.tx-list strong{font-weight:500}
.tx-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.tx-chips li{font-size:15px;padding:10px 18px;border:1px solid var(--tx-line-2);border-radius:999px}
.tx-names{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:32px;border-top:1px solid #E4E4E0}
.tx-names li{font-family:var(--tx-display);font-size:18px;padding:18px 0;border-bottom:1px solid #E4E4E0}

/* tables */
.tx-table-wrap{overflow-x:auto}
.tx-table{width:100%;min-width:680px;border-collapse:collapse;border-top:1px solid var(--tx-ink)}
.tx-table th,.tx-table td{text-align:left;padding:18px 16px;border-bottom:1px solid #E4E4E0;vertical-align:top;font-size:16px}
.tx-table thead th{font-size:13px;font-weight:500;color:var(--tx-muted);padding-top:14px;padding-bottom:14px}
.tx-table tbody th{font-family:var(--tx-display);font-weight:400;font-size:18px;padding-left:0}
.tx-table td{color:var(--tx-ink-2)}
.tx-table .tx-strong{color:var(--tx-ink);font-weight:500}

/* flow diagram (OpenShell) */
.tx-flow{background:var(--tx-mist);border-radius:var(--tx-radius);padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:20px}
.tx-flow-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}
.tx-node{border:1px solid var(--tx-ink);border-radius:12px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:8px;flex:1 1 200px;box-sizing:border-box}
.tx-node strong{font-family:var(--tx-display);font-weight:400;font-size:18px}
.tx-node span{font-size:14px;color:var(--tx-ink-2);line-height:1.6}
.tx-node--point{background:var(--tx-ink);color:#fff;border-color:var(--tx-ink);flex:1.4 1 260px}
.tx-node--point span{color:var(--tx-on-night-2)}
.tx-node--wide{max-width:520px;align-self:center;width:100%;flex:none}
.tx-arrow{display:flex;align-items:center;justify-content:center;flex:0 0 40px}
@media (max-width:720px){.tx-arrow{flex-basis:100%;transform:rotate(90deg);height:32px}}

/* steps */
.tx-steps{list-style:none;margin:0;padding:0;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.tx-steps>li{background:#fff;border:1px solid var(--tx-line);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:12px}
.tx-steps h3{font-size:21px;line-height:1.3}
.tx-steps p{font-size:15px;line-height:1.55;color:var(--tx-ink-2);flex-grow:1}
.tx-steps .tx-step-n{font-size:13px;color:var(--tx-muted)}

/* next band */
.tx-next .tx-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px}

/* screenshots */
.tx-shot{margin:0;display:flex;flex-direction:column;gap:12px}
.tx-shot img{width:100%;height:auto;display:block;border-radius:12px;border:1px solid var(--tx-line)}
.tx-shot figcaption{font-size:15px;line-height:1.5;color:var(--tx-ink-2)}

/* partners */
.tx-partner{display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--tx-line);border-radius:var(--tx-radius);background:#fff;text-decoration:none;color:var(--tx-ink)}
.tx-partner:hover{border-color:var(--tx-ink)}
.tx-partner-logo{height:72px;display:flex;align-items:center}
.tx-partner-logo img{max-height:56px;max-width:200px;width:auto;height:auto;display:block}
.tx-partner-logo img.tx-logo-sm{max-height:40px}
.tx-partner h3{font-size:22px}
.tx-partner p{font-size:15px;line-height:1.55;color:var(--tx-ink-2)}
.tx-partner .tx-partner-type{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--tx-muted)}
.tx-partner b{font-weight:500;font-size:15px;margin-top:auto}
.tx-logo-strip{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(24px,4vw,48px)}
.tx-logo-strip a{display:flex;align-items:center;height:56px}
.tx-logo-strip img{max-height:40px;max-width:160px;width:auto;height:auto;display:block}
.tx-inception{display:flex;flex-wrap:wrap;align-items:center;gap:28px;padding:28px;border:1px solid var(--tx-line);border-radius:var(--tx-radius)}
.tx-inception img{width:220px;height:auto}
.tx-inception>div{flex:1 1 320px;display:flex;flex-direction:column;gap:8px}
.tx-models{counter-reset:none}

/* library */
.tx-filters{display:flex;flex-wrap:wrap;gap:10px}
.tx-filter{font:inherit;font-size:15px;padding:10px 18px;border-radius:999px;border:1px solid var(--tx-line-2);background:#fff;color:var(--tx-ink);cursor:pointer}
.tx-filter[aria-pressed="true"]{background:var(--tx-ink);border-color:var(--tx-ink);color:#fff}
.tx-search{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--tx-ink-2)}
.tx-search input{width:340px;max-width:100%;box-sizing:border-box;font:inherit;font-size:16px;padding:14px 18px;border:1px solid var(--tx-line-2);border-radius:999px;color:var(--tx-ink)}
.tx-count{font-size:14px;color:var(--tx-ink-2)}
.tx-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.tx-tags span{font-size:12px;color:var(--tx-ink-2);border:1px solid #E4E4E0;border-radius:999px;padding:3px 10px}
.tx-empty{font-size:16px;color:var(--tx-ink-2)}
.tx-empty[hidden]{display:none}

/* company logos (reused on new pages) */
.tx-logo-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:900px){.tx-logo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tx-logo-wall span{background:var(--tx-night);border-radius:12px;display:flex;align-items:center;justify-content:center;height:96px;padding:18px;overflow:hidden}
.tx-logo-wall img{max-height:42px;max-width:116px;width:auto;height:auto;filter:grayscale(100%) brightness(1.25);opacity:.85}

/* ---------- footer ---------- */
.tx-footer{background:var(--tx-night);color:#fff;padding:64px 0 32px;font-family:var(--tx-body)}
.tx-footer a{color:#fff;text-decoration:none}
.tx-footer a:hover{text-decoration:underline;color:#fff}
.tx-footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}
.tx-footer-intro{flex:1 1 280px;max-width:360px;display:flex;flex-direction:column;gap:16px}
.tx-footer-intro img{height:28px;width:auto;align-self:flex-start}
.tx-footer-intro p{font-size:15px;line-height:1.6;color:var(--tx-on-night-2);margin:0}
.tx-footer-cols{flex:2 1 560px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:28px}
.tx-footer-col{display:flex;flex-direction:column;gap:10px;font-size:15px}
.tx-footer-col h2{font-family:var(--tx-body);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--tx-on-night-3);font-weight:500;margin:0 0 6px}
.tx-footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;border-top:1px solid #333;margin-top:48px;padding-top:24px;font-size:14px;color:var(--tx-on-night-3)}
.tx-footer-bottom nav{display:flex;flex-wrap:wrap;gap:20px}
.tx-footer-bottom a{color:var(--tx-on-night-2)}

/* ---------- re-theme for existing content pages ---------- */
body.tx-legacy{font-family:var(--tx-body)}
body.tx-legacy main h1,body.tx-legacy main h2,body.tx-legacy main h3{font-family:var(--tx-display);font-weight:400;letter-spacing:-.005em}
body.tx-legacy main h1{font-weight:300}
body.tx-legacy main h1 em,body.tx-legacy main h2 em{font-style:normal;color:var(--tx-ink-2)}
body.tx-legacy .site-header,body.tx-legacy .site-footer,body.tx-legacy .mobile-menu{display:none !important}
body.tx-legacy main{display:block}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto !important;transition:none !important;animation:none !important}}
@media print{.tx-header,.tx-footer,.tx-mobile-menu{display:none}}

/* back to top (created by the site script on every page) */
.back-to-top{position:fixed;right:20px;bottom:20px;z-index:40;width:48px;height:48px;border-radius:50%;border:1px solid var(--tx-line-2);background:#fff;color:var(--tx-ink);font-size:18px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s}
.back-to-top.is-visible{opacity:1;pointer-events:auto}
.tx-plain{list-style:none;margin:0;padding:0}
.tx-tile .tx-tags span{font-size:12px}
.tx-page .tx-lead a{color:inherit}
.tx-logo-strip img{height:36px;max-height:none;width:auto;max-width:170px}
.tx-logo-strip img[src$=".svg"]{height:34px}
.tx-page .tx-hero a:not(.tx-btn){color:#fff}
.tx-film-note a{color:#fff}
body.tx-legacy main p a,body.tx-legacy main li a,body.tx-legacy main .text-link,body.tx-legacy main .source-notes a{color:var(--tx-ink);text-decoration-color:#9A9A95}
body.tx-legacy main .eyebrow{color:var(--tx-muted)}

/* Data Mediation definition (data-mediation.html) */
.tx-dm-definition{max-width:none;margin:0;padding:0 0 clamp(48px,6vw,80px);display:flex;flex-direction:column;gap:24px}
.tx-dm-context{margin:0;font-family:var(--tx-body);font-size:clamp(18px,1.8vw,21px);line-height:1.6;color:var(--tx-ink-2);max-width:820px}
.tx-dm-statement{margin:0;font-family:var(--tx-display);font-weight:300;font-size:clamp(26px,3.2vw,38px);line-height:1.3;color:var(--tx-ink);max-width:920px;border-left:0;padding:8px 0}
.tx-dm-figure{margin:24px 0 0;display:flex;flex-direction:column;gap:14px;padding:clamp(20px,3vw,36px);background:var(--tx-mist);border-radius:var(--tx-radius)}
.tx-dm-svg{width:100%;height:auto;display:block}
.tx-dm-figure figcaption{font-size:15px;line-height:1.6;color:var(--tx-ink-2)}
@media (prefers-reduced-motion:no-preference){
  .tx-dm-point path{stroke-dasharray:180;stroke-dashoffset:180;animation:tx-dm-draw 1.6s ease-out .4s forwards}
  @keyframes tx-dm-draw{to{stroke-dashoffset:0}}
}
.tx-hero .tx-label{color:var(--tx-on-night-3)}
.tx-hero-sub{margin:0;font-family:var(--tx-display);font-weight:300;font-size:clamp(22px,2.6vw,32px);line-height:1.3;color:#fff;max-width:900px}

.tx-film-sound{position:absolute;left:clamp(12px,2vw,24px);bottom:clamp(56px,6vw,72px);display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border:0;border-radius:999px;background:#fff;color:var(--tx-ink);font-family:var(--tx-body);font-weight:500;font-size:15px;line-height:1.2;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.25)}
.tx-film-sound[hidden]{display:none}
.tx-film-sound:hover{background:var(--tx-mist)}
.tx-film-sound:focus-visible{outline:2px solid var(--tx-focus);outline-offset:3px}
.company-film-video video{display:block;width:100%;height:100%;aspect-ratio:16/9;background:#000;object-fit:contain}
.tx-hero-pp{display:flex;flex-direction:column;gap:12px;margin-top:clamp(8px,1.5vw,16px);padding-top:clamp(20px,2.5vw,28px);border-top:1px solid var(--tx-night-line);max-width:900px}
.tx-hero-pp .tx-lead{margin:0}
.tx-hero-pp-line{margin:0;font-family:var(--tx-display);font-weight:500;font-size:clamp(28px,3.4vw,44px);line-height:1.15;color:#fff}
@media (max-width:640px){.tx-film-sound{top:12px;bottom:auto;left:12px;padding:9px 14px;font-size:14px}}
.tx-nav-sub{margin-left:6px;font-size:.82em;color:var(--tx-ink-3);font-weight:400}
.tx-nav-sub::before{content:"·";margin-right:6px;color:var(--tx-ink-3)}
.tx-header--dark .tx-nav-sub,.tx-header--dark .tx-nav-sub::before{color:var(--tx-on-night-3)}
.contact-grid.contact-grid--two{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.contact-grid.contact-grid--two>div:last-child{grid-column:auto}
@media (max-width:760px){.contact-grid.contact-grid--two{grid-template-columns:1fr}}
.contact-prompts-note{margin:16px 0 0;color:var(--tx-ink-2)}
.tx-footer-col--door .tx-footer-lead{color:var(--tx-on-night-2);font-size:14px;line-height:1.45}
.tx-footer-col--door .tx-footer-lead:hover{color:#fff}
.tx-footer-sub{display:flex;flex-direction:column;gap:10px;margin:2px 0 0 4px;padding-left:14px;border-left:1px solid #4A4A4A}
/* Definition tables: one shared term column as wide as the longest term; the table stacks when its space is too narrow */
body.tx-legacy .company-purpose-content{container-type:inline-size;min-width:0}
body.tx-legacy .philosophy-definitions{display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:clamp(20px,5cqi,58px)}
body.tx-legacy .philosophy-definitions p,body.tx-legacy .technoanthropology-section .philosophy-definitions p{grid-column:1/-1;grid-template-columns:subgrid!important;row-gap:6px;column-gap:inherit}
body.tx-legacy .philosophy-definitions strong,body.tx-legacy .technoanthropology-section .philosophy-definitions strong{white-space:normal!important;hyphens:manual;overflow-wrap:normal;min-width:0}
@container (max-width:700px){body.tx-legacy .philosophy-definitions{grid-template-columns:minmax(0,1fr)}}
/* Layout safety: text never spills out of its box on any device */
h1,h2,h3,h4,h5,p,li,dt,dd,figcaption,blockquote,label,a,strong,em,span,td,th,button{overflow-wrap:break-word}
img,video{max-width:100%}
@media (min-width:761px){body.tx-legacy .journey-next{grid-template-columns:max-content minmax(0,1fr) auto}}
@media (max-width:760px){body.tx-legacy .filter-bar{flex-wrap:wrap;overflow:visible}}
.tx-row .tx-search{flex:1 1 260px;min-width:0;max-width:100%}
.tx-search input{width:100%;max-width:340px}
/* Customer journey map on the door pages */
.tx-journey{list-style:none;margin:0;padding:0;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));counter-reset:none}
.tx-journey>li{position:relative;background:#fff;border:1px solid var(--tx-line);border-top:3px solid var(--tx-ink);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.tx-journey h3{font-size:19px;line-height:1.3}
.tx-journey p{font-size:15px;line-height:1.55;color:var(--tx-ink-2);flex-grow:1;margin:0}
.tx-journey .tx-step-n{font-size:13px;color:var(--tx-muted)}
.tx-journey-help{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--tx-line)}
.tx-journey-help span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-muted)}
.tx-journey-help a{font-size:15px;line-height:1.4;color:var(--tx-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--tx-line-2)}
.tx-journey-help a:hover{text-decoration-color:var(--tx-ink)}
.tx-engage{margin-top:8px}
.tx-engage .tx-steps .tx-step-n{font-variant-numeric:tabular-nums}
.tx-journey--6{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
@media (min-width:900px){.tx-journey--6{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* ---------- v12.17: the list each buyer already has ---------- */
.tx-clear{border-top:2px solid var(--tx-ink)}
.tx-clear-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,3vw,40px);padding:12px 0;border-bottom:1px solid var(--tx-line-2);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#6A6A6A}
.tx-clear-list{list-style:none;margin:0;padding:0}
.tx-clear-list li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,3vw,40px);padding:18px 0;border-bottom:1px solid var(--tx-line-2)}
.tx-clear-item{font-family:var(--tx-display);font-weight:400;font-size:clamp(18px,1.7vw,22px);line-height:1.3;color:var(--tx-ink)}
.tx-clear-how{display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.5;color:#3A3A3A;min-width:0}
.tx-clear-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.tx-clear-links a{font-weight:500;color:var(--tx-ink)}
.tx-clear-links a::after{content:" →"}
@media (max-width:760px){.tx-clear-head{display:none}.tx-clear-list li{grid-template-columns:minmax(0,1fr);gap:8px}}

.tx-ind-listh{margin:0;font-family:var(--tx-display);font-weight:400;font-size:clamp(20px,2vw,26px);line-height:1.2}
.tx-ind-colhead{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#6A6A6A}
.tx-ind-clear strong{font-weight:500;font-size:16px;line-height:1.35;color:var(--tx-ink)}
.tx-ind-clear a{font-weight:500}

/* ---------- v12.15: industry proof as graphics ---------- */
.tx-ind-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.5vw,32px);border-top:2px solid var(--tx-ink);padding-top:18px}
@media (max-width:760px){.tx-ind-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tx-ind-stat{display:flex;flex-direction:column;gap:6px;min-width:0}
.tx-ind-stat-n{font-family:var(--tx-display);font-weight:300;font-size:clamp(40px,5vw,64px);line-height:1;color:var(--tx-ink)}
.tx-ind-stat-n small{font-size:.38em;font-weight:400;letter-spacing:.02em}
.tx-ind-stat-t{font-size:14px;line-height:1.45;color:#4A4A4A}
.tx-ind-evidence{display:flex;flex-direction:column;gap:clamp(16px,2vw,24px)}
.tx-ind-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.tx-ind-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--tx-line-2);border-radius:12px;padding:20px 22px;min-width:0;background:#fff}
.tx-ind-card strong{font-family:var(--tx-display);font-weight:400;font-size:clamp(20px,2vw,26px);line-height:1.2}
.tx-ind-card>span:last-child{font-size:15px;line-height:1.5;color:#4A4A4A}
.tx-ind-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}
.tx-ind-person{margin:0;display:flex;gap:16px;align-items:center;border:1px solid var(--tx-line-2);border-radius:12px;padding:16px;min-width:0}
.tx-ind-person img{width:84px;height:84px;border-radius:50%;object-fit:cover;flex:none;filter:grayscale(100%)}
.tx-ind-person figcaption{display:flex;flex-direction:column;gap:4px;min-width:0}
.tx-ind-person strong{font-weight:500;font-size:16px}
.tx-ind-person span{font-size:14px;line-height:1.45;color:#4A4A4A}
.tx-ind-marks{background:var(--tx-night);color:#fff;border-radius:16px;padding:clamp(20px,3vw,32px);display:flex;flex-direction:column;gap:22px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.tx-ind-markrow{display:flex;flex-direction:column;gap:12px}
.tx-ind-marklabel{margin:0;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#BDBDBD}
.tx-ind-logos{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(20px,3.5vw,44px)}
.tx-ind-logos a,.tx-ind-logos span{display:flex;align-items:center;height:48px}
.tx-ind-logos img{height:28px;width:auto;max-width:150px;display:block;filter:brightness(0) invert(1)}
.tx-ind-logos a.tx-ind-logo--nvidia img{height:52px;max-width:none;filter:none}
.tx-ind-logos a.tx-ind-logo--fujitsu img{height:46px}
.tx-ind-logos--customers img{height:26px;max-width:120px;filter:grayscale(100%) brightness(1.25);opacity:.9}
.tx-ind-fine{margin:0;font-size:12px;line-height:1.5;color:#A8A8A8}

/* ---------- v12.14: industries ---------- */
@media (max-width:1240px){.tx-nav{gap:20px}}
@media (max-width:1180px){.tx-nav{display:none}.tx-menu-button{display:inline-block}}
.tx-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tx-chips a{display:inline-block;padding:7px 14px;border-radius:999px;border:1px solid var(--tx-line-2);text-decoration:none;color:var(--tx-ink);font-size:14px;line-height:1.3}
.tx-chips a:hover,.tx-chips a:focus-visible{background:var(--tx-ink);color:#fff;border-color:var(--tx-ink)}
.tx-chips-label{font-size:14px;font-weight:500;margin-right:4px}
.tx-chips--hero{margin-top:4px;padding-top:18px;border-top:1px solid var(--tx-night-line);max-width:980px}
.tx-chips--hero .tx-chips-label{color:#fff}
.tx-page .tx-hero .tx-chips--hero a{color:var(--tx-on-night-2);border-color:#4A4A4A}
.tx-page .tx-hero .tx-chips--hero a:hover,.tx-page .tx-hero .tx-chips--hero a:focus-visible{background:#fff;color:var(--tx-ink);border-color:#fff}
.tx-ind-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
@media (max-width:760px){.tx-ind-cols{grid-template-columns:minmax(0,1fr)}}
.tx-ind-col{min-width:0;display:flex;flex-direction:column;gap:10px}
.tx-ind-sols{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.tx-ind-sols li{display:flex;flex-direction:column;gap:3px;padding-left:14px;border-left:2px solid var(--tx-ink)}
.tx-ind-sols a{font-weight:500;color:var(--tx-ink)}
.tx-ind-sols span{color:var(--tx-ink-2,#4A4A4A);font-size:15px}
.tx-ind-names{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.tx-ind-note{color:#6A6A6A}
.tx-print-only{display:none}
@media print{
  @page{size:A4;margin:13mm 14mm}
  html,body{background:#fff !important;color:#111 !important}
  body{font-size:10pt}
  .tx-no-print,.tx-skip,script{display:none !important}
  .tx-print-only{display:flex !important}
  .tx-ind-printhead{justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid #111;margin-bottom:6px;font-size:8.5pt;color:#444}
  .tx-ind-printhead img{height:18px;width:auto}
  .tx-ind .tx-section{padding:7pt 0 !important;background:#fff !important;border-top:0 !important}
  .tx-ind .tx-wrap{max-width:none;padding:0 !important}
  .tx-ind .tx-h1{font-size:21pt;line-height:1.15;margin:0}
  .tx-ind .tx-h3{font-size:11.5pt;margin:0 0 3pt}
  .tx-ind .tx-lead{font-size:11pt;line-height:1.4}
  .tx-ind .tx-body,.tx-ind .tx-list li,.tx-ind-sols span{font-size:9.2pt;line-height:1.38}
  .tx-ind .tx-small{font-size:8pt}
  .tx-ind .tx-stack{gap:5pt}
  .tx-ind .tx-split{display:grid;grid-template-columns:1fr 1fr;gap:18pt}
  .tx-ind-cols{grid-template-columns:1fr 1fr !important;gap:18pt}
  .tx-ind-sols{gap:5pt}
  .tx-ind-sols a{font-size:9.6pt;text-decoration:none}
  .tx-ind-steps{display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:8pt !important}
  .tx-ind-steps li{padding:0 !important;border:0 !important}
  .tx-ind-steps h3{font-size:9.2pt !important}
  .tx-ind-steps p{font-size:8.4pt !important}
  .tx-ind-block,.tx-ind-sols li,.tx-ind-steps li{break-inside:avoid}
  .tx-ind .tx-list{border-top:1px solid #DDD}
  .tx-ind .tx-list li{padding:3.5pt 0;border-bottom:1px solid #DDD}
  .tx-ind-break{break-before:page}
  .tx-ind-steps .tx-step-n{font-size:8pt !important}
  .tx-ind-stats{padding-top:6pt;gap:10pt;border-top-width:1.5pt}
  .tx-ind-stat-n{font-size:24pt}
  .tx-ind-stat-t{font-size:8pt;line-height:1.35}
  .tx-ind-evidence{gap:7pt}
  .tx-ind-cards{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr;gap:7pt}
  .tx-ind-card{padding:8pt 10pt;gap:3pt;border-radius:8pt;break-inside:avoid}
  .tx-ind-card strong{font-size:11.5pt}
  .tx-ind-card>span:last-child{font-size:8.4pt;line-height:1.35}
  .tx-ind-people{grid-template-columns:1fr 1fr;gap:7pt}
  .tx-ind-person{padding:7pt;gap:9pt;border-radius:8pt;break-inside:avoid}
  .tx-ind-person img{width:44pt;height:44pt}
  .tx-ind-person strong{font-size:9pt}
  .tx-ind-person span{font-size:8pt;line-height:1.35}
  .tx-ind-marks{padding:11pt 14pt;gap:9pt;border-radius:10pt;break-inside:avoid}
  .tx-ind-marklabel{font-size:7pt}
  .tx-ind-logos{gap:18pt}
  .tx-ind-logos a,.tx-ind-logos span{height:26pt}
  .tx-ind-logos img{height:15pt}
  .tx-ind-logos a.tx-ind-logo--nvidia img{height:30pt}
  .tx-ind-logos a.tx-ind-logo--fujitsu img{height:25pt}
  .tx-ind-logos--customers img{height:14pt}
  .tx-ind-fine{font-size:7pt}
  .tx-ind .tx-ind-marks .tx-ind-marklabel{color:#BDBDBD !important}
  .tx-ind-listh{font-size:12pt}
  .tx-ind-colhead{font-size:7pt}
  .tx-ind-clear strong{font-size:9.4pt}
  .tx-ind .tx-section.tx-section--tight{padding:4.5pt 0 !important}
  .tx-ind-about .tx-split{grid-template-columns:3fr 2fr}
  .tx-ind .tx-list li{padding:2.5pt 0}
  .tx-ind-stat-n{font-size:20pt}
  .tx-ind-steps h3{margin:0}
  .tx-ind a{color:#111 !important}
  .tx-ind .tx-label{color:#555 !important}
}

/* v12.17a/c — partner logo strip: alphabetical in the HTML; logos keep their proportions and are sized for even
   visual weight (heavy wordmarks smaller, compact marks larger); on phones they sit in a two-column grid */
.tx-logo-strip img,.tx-logo-strip img[src$=".svg"]{height:32px;width:auto;max-width:100%;max-height:none;object-fit:contain}
.tx-logo-strip img[src*="deloitte"]{height:26px}
.tx-logo-strip img[src*="google"]{height:29px}
.tx-logo-strip img[src*="carahsoft"]{height:30px}
.tx-logo-strip img[src*="accenture"]{height:38px}
.tx-logo-strip img[src*="aws"]{height:42px}
.tx-logo-strip img[src*="fujitsu"]{height:46px}
@media (max-width:640px){
  .tx-logo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;align-items:center}
  .tx-logo-strip a{height:52px}
}
/* v12.17c — programme membership shown apart from the partner logos (NVIDIA Inception is a membership, not a partnership) */
.tx-member{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;padding-top:24px;border-top:1px solid var(--tx-line-2)}
.tx-member img{height:60px;width:auto;display:block}
.tx-member .tx-label,.tx-member .tx-small{margin:0}

/* v12.17b — industry profile logos keep their proportions (partner marks and customer marks, screen and print) */
.tx-ind-logos img{object-fit:contain}

/* v12.17d — partner logos sized for even visual weight wherever they are grouped (heavy wordmarks smaller, compact marks larger) */
/* industry profiles: "Delivered through partners" panel */
.tx-ind-logos a.tx-ind-logo--deloitte img{height:22px}
.tx-ind-logos a.tx-ind-logo--google img{height:25px}
.tx-ind-logos a.tx-ind-logo--carahsoft img{height:26px}
.tx-ind-logos a.tx-ind-logo--accenture img{height:32px}
.tx-ind-logos a.tx-ind-logo--aws img{height:36px}
.tx-ind-logos a.tx-ind-logo--fujitsu img{height:40px}
@media print{
  .tx-ind-logos a.tx-ind-logo--deloitte img{height:12pt}
  .tx-ind-logos a.tx-ind-logo--google img{height:13.5pt}
  .tx-ind-logos a.tx-ind-logo--carahsoft img{height:14pt}
  .tx-ind-logos a.tx-ind-logo--accenture img{height:17pt}
  .tx-ind-logos a.tx-ind-logo--aws img{height:19pt}
  .tx-ind-logos a.tx-ind-logo--fujitsu img{height:21.5pt}
}
/* Partners page cards */
.tx-partner-logo img[src*="deloitte"]{max-height:30px}
.tx-partner-logo img[src*="carahsoft"]{max-height:38px}
.tx-partner-logo img[src*="accenture"]{max-height:48px}
.tx-partner-logo img[src*="fujitsu"]{max-height:64px}
/* Programmes page cards */
.programme-commercial-card .programme-commercial-logo-stage img.logo-deloitte{width:auto;height:34px;max-height:none}
.programme-commercial-card .programme-commercial-logo-stage img.logo-carahsoft{width:auto;height:44px;max-height:none}
.programme-commercial-card .programme-commercial-logo-stage img.logo-accenture{width:auto;height:54px;max-height:none}
.programme-commercial-card .programme-commercial-logo-stage img.logo-aws{width:auto;height:70px;max-height:none}
.programme-commercial-card .programme-commercial-logo-stage img.logo-fujitsu{width:auto;height:76px;max-height:none}

/* v12.17e — the mobile menu opens directly under the pinned header wherever the page is scrolled
   (it used to sit in the page flow at the very top, so it opened out of sight on a scrolled page) */
.tx-mobile-menu{position:fixed;top:77px;left:0;right:0;z-index:49;max-height:calc(100vh - 77px);max-height:calc(100dvh - 77px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:0 14px 28px rgba(0,0,0,.14)}
