:root{
  --ink:#07090c;
  --ink-2:#0d1115;
  --paper:#eef1ed;
  --paper-2:#e3e7e2;
  --cyan:#8ff8eb;
  --cyan-2:#5cebdc;
  --line-dark:rgba(255,255,255,.13);
  --line-light:rgba(7,9,12,.16);
  --muted-dark:rgba(255,255,255,.6);
  --muted-light:rgba(7,9,12,.58);
  --wrap:min(1480px, calc(100vw - 80px));
  --display:"Space Grotesk",Inter,Arial,sans-serif;
  --body:Inter,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;font-family:var(--body);color:#fff;background:var(--ink);overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit}
::selection{background:var(--cyan);color:var(--ink)}
.wrap{width:var(--wrap);margin-inline:auto}
.section-dark{background:var(--ink);color:#fff}
.section-light{background:var(--paper);color:var(--ink)}
.section-cyan{background:var(--cyan);color:var(--ink)}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:200;background:rgba(255,255,255,.08)}
.scroll-progress span{display:block;height:100%;width:0;background:var(--cyan);transform-origin:left}
.site-header{position:fixed;top:0;left:0;right:0;height:92px;padding:0 40px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;z-index:90;border-bottom:1px solid transparent;transition:.35s;background:linear-gradient(to bottom,rgba(7,9,12,.7),transparent)}
.site-header.scrolled{height:72px;background:rgba(7,9,12,.8);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.1)}
.brand{display:inline-flex;align-items:center;gap:13px;font-family:var(--display);font-size:17px;font-weight:600;letter-spacing:.08em;width:max-content}
.brand-ai{color:var(--cyan)}
.brand-mark{width:29px;height:29px;position:relative;display:inline-block;transform:rotate(45deg)}
.brand-mark i{position:absolute;border:1px solid currentColor;inset:4px}
.brand-mark i:nth-child(2){inset:9px}
.brand-mark i:nth-child(3){inset:13px;background:var(--cyan);border:0}
.desktop-nav{display:flex;gap:30px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.7)}
.desktop-nav a{transition:.2s}.desktop-nav a:hover{color:#fff}
.nav-cta{justify-self:end;border-bottom:1px solid rgba(255,255,255,.4);padding:7px 0;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.nav-cta span{color:var(--cyan);margin-left:10px}
.menu-toggle{display:none;border:0;background:none;color:#fff;padding:12px}.menu-toggle span{display:block;width:23px;height:1px;background:#fff;margin:6px}
.mobile-menu{display:none}
.hero{height:100svh;min-height:760px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding-bottom:62px}
#world-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-vignette{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 69% 48%,transparent 0,rgba(7,9,12,.05) 25%,rgba(7,9,12,.66) 76%),linear-gradient(to top,rgba(7,9,12,.95),transparent 45%)}
.hero-grid,.closing-grid{position:absolute;inset:0;z-index:1;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to bottom,transparent,black 30%,black 70%,transparent)}
.hero-copy{position:relative;z-index:3}
.eyebrow{font-size:11px;letter-spacing:.17em;color:rgba(255,255,255,.6);margin:0 0 25px}
.display{font-family:var(--display);font-size:clamp(64px,8.9vw,160px);font-weight:500;line-height:.78;letter-spacing:-.065em;margin:0;text-transform:uppercase;max-width:1260px}
.display span{display:block}.display span:nth-child(2){margin-left:7.5vw}.display .outline-text{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.72);margin-left:1.6vw}
.hero-bottom{display:grid;grid-template-columns:1fr 260px;align-items:end;gap:80px;margin-top:48px;margin-left:34vw;max-width:850px}
.hero-bottom p{margin:0;color:rgba(255,255,255,.68);font-size:15px;line-height:1.6;max-width:520px}
.text-link{font-size:11px;text-transform:uppercase;letter-spacing:.13em;display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:10px}.text-link span{color:var(--cyan)}
.hero-hud{position:absolute;z-index:3;top:50%;font-family:var(--display);font-size:9px;letter-spacing:.12em;color:rgba(255,255,255,.34);display:flex;flex-direction:column;gap:7px}.hud-left{left:20px;transform:rotate(-90deg) translateX(-50%);transform-origin:left top}.hud-right{right:22px;transform:rotate(90deg) translateX(50%);transform-origin:right top;text-align:right}
.hero-index{position:absolute;z-index:3;right:40px;bottom:42px;display:flex;align-items:center;gap:10px;font-size:10px;color:rgba(255,255,255,.45)}.hero-index i{width:68px;height:1px;background:rgba(255,255,255,.2);position:relative}.hero-index i:after{content:"";position:absolute;left:0;top:0;width:15%;height:1px;background:var(--cyan)}
.signal-bar{height:130px;background:#fff;color:var(--ink);display:grid;grid-template-columns:280px 1fr;align-items:center;overflow:hidden;border-bottom:1px solid var(--line-light)}
.signal-bar>p{padding-left:40px;font-size:9px;letter-spacing:.16em;color:rgba(7,9,12,.5)}
.ticker{overflow:hidden;white-space:nowrap}.ticker-track{display:flex;width:max-content;align-items:center;animation:ticker 34s linear infinite;will-change:transform}.ticker-set{display:flex;align-items:center;gap:38px;padding-right:38px}.ticker-set i{flex:0 0 auto;width:4px;height:4px;background:var(--cyan-2);transform:rotate(45deg);opacity:.75}.logo-item{height:66px;min-width:132px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.logo-item img{display:block;max-width:100%;max-height:54px;width:auto;height:auto;object-fit:contain}.logo-serco{width:138px}.logo-innovate{width:176px}.logo-carbon13{width:154px}.logo-cpc{width:180px}.logo-setsquared{width:180px}.logo-barclays{width:184px}.logo-bristol{width:194px}.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-50%)}}
.problem{padding:170px 0 0;overflow:hidden}.problem-grid{display:grid;grid-template-columns:280px 1fr;gap:40px}.section-kicker{font-size:10px;letter-spacing:.17em;text-transform:uppercase;display:flex;gap:13px;align-items:center}.section-kicker span{opacity:.42}.mega-copy{font-family:var(--display);font-size:clamp(58px,8vw,130px);font-weight:500;line-height:.9;letter-spacing:-.055em;margin:0;text-transform:uppercase}.problem-body{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin:70px 0 150px;max-width:900px;margin-left:auto}.problem-body p{font-size:15px;line-height:1.72;color:var(--muted-light);margin:0}.problem-body p:first-child{font-size:20px;color:var(--ink)}
.problem-marquee{border-top:1px solid var(--line-light);height:140px;display:flex;align-items:center;overflow:hidden;white-space:nowrap}.problem-marquee span{font-family:var(--display);font-size:43px;letter-spacing:-.03em;color:rgba(7,9,12,.13);animation:drift 18s linear infinite}@keyframes drift{to{transform:translateX(-20%)}}
.story{height:400vh;position:relative}.story-sticky{position:sticky;top:0;height:100vh;min-height:720px;overflow:hidden}.story-visual{position:absolute;right:0;top:0;width:58%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 55% 48%,rgba(143,248,235,.12),transparent 36%)}
.sim-shell{width:min(680px,72vh);aspect-ratio:1;position:relative;border:1px solid rgba(255,255,255,.12);border-radius:50%;transition:transform .8s cubic-bezier(.2,.7,.1,1)}
.sim-grid{position:absolute;inset:14%;transform:perspective(600px) rotateX(66deg) rotateZ(-8deg);background-image:linear-gradient(rgba(143,248,235,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(143,248,235,.2) 1px,transparent 1px);background-size:32px 32px;border-radius:50%;mask-image:radial-gradient(circle,black,transparent 68%)}
.sim-orbit{position:absolute;inset:18%;border:1px solid rgba(143,248,235,.24);border-radius:50%;transform:rotateX(68deg) rotateY(10deg);animation:orbit 13s linear infinite}.orbit-b{inset:28%;transform:rotateY(65deg) rotateX(25deg);animation-direction:reverse;animation-duration:9s}@keyframes orbit{to{transform:rotateX(68deg) rotateY(10deg) rotateZ(360deg)}}
.sim-core{position:absolute;left:50%;top:50%;width:128px;height:128px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid rgba(255,255,255,.48);display:grid;place-items:center}.sim-core:before,.sim-core:after{content:"";position:absolute;inset:14px;border:1px solid rgba(143,248,235,.5)}.sim-core:after{inset:36px;background:var(--cyan);box-shadow:0 0 80px rgba(143,248,235,.25)}.sim-core span{position:absolute;width:290px;height:1px;background:linear-gradient(90deg,transparent,rgba(143,248,235,.8),transparent);transform:rotate(-45deg);animation:scan 3s ease-in-out infinite}@keyframes scan{50%{transform:rotate(-45deg) translateY(80px)}}
.sim-points{position:absolute;inset:0;background-image:radial-gradient(circle,#8ff8eb 1px,transparent 1.2px);background-size:37px 37px;border-radius:50%;mask-image:radial-gradient(circle at 60% 45%,black,transparent 58%);opacity:.35;animation:points 9s linear infinite}@keyframes points{to{transform:rotate(360deg)}}
.sim-label{position:absolute;font-size:8px;letter-spacing:.16em;color:rgba(255,255,255,.38)}.label-a{top:14%;left:8%}.label-b{top:67%;right:-7%}.label-c{bottom:8%;left:25%}
.story-copy{height:100%;position:relative;z-index:3}.story-step{position:absolute;left:0;top:50%;transform:translateY(-44%);width:38%;opacity:0;transition:opacity .5s,transform .7s;pointer-events:none}.story-step.active{opacity:1;transform:translateY(-50%);pointer-events:auto}.story-step .section-kicker{margin-bottom:90px}.step-label{font-size:10px;letter-spacing:.17em;color:var(--cyan);margin-bottom:17px}.story-step h2{font-family:var(--display);font-size:clamp(44px,4.3vw,74px);line-height:.97;letter-spacing:-.045em;font-weight:500;margin:0 0 28px}.story-step>p:last-child{color:var(--muted-dark);line-height:1.7;font-size:15px;max-width:520px}
.pillars{padding:160px 0 180px}.section-head{display:grid;grid-template-columns:1fr 1fr;align-items:start;margin-bottom:90px}.section-head>p{font-family:var(--display);font-size:clamp(34px,4vw,62px);line-height:1;letter-spacing:-.04em;margin:0}.pillar-list{border-top:1px solid var(--line-light)}.pillar{min-height:330px;display:grid;grid-template-columns:100px 1.5fr 1fr 280px;gap:30px;align-items:center;border-bottom:1px solid var(--line-light);position:relative;transition:.4s;padding:35px 0}.pillar:hover{padding-left:18px}.pillar-num{font-family:var(--display);font-size:12px;color:var(--muted-light)}.pillar h3{font-family:var(--display);font-size:clamp(37px,4vw,64px);font-weight:500;line-height:.92;letter-spacing:-.045em;margin:0}.pillar>p{color:var(--muted-light);line-height:1.7;font-size:14px;max-width:340px}.pillar-glyph{width:250px;height:180px;justify-self:end;position:relative;background:rgba(7,9,12,.03);border:1px solid rgba(7,9,12,.1);overflow:hidden}.glyph-dataset{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding:25px;gap:9px}.glyph-dataset span{display:block;background:var(--ink);height:30%;animation:bars 3s ease-in-out infinite}.glyph-dataset span:nth-child(2){height:66%;animation-delay:.2s}.glyph-dataset span:nth-child(3){height:92%;animation-delay:.4s}.glyph-dataset span:nth-child(4){height:54%;animation-delay:.6s}.glyph-dataset span:nth-child(5){height:76%;animation-delay:.8s}@keyframes bars{50%{transform:scaleY(.6);opacity:.5}}
.glyph-path{display:grid;place-items:center}.glyph-path svg{width:85%;fill:none;stroke:var(--ink);stroke-width:1}.glyph-path path:last-child{stroke:var(--cyan-2);stroke-width:2;stroke-dasharray:6 8;animation:dash 8s linear infinite}@keyframes dash{to{stroke-dashoffset:-120}}
.glyph-node span{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--ink)}.glyph-node span:nth-child(1){left:22%;top:52%}.glyph-node span:nth-child(2){left:50%;top:27%}.glyph-node span:nth-child(3){left:70%;top:61%}.glyph-node span:nth-child(4){left:43%;top:72%;background:var(--cyan-2)}.glyph-node i{position:absolute;inset:20%;border:1px solid rgba(7,9,12,.28);transform:rotate(25deg);animation:noderot 10s linear infinite}@keyframes noderot{to{transform:rotate(385deg)}}
.architecture{padding:170px 0 190px}.architecture-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:120px;align-items:end}.architecture-copy h2{font-family:var(--display);font-size:clamp(48px,5vw,78px);line-height:.95;letter-spacing:-.05em;font-weight:500;margin:55px 0 35px}.architecture-copy>p{max-width:520px;color:var(--muted-dark);font-size:15px;line-height:1.72}.architecture-diagram{border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);position:relative}.arch-line{position:absolute;left:22px;top:11%;bottom:11%;width:1px;background:linear-gradient(var(--cyan),rgba(143,248,235,.12));box-shadow:0 0 20px rgba(143,248,235,.4)}.arch-node{min-height:150px;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:70px 1fr 1fr;align-items:center;padding-left:55px;position:relative}.arch-node:last-child{border:0}.arch-node:before{content:"";position:absolute;left:17px;width:11px;height:11px;background:var(--ink);border:1px solid var(--cyan);transform:rotate(45deg)}.arch-node span{font-size:9px;color:rgba(255,255,255,.35)}.arch-node strong{font-family:var(--display);font-size:24px;line-height:1;font-weight:500}.arch-node small{font-size:11px;color:var(--muted-dark)}
.deployment{padding:70px 0 130px}.deployment-top{display:flex;justify-content:space-between;padding-bottom:34px;border-bottom:1px solid rgba(7,9,12,.24)}.deployment-meta{display:flex;gap:40px;font-size:9px;letter-spacing:.14em}.deployment-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:80px;align-items:center}.deployment-overline{font-family:var(--display);font-size:clamp(58px,7vw,112px);line-height:.82;letter-spacing:-.055em;margin:0 0 70px}.deployment-copy h2{font-family:var(--display);font-size:31px;font-weight:500;margin:0 0 20px}.deployment-copy>p:not(.deployment-overline){max-width:610px;line-height:1.7;color:rgba(7,9,12,.67);font-size:15px}.dark-link{margin-top:34px;display:flex;justify-content:space-between;border-bottom:1px solid rgba(7,9,12,.4);padding:12px 0;max-width:420px;font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.deployment-visual{height:660px;background:var(--ink);position:relative;overflow:hidden;display:grid;place-items:center}.radar{width:78%;aspect-ratio:1;border:1px solid rgba(143,248,235,.27);border-radius:50%;position:relative;background:radial-gradient(circle,rgba(143,248,235,.08),transparent 60%)}.radar-ring{position:absolute;border:1px solid rgba(143,248,235,.16);border-radius:50%}.r1{inset:16%}.r2{inset:32%}.r3{inset:44%}.radar-line{position:absolute;background:rgba(143,248,235,.16)}.radar-line.horizontal{height:1px;left:0;right:0;top:50%}.radar-line.vertical{width:1px;top:0;bottom:0;left:50%}.blip{position:absolute;width:7px;height:7px;background:var(--cyan);border-radius:50%;box-shadow:0 0 15px var(--cyan)}.b1{left:25%;top:38%}.b2{right:20%;top:28%}.b3{right:31%;bottom:20%}.vessel{position:absolute;left:50%;top:50%;width:60px;height:25px;transform:translate(-50%,-50%);border:1px solid #fff}.vessel:before{content:"";position:absolute;left:50%;top:-80px;width:1px;height:80px;background:linear-gradient(transparent,var(--cyan))}.vessel i{position:absolute;width:11px;height:11px;border:1px solid var(--cyan);left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg)}.radar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 83%,rgba(143,248,235,.18) 94%,rgba(143,248,235,.38) 100%);animation:sweep 5s linear infinite}@keyframes sweep{to{transform:rotate(360deg)}}.visual-readout{position:absolute;left:25px;right:25px;bottom:20px;border-top:1px solid rgba(255,255,255,.14);padding-top:14px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.45)}.visual-readout strong{color:var(--cyan);font-weight:500}
.evidence{padding:160px 0}.evidence .section-head{margin-bottom:70px}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}.evidence-card{min-height:430px;padding:26px;display:flex;flex-direction:column;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);position:relative;transition:.35s}.evidence-card:hover{background:#10161a}.evidence-card>div{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.13em;color:rgba(255,255,255,.38)}.evidence-card h3{font-family:var(--display);font-size:42px;letter-spacing:-.04em;font-weight:500;margin:auto 0 25px}.evidence-card p{color:var(--muted-dark);font-size:13px;line-height:1.65;margin:0 38px 0 0}.card-arrow{position:absolute;right:25px;bottom:24px;color:var(--cyan);font-size:18px}.updates-link{display:flex;justify-content:space-between;max-width:400px;border-bottom:1px solid rgba(255,255,255,.28);padding:12px 0;margin-top:60px;font-size:10px;text-transform:uppercase;letter-spacing:.13em}.updates-link span{color:var(--cyan)}
.company{padding:170px 0 190px}.company-intro{display:grid;grid-template-columns:280px 1fr 420px;gap:40px;align-items:start;margin-bottom:120px}.company-intro h2{font-family:var(--display);font-size:clamp(50px,5.4vw,86px);font-weight:500;line-height:.92;letter-spacing:-.05em;margin:0}.company-intro>p{color:var(--muted-light);font-size:15px;line-height:1.72;margin-top:4px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.person{border-top:1px solid var(--line-light);padding-top:20px}.avatar{height:360px;background:var(--paper-2);display:grid;place-items:center;margin-bottom:23px;position:relative;overflow:hidden}.avatar:before{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(7,9,12,.15);border-radius:50%}.avatar:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,rgba(143,248,235,.24) 40%,rgba(7,9,12,.07));filter:blur(.1px)}.avatar span{font-family:var(--display);font-size:42px;z-index:2;letter-spacing:-.05em}.avatar i{position:absolute;inset:25px;border:1px solid rgba(7,9,12,.08);transform:rotate(45deg)}.person h3{font-family:var(--display);font-weight:500;font-size:19px;margin:0 0 5px}.person p{margin:0;color:var(--muted-light);font-size:12px}
.closing{min-height:860px;position:relative;overflow:hidden;padding:160px 0 80px}.closing-inner{position:relative;z-index:2}.closing h2{font-family:var(--display);font-size:clamp(70px,9.4vw,150px);font-weight:500;letter-spacing:-.065em;line-height:.8;margin:110px 0 75px}.closing h2 span{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.7)}.closing-row{display:grid;grid-template-columns:1fr 240px;align-items:center;margin-left:50%}.closing-row>p{max-width:350px;color:var(--muted-dark);line-height:1.65;font-size:14px}.orb-cta{width:190px;height:190px;border-radius:50%;background:var(--cyan);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--display);font-size:21px;line-height:1.05;position:relative;transition:.4s}.orb-cta:hover{transform:scale(1.06) rotate(-3deg)}.orb-cta i{position:absolute;right:34px;top:31px;font-style:normal;font-size:14px}
footer{background:#020304;padding:70px 0 25px;border-top:1px solid rgba(255,255,255,.1)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:50px;min-height:210px}.footer-grid>div{display:flex;flex-direction:column;gap:9px;font-size:12px;color:rgba(255,255,255,.7)}.footer-label{font-size:8px;letter-spacing:.16em;color:rgba(255,255,255,.3);margin-bottom:12px}.footer-bottom{padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-size:9px;letter-spacing:.08em;color:rgba(255,255,255,.36)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.1,1),transform .9s cubic-bezier(.2,.7,.1,1)}.reveal.in{opacity:1;transform:none}

/* Updates */
.subpage{background:var(--paper);color:var(--ink)}.subpage .site-header{position:absolute;color:#fff}.page-hero{background:var(--ink);color:#fff;padding:220px 0 100px;min-height:580px;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;right:-8vw;top:80px;width:42vw;height:42vw;border:1px solid rgba(143,248,235,.24);border-radius:50%;box-shadow:0 0 120px rgba(143,248,235,.08)}.page-hero h1{font-family:var(--display);font-size:clamp(74px,10vw,158px);line-height:.82;letter-spacing:-.06em;font-weight:500;margin:65px 0 0}.updates-main{padding:100px 0 160px}.update-article{display:grid;grid-template-columns:250px 1fr;gap:90px;border-top:1px solid var(--line-light);padding:65px 0 90px;scroll-margin-top:60px}.update-meta{font-size:9px;letter-spacing:.14em;display:flex;flex-direction:column;gap:10px;color:var(--muted-light)}.update-body{max-width:920px}.update-body h2{font-family:var(--display);font-size:clamp(42px,5vw,72px);line-height:.96;letter-spacing:-.05em;font-weight:500;margin:0 0 38px}.update-body p{font-size:16px;line-height:1.75;color:var(--muted-light);max-width:750px}.update-body p.lead{font-size:22px;color:var(--ink)}.update-tag{display:inline-block;margin-top:25px;border:1px solid var(--line-light);padding:8px 11px;font-size:9px;letter-spacing:.13em;text-transform:uppercase}.simple-privacy{padding:170px 0 130px}.simple-privacy h1{font-family:var(--display);font-size:70px;letter-spacing:-.05em}.simple-privacy h2{font-family:var(--display);margin-top:55px}.simple-privacy p,.simple-privacy li{max-width:760px;color:var(--muted-light);line-height:1.7}

@media(max-width:1050px){
  :root{--wrap:min(100% - 44px, 900px)}
  .site-header{padding:0 22px;height:76px;grid-template-columns:1fr auto}.desktop-nav,.nav-cta{display:none}.menu-toggle{display:block;justify-self:end}.mobile-menu{display:flex;position:fixed;z-index:85;inset:0;background:var(--ink);padding:130px 28px 50px;flex-direction:column;gap:24px;font-family:var(--display);font-size:40px;letter-spacing:-.04em;transform:translateY(-100%);transition:.55s cubic-bezier(.2,.7,.1,1);visibility:hidden}.mobile-menu.open{transform:none;visibility:visible}.mobile-menu a:last-child{font-family:var(--body);font-size:13px;color:var(--cyan);margin-top:auto}.menu-toggle.active span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle.active span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .hero{min-height:720px}.display{font-size:clamp(58px,13vw,100px)}.display span:nth-child(2){margin-left:0}.display .outline-text{margin-left:0}.hero-bottom{margin-left:0;grid-template-columns:1fr 220px}.hero-hud{display:none}.signal-bar{grid-template-columns:1fr;height:110px}.signal-bar>p{padding:0 22px;margin:0 0 -8px}.problem-grid{grid-template-columns:1fr;gap:60px}.problem-body{margin-left:0}.story-visual{width:100%;opacity:.45}.story-copy{background:linear-gradient(90deg,var(--ink) 0,rgba(7,9,12,.88) 42%,transparent 78%)}.story-step{width:54%}.pillar{grid-template-columns:70px 1.4fr 1fr}.pillar-glyph{display:none}.architecture-grid{grid-template-columns:1fr;gap:80px}.deployment-grid{grid-template-columns:1fr}.deployment-visual{height:520px}.company-intro{grid-template-columns:1fr;gap:35px}.company-intro>p{max-width:570px}.team-grid{grid-template-columns:1fr 1fr}.closing-row{margin-left:30%;grid-template-columns:1fr 190px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-grid>div:last-child{display:none}.update-article{grid-template-columns:160px 1fr;gap:45px}
}
@media(max-width:680px){
  :root{--wrap:calc(100% - 34px)}
  .hero{height:100svh;min-height:650px;padding-bottom:38px}.hero-copy{padding-top:100px}.eyebrow{max-width:280px;line-height:1.5}.display{font-size:clamp(49px,15.5vw,79px);line-height:.84}.hero-bottom{display:block;margin-top:42px}.hero-bottom p{font-size:13px;max-width:330px}.text-link{margin-top:28px;max-width:260px}.hero-index{display:none}.hero-grid{background-size:54px 54px}.signal-bar{height:100px}.signal-bar>p{font-size:8px}.ticker-set{gap:26px;padding-right:26px}.logo-item{height:54px;transform:scale(.9)}.problem{padding-top:110px}.problem-grid{gap:45px}.mega-copy{font-size:clamp(48px,15vw,72px)}.problem-body{grid-template-columns:1fr;gap:25px;margin:55px 0 100px}.problem-body p:first-child{font-size:18px}.problem-marquee{height:100px}.problem-marquee span{font-size:31px}.story{height:360vh}.story-sticky{min-height:620px}.story-visual{width:120%;right:-55%;opacity:.35}.sim-shell{width:520px}.story-copy{background:linear-gradient(90deg,var(--ink) 0,rgba(7,9,12,.94) 62%,transparent 100%)}.story-step{width:82%;top:48%}.story-step .section-kicker{margin-bottom:65px}.story-step h2{font-size:44px}.pillars{padding:110px 0}.section-head{grid-template-columns:1fr;gap:40px;margin-bottom:55px}.section-head>p{font-size:42px}.pillar{min-height:auto;grid-template-columns:40px 1fr;gap:20px;padding:45px 0}.pillar-title{grid-column:2}.pillar>p{grid-column:2;font-size:13px}.pillar h3{font-size:43px}.architecture{padding:110px 0}.architecture-copy h2{font-size:49px;margin-top:45px}.arch-node{grid-template-columns:45px 1fr;min-height:130px;padding-left:42px}.arch-node small{grid-column:2;margin-top:-30px}.arch-line{left:12px}.arch-node:before{left:7px}.deployment{padding:55px 0 90px}.deployment-top{display:block}.deployment-meta{margin-top:22px;gap:16px;flex-wrap:wrap}.deployment-grid{padding-top:55px}.deployment-overline{font-size:54px;margin-bottom:55px}.deployment-visual{height:400px}.evidence{padding:110px 0}.evidence-grid{grid-template-columns:1fr}.evidence-card{min-height:330px}.evidence-card h3{font-size:36px}.company{padding:110px 0}.company-intro{margin-bottom:70px}.company-intro h2{font-size:50px}.team-grid{grid-template-columns:1fr 1fr;gap:12px}.avatar{height:220px}.avatar:before{width:130px;height:130px}.avatar:after{width:100px;height:100px}.avatar span{font-size:28px}.person h3{font-size:15px}.closing{min-height:720px;padding-top:110px}.closing h2{font-size:58px;line-height:.84;margin:90px 0 60px}.closing-row{margin-left:0;grid-template-columns:1fr 150px;gap:20px}.orb-cta{width:145px;height:145px;font-size:17px}.orb-cta i{right:25px;top:23px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;margin-bottom:30px}.footer-grid>div:last-child{display:flex}.footer-bottom{gap:20px}.page-hero{padding:170px 0 75px;min-height:460px}.page-hero h1{font-size:72px}.updates-main{padding-top:60px}.update-article{grid-template-columns:1fr;gap:24px;padding:45px 0 65px}.update-body h2{font-size:44px}.update-body p.lead{font-size:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track,.problem-marquee span,.sim-orbit,.sim-points,.sim-core span,.radar-sweep,.glyph-dataset span,.glyph-path path,.glyph-node i{animation:none!important}.reveal{opacity:1;transform:none;transition:none}.story-step{transition:none}}

/* Brand assets supplied by FidelisAI */
.brand-image{display:inline-flex;align-items:center;width:auto;line-height:0}
.brand-image img{display:block;width:150px;height:auto;max-height:55px;object-fit:contain;object-position:left center}
.footer-brand img{width:190px;max-height:none}
.brand-dark{color:var(--ink)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Team portraits */
.avatar{background:linear-gradient(145deg,#e6eae6,#d8dfda);isolation:isolate}
.avatar:before{z-index:0;width:74%;height:auto;aspect-ratio:1;border-color:rgba(7,9,12,.11)}
.avatar:after{z-index:0;width:58%;height:auto;aspect-ratio:1;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(143,248,235,.24) 45%,rgba(7,9,12,.04));filter:blur(12px)}
.avatar img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s cubic-bezier(.2,.7,.1,1)}
.person:hover .avatar img{transform:scale(1.025)}



@media(max-width:1050px){
  .brand-image img{width:138px}
  .footer-brand img{width:175px}
}
@media(max-width:680px){
  .brand-image img{width:124px}.footer-brand img{width:165px}
  .avatar{height:245px}.avatar:before{width:76%;height:auto}.avatar:after{width:58%;height:auto}
}

/* =========================================================
   v6 hero: Adaptive AI canvas sits BELOW the headline.
   The canvas no longer occupies the hero background.
   ========================================================= */
.hero{height:auto;min-height:100svh;display:block;align-items:initial;padding:0;overflow:hidden}
.hero-copy{position:relative;z-index:3;padding-top:clamp(150px,16vh,205px);padding-bottom:18px}
.hero-bottom:empty{display:none}
.adaptive-canvas-stage{position:relative;z-index:2;width:100%;height:clamp(440px,48vw,650px);margin-top:10px;overflow:hidden;border-top:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(7,9,12,.2),rgba(7,9,12,.9))}
.adaptive-canvas-stage:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,rgba(7,9,12,.5) 0,transparent 18%,transparent 82%,rgba(7,9,12,.48) 100%)}
#world-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.hero-vignette{z-index:0;background:linear-gradient(to bottom,rgba(7,9,12,.15),rgba(7,9,12,.62))}
.hero-grid{z-index:0;opacity:.5;mask-image:linear-gradient(to bottom,black 5%,black 48%,transparent 88%)}
.logo-bristol{width:210px}.logo-bristol img{max-height:58px}

/* Excel-powered updates index + story pages */
.updates-index{padding:90px 0 150px;background:var(--paper)}
.updates-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:68px 32px}
.update-card{display:block;color:var(--ink)}
.update-card-image{aspect-ratio:16/9;overflow:hidden;background:#0b1117;border:1px solid var(--line-light)}
.update-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.1,1)}
.update-card h2{font-family:var(--display);font-size:clamp(28px,3.1vw,48px);font-weight:500;line-height:1;letter-spacing:-.045em;margin:20px 0 0;max-width:16ch}
.update-card:hover .update-card-image img{transform:scale(1.025)}
.update-card:hover h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
.updates-empty{font-family:var(--display);font-size:26px;letter-spacing:-.02em;color:var(--muted-light);padding:30px 0}
.story-shell{background:var(--ink);color:#fff;padding:190px 0 135px;min-height:80vh}
.story-article{max-width:1180px}
.story-meta{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:48px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.52)}
.story-meta span+span:before{content:"/";margin-right:18px;color:var(--cyan)}
.story-article h1{font-family:var(--display);font-size:clamp(54px,7vw,108px);font-weight:500;line-height:.9;letter-spacing:-.06em;margin:0 0 70px;max-width:13ch}
.story-image{display:block;width:100%;aspect-ratio:16/8.5;object-fit:cover;border:1px solid rgba(255,255,255,.12);margin-bottom:70px}
.story-copy{max-width:780px;margin-left:auto;margin-right:9vw}
.story-copy p{font-size:17px;line-height:1.85;color:rgba(255,255,255,.67);margin:0 0 30px}
.story-copy .story-lead{font-family:var(--display);font-size:clamp(24px,2.3vw,34px);line-height:1.25;letter-spacing:-.025em;color:#fff;margin-bottom:42px}
.story-back{display:inline-block;margin-top:65px;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:8px;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--cyan)}
.story-not-found{padding:110px 0 30px;font-family:var(--display);font-size:34px}
.story-not-found a{display:inline-block;margin-top:24px;font-family:var(--body);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}

@media(max-width:1050px){
  .hero{min-height:0}.hero-copy{padding-top:130px}.adaptive-canvas-stage{height:520px;margin-top:16px}
  .updates-grid{gap:48px 22px}.story-copy{margin-right:0;max-width:760px}
}
@media(max-width:680px){
  .hero{height:auto;min-height:0;padding-bottom:0}.hero-copy{padding-top:120px;padding-bottom:8px}.hero-bottom:empty{display:none}.adaptive-canvas-stage{height:430px;margin-top:22px}.hero-grid{background-size:54px 54px}
  .updates-index{padding:60px 0 100px}.updates-grid{grid-template-columns:1fr;gap:52px}.update-card h2{font-size:34px;max-width:18ch}
  .story-shell{padding:145px 0 95px}.story-meta{margin-bottom:34px;gap:10px}.story-meta span+span:before{margin-right:10px}.story-article h1{font-size:52px;margin-bottom:45px}.story-image{margin-bottom:45px;aspect-ratio:4/3}.story-copy p{font-size:15px;line-height:1.75}.story-copy .story-lead{font-size:23px}
  .logo-bristol{width:180px}.logo-bristol img{max-height:48px}
}

/* =========================================================
   v6.2 hero refinements:
   - point cloud goes behind the title again
   - positioned in the empty black area, not directly under the letters
   - smaller FidelisAI logo in the header
   ========================================================= */
.brand-image img{width:112px;max-height:42px}
.footer-brand img{width:170px;max-height:none}

.hero{height:100svh;min-height:760px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding-bottom:62px}
.hero-copy{position:relative;z-index:3;padding-top:0;padding-bottom:0}
.hero-bottom:empty{display:none}
.adaptive-canvas-stage{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin-top:0;overflow:hidden;border-top:0;background:none;pointer-events:none}
.adaptive-canvas-stage:before{display:none}
#world-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.hero-vignette{z-index:1;background:
  radial-gradient(circle at 74% 43%, rgba(143,248,235,.06) 0, rgba(143,248,235,.03) 18%, transparent 42%),
  radial-gradient(circle at 73% 44%, transparent 0, rgba(7,9,12,.08) 27%, rgba(7,9,12,.62) 72%),
  linear-gradient(to top,rgba(7,9,12,.95),transparent 46%)}
.hero-grid{z-index:1;opacity:.55;mask-image:linear-gradient(to bottom,transparent,black 24%,black 72%,transparent)}
.logo-bristol{width:210px}.logo-bristol img{max-height:58px}

@media(max-width:1050px){
  .brand-image img{width:104px}
  .footer-brand img{width:160px}
}
@media(max-width:680px){
  .brand-image img{width:96px}
  .footer-brand img{width:150px}
  .hero{min-height:700px;padding-bottom:42px}
}

/* =========================================================
   v6.3 hero / brand refinements
   ========================================================= */
.brand-image img{width:168px;max-height:56px}
.footer-brand img{width:180px}
@media(max-width:1050px){
  .brand-image img{width:156px;max-height:54px}
}
@media(max-width:680px){
  .brand-image img{width:138px;max-height:48px}
}

/* =========================================================
   v7.0 — embodiment-agnostic AI narrative + adaptation plot
   ========================================================= */

/* The former Platform section has been removed. */

/* Adaptation / deployment visual */
.adaptation-grid{grid-template-columns:.88fr 1.12fr;gap:70px;align-items:center}
.adaptation-grid .deployment-copy{align-self:center}
.adaptation-grid .deployment-overline{font-size:clamp(54px,6vw,96px);margin-bottom:48px}
.adaptation-grid .deployment-copy h2{font-size:clamp(26px,2.5vw,38px);line-height:1.05;letter-spacing:-.035em;max-width:540px}
.adaptation-grid .deployment-copy>p:not(.deployment-overline){max-width:570px}
.adaptation-note{margin-top:22px;padding-top:22px;border-top:1px solid rgba(7,9,12,.22);font-size:12px!important;line-height:1.65!important}

.adaptation-visual{height:auto;min-height:570px;padding:58px 38px 32px;display:flex;flex-direction:column;justify-content:center;place-items:initial;background:#07090c}
.adaptation-chart-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:16px;margin-bottom:16px;font-size:8px;letter-spacing:.15em;color:rgba(255,255,255,.42)}
.adaptation-chart-head strong{font-weight:500;color:var(--cyan)}
.adaptation-chart{display:block;width:100%;height:auto;overflow:visible}
.adaptation-gridlines line{stroke:rgba(255,255,255,.10);stroke-width:1}
.adaptation-ylabels text,.adaptation-shift-labels text,.axis-label{fill:rgba(255,255,255,.38);font-family:Inter,sans-serif;font-size:10px;letter-spacing:.08em}
.adaptation-ylabels text{text-anchor:end}
.adaptation-shift-labels text{text-anchor:middle;font-size:8px;letter-spacing:.12em}
.axis-label{font-size:9px;letter-spacing:.13em;text-anchor:middle}
.domain-shifts line{stroke:rgba(143,248,235,.38);stroke-width:1;stroke-dasharray:5 7}
.adaptation-line-shadow{fill:none;stroke:rgba(143,248,235,.10);stroke-width:9;stroke-linejoin:round;stroke-linecap:round}
.adaptation-line{fill:none;stroke:var(--cyan);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1100;stroke-dashoffset:1100;animation:adaptationDraw 3.4s cubic-bezier(.2,.7,.2,1) forwards}
.adaptation-pulses circle{fill:#fff;stroke:var(--cyan);stroke-width:2;filter:drop-shadow(0 0 7px rgba(143,248,235,.75));animation:adaptPulse 2.6s ease-in-out infinite}
.adaptation-pulses circle:nth-child(2){animation-delay:.25s}.adaptation-pulses circle:nth-child(3){animation-delay:.5s}.adaptation-pulses circle:nth-child(4){animation-delay:.75s}.adaptation-pulses circle:nth-child(5){animation-delay:1s}
.adaptation-legend{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);padding-top:17px;margin-top:6px;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.adaptation-legend span{display:flex;align-items:center;gap:9px}
.legend-line{display:block;width:28px;height:2px;background:var(--cyan)}
.legend-shift{display:block;width:1px;height:15px;border-left:1px dashed rgba(143,248,235,.7)}
@keyframes adaptationDraw{to{stroke-dashoffset:0}}
@keyframes adaptPulse{50%{opacity:.35;transform:scale(.7);transform-origin:center}}

@media(max-width:1050px){
  .adaptation-grid{grid-template-columns:1fr;gap:55px}
  .adaptation-visual{min-height:520px}
}
@media(max-width:680px){
  .adaptation-grid .deployment-overline{font-size:52px;margin-bottom:36px}
  .adaptation-visual{min-height:390px;padding:32px 16px 22px}
  .adaptation-chart-head{font-size:7px}
  .adaptation-ylabels text,.adaptation-shift-labels text,.axis-label{font-size:8px}
  .adaptation-legend{gap:18px;font-size:7px}
}

@media(prefers-reduced-motion:reduce){
  .adaptation-line{animation:none;stroke-dashoffset:0}
  .adaptation-pulses circle{animation:none}
}
.adaptation-legend em{margin-left:auto;font-style:normal;color:rgba(255,255,255,.28);font-size:7px;letter-spacing:.11em}
@media(max-width:680px){.adaptation-legend em{margin-left:0;width:100%}}

/* =========================================================
   v7.1 — source-trace adaptation animation
   ========================================================= */
.adaptation-line{fill:none;stroke:var(--cyan);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:none;stroke-dashoffset:0;animation:none}
.adaptation-line-shadow{fill:none;stroke:rgba(143,248,235,.10);stroke-width:9;stroke-linejoin:round;stroke-linecap:round}
.domain-bands .domain-band{fill:rgba(143,248,235,0);transition:fill .35s ease}
.domain-bands .domain-band.active{fill:rgba(143,248,235,.035)}
.domain-shifts line{stroke:rgba(143,248,235,.23);stroke-width:1;stroke-dasharray:4 5;transition:stroke .25s ease,opacity .25s ease;opacity:.45}
.domain-shifts line.reached{stroke:rgba(143,248,235,.72);opacity:1}
.adaptation-domain-labels text{fill:rgba(255,255,255,.38);font-family:Inter,sans-serif;font-size:7.5px;letter-spacing:.065em;text-anchor:middle;transition:fill .3s ease}
.adaptation-domain-labels text.active{fill:var(--cyan)}
.adaptation-marker{fill:#fff;stroke:var(--cyan);stroke-width:2;filter:drop-shadow(0 0 6px rgba(143,248,235,.8))}
.adaptation-marker-halo{fill:rgba(143,248,235,.09);stroke:rgba(143,248,235,.28);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:adaptMarkerPulse 1.35s ease-in-out infinite}
@keyframes adaptMarkerPulse{50%{transform:scale(1.45);opacity:.28}}
.adaptation-live-readout{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.12);padding-top:13px;margin-top:3px;font-size:8px;letter-spacing:.12em;color:rgba(255,255,255,.42)}
.adaptation-live-readout strong{font-weight:500;color:var(--cyan)}
.adaptation-chart-head strong{min-width:205px;text-align:right}
.adaptation-legend{margin-top:13px}
@media(prefers-reduced-motion:reduce){.adaptation-marker-halo{animation:none}}
@media(max-width:680px){
  .adaptation-domain-labels text{font-size:6.2px;letter-spacing:.035em}
  .adaptation-live-readout{font-size:7px}
  .adaptation-chart-head strong{min-width:0}
}


/* =========================================================
   v7.2 — System section copy stays left of the animation
   ========================================================= */
#how-it-works .system-story-copy{
  width:var(--wrap);
  max-width:none;
  margin-left:auto;
  margin-right:auto;
  background:none;
}
#how-it-works .system-story-copy .story-step{
  left:0;
  width:min(34vw,470px);
  max-width:34%;
}
#how-it-works .system-story-copy .story-step h2{
  max-width:460px;
}
#how-it-works .system-story-copy .story-step>p:last-child{
  max-width:440px;
}

@media(max-width:1050px){
  #how-it-works .system-story-copy{
    background:linear-gradient(90deg,var(--ink) 0,rgba(7,9,12,.92) 43%,rgba(7,9,12,.48) 62%,transparent 80%);
  }
  #how-it-works .system-story-copy .story-step{
    width:48%;
    max-width:480px;
  }
}

@media(max-width:680px){
  #how-it-works .system-story-copy{
    background:linear-gradient(90deg,var(--ink) 0,rgba(7,9,12,.95) 65%,transparent 100%);
  }
  #how-it-works .system-story-copy .story-step{
    width:78%;
    max-width:none;
  }
}

/* v7.3 — System story now has three stages rather than four. */
#how-it-works.story{height:300vh}
@media(max-width:680px){#how-it-works.story{height:285vh}}

/* =========================================================
   v7.5 team portraits — remove contrasting square backgrounds
   ========================================================= */
.company .avatar{
  background:transparent;
  height:auto;
  aspect-ratio:1 / 1;
  overflow:visible;
  display:block;
}
.company .avatar:before,
.company .avatar:after{
  display:none;
}
.company .avatar img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

@media(max-width:680px){
  .company .avatar{height:auto;aspect-ratio:1 / 1}
}

/* =========================================================
   v8.0 — rich Wix Blog migration
   ========================================================= */
.story-copy figure{
  margin:0 0 42px;
  width:100%;
}
.story-copy figure img{
  display:block;
  width:100%;
  height:auto;
  max-height:720px;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.1);
  background:#fff;
}
.story-copy strong{color:#fff;font-weight:600}
.story-copy em{color:inherit}
.story-copy a{color:var(--cyan);text-decoration:underline;text-underline-offset:4px}
.story-copy ul,.story-copy ol{
  margin:0 0 32px;
  padding-left:1.35em;
  color:rgba(255,255,255,.67);
  font-size:17px;
  line-height:1.85;
}
.story-copy li+li{margin-top:14px}
.story-copy p:empty{height:8px;margin:0}
@media(max-width:680px){
  .story-copy figure{margin-bottom:30px}
  .story-copy ul,.story-copy ol{font-size:15px;line-height:1.75}
}

/* =========================================================
   v8.5 — Problem section alignment and copy balance
   ========================================================= */
.problem{
  padding:0;
  min-height:620px;
  display:flex;
  align-items:center;
}
.problem .problem-grid{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(56px,7vw,120px);
  align-items:center;
  padding-top:110px;
  padding-bottom:110px;
}
.problem .mega-copy{
  align-self:center;
  max-width:760px;
}
.problem .problem-body{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:680px;
  margin:0 auto;
}
.problem .problem-body p,
.problem .problem-body p:first-child{
  width:100%;
  max-width:680px;
  margin:0;
  font-size:clamp(20px,1.55vw,27px);
  line-height:1.55;
  letter-spacing:-.015em;
  text-align:left;
  text-wrap:balance;
}

@media(max-width:1050px){
  .problem{
    min-height:auto;
  }
  .problem .problem-grid{
    grid-template-columns:1fr;
    gap:52px;
    padding-top:110px;
    padding-bottom:110px;
  }
  .problem .problem-body{
    max-width:760px;
    margin:0;
  }
  .problem .problem-body p,
  .problem .problem-body p:first-child{
    max-width:760px;
  }
}

@media(max-width:680px){
  .problem .problem-grid{
    gap:38px;
    padding-top:90px;
    padding-bottom:90px;
  }
  .problem .problem-body p,
  .problem .problem-body p:first-child{
    font-size:18px;
    line-height:1.65;
    text-wrap:pretty;
  }
}

/* =========================================================
   v8.6 — Problem headline matches adaptation overline treatment
   ========================================================= */
.problem .mega-copy{
  font-family:var(--display);
  font-size:clamp(54px,6vw,96px);
  font-weight:400;
  line-height:.82;
  letter-spacing:-.055em;
  margin:0;
  text-transform:uppercase;
  align-self:center;
  justify-self:start;
  max-width:610px;
}

@media(max-width:680px){
  .problem .mega-copy{
    font-size:52px;
    line-height:.82;
  }
}

/* =========================================================
   v8.8 — Problem section mirrors adaptation section geometry
   ========================================================= */
.problem{
  display:block;
  min-height:0;
  padding:70px 0 130px;
}
.problem .problem-grid{
  width:var(--wrap);
  margin-inline:auto;
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:70px;
  align-items:start;
  padding-top:80px;
  padding-bottom:0;
}
.problem .mega-copy{
  align-self:start;
  justify-self:stretch;
  max-width:none;
  margin:0;
  font-size:clamp(54px,6vw,96px);
  line-height:.82;
}
.problem .problem-body{
  display:block;
  align-self:start;
  justify-self:stretch;
  width:100%;
  max-width:none;
  margin:0;
}
.problem .problem-body p,
.problem .problem-body p:first-child{
  width:100%;
  max-width:none;
  margin:0;
  font-size:clamp(20px,1.55vw,27px);
  line-height:1.55;
  letter-spacing:-.015em;
  text-align:left;
  text-wrap:balance;
}

@media(max-width:1050px){
  .problem .problem-grid{
    grid-template-columns:1fr;
    gap:55px;
    padding-top:55px;
  }
}

@media(max-width:680px){
  .problem{
    padding:55px 0 90px;
  }
  .problem .problem-grid{
    width:var(--wrap);
    gap:38px;
    padding-top:0;
  }
  .problem .mega-copy{
    font-size:52px;
  }
  .problem .problem-body p,
  .problem .problem-body p:first-child{
    font-size:18px;
    line-height:1.65;
  }
}

/* v8.9 — Problem copy aligns with adaptation graph width */
.problem .problem-body p,
.problem .problem-body p:first-child{
  width:100%;
  max-width:none;
  text-align:justify;
  text-align-last:left;
  text-justify:inter-word;
  text-wrap:wrap;
  hyphens:auto;
}
@media(max-width:680px){
  .problem .problem-body p,
  .problem .problem-body p:first-child{
    text-align:left;
    hyphens:none;
  }
}


/* v8.10 — Never hyphenate problem-section copy */
.problem .problem-body p,
.problem .problem-body p:first-child{
  -webkit-hyphens:none !important;
  -ms-hyphens:none !important;
  hyphens:none !important;
  overflow-wrap:normal;
  word-break:normal;
}


/* v8.11 — Restore the larger early-version problem headline scale */
.problem .problem-title{
  font-size:clamp(58px, 5.8vw, 104px) !important;
  line-height:.84 !important;
  letter-spacing:-.055em !important;
  max-width:7.2em;
}

@media(max-width:900px){
  .problem .problem-title{
    font-size:clamp(54px, 9vw, 82px) !important;
    max-width:8em;
  }
}

@media(max-width:680px){
  .problem .problem-title{
    font-size:clamp(48px, 14vw, 72px) !important;
    line-height:.86 !important;
  }
}


/* v8.12 — Correct selector: headline is .mega-copy, not .problem-title.
   Restore the large early-version desktop scale while preserving the mirrored grid. */
@media (min-width: 901px){
  .problem .mega-copy{
    font-size:clamp(82px, 7.2vw, 130px) !important;
    line-height:.82 !important;
    letter-spacing:-.055em !important;
    font-weight:500 !important;
    max-width:none !important;
  }
}

/* v8.13 — Center the right-hand problem copy against the large headline */
@media (min-width: 1051px){
  .problem .problem-grid{
    align-items:center;
  }
  .problem .mega-copy,
  .problem .problem-body{
    align-self:center;
  }
}

/* =========================================================
   v8.14 - Circle labels + TEAM intro alignment
   ========================================================= */

/* Make all three labels more legible and anchor their centres
   directly to the circumference of the circular sim shell. */
.sim-label{
  font-size:12px !important;
  line-height:1;
  letter-spacing:.15em;
  white-space:nowrap;
  color:rgba(255,255,255,.52);
  transform:translate(-50%,-50%);
}

/* Positions are expressed as points on/very near the circle. */
.label-a{
  left:14.6% !important;
  top:14.6% !important;
  right:auto !important;
  bottom:auto !important;
}

.label-b{
  left:95.3% !important;
  top:71.1% !important;
  right:auto !important;
  bottom:auto !important;
}

.label-c{
  left:27% !important;
  top:94.2% !important;
  right:auto !important;
  bottom:auto !important;
}

/* Centre the team description on the same horizontal axis as TEAM. */
.company-intro>p{
  align-self:center;
  margin-top:0 !important;
}

@media(max-width:680px){
  .sim-label{
    font-size:10px !important;
  }
}


/* =========================================================
   v8.15 - Compact funder logos + true TEAM centre alignment
   ========================================================= */
.story-copy .funders-logo-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  gap:30px;
  margin:0 0 46px;
  max-width:760px;
}
.story-copy .funders-logo-row figure{
  margin:0;
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  background:#fff;
  border:1px solid rgba(255,255,255,.1);
}
.story-copy .funders-logo-row figure img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:70px;
  object-fit:contain;
  border:0;
  background:transparent;
}

/* Align the vertical centres of TEAM and its intro copy as one row. */
.company-intro{
  align-items:center !important;
}
.company-intro>p{
  align-self:center !important;
  margin:0 !important;
}

@media(max-width:680px){
  .story-copy .funders-logo-row{
    gap:10px;
    margin-bottom:34px;
  }
  .story-copy .funders-logo-row figure{
    min-height:68px;
    padding:8px;
  }
  .story-copy .funders-logo-row figure img{
    max-height:48px;
  }
  .company-intro{
    align-items:start !important;
  }
}

/* =========================================================
   v8.16 - Consistent update article layout
   ========================================================= */
.story-article{
  max-width:900px !important;
  margin-left:auto;
  margin-right:auto;
}
.story-article h1{
  max-width:100% !important;
  font-size:clamp(46px,5.2vw,76px) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
  margin-bottom:46px !important;
}
.story-copy{
  width:100%;
  max-width:none !important;
  margin:0 !important;
}
.story-copy p,
.story-copy ul,
.story-copy ol,
.story-copy blockquote,
.story-copy figure{
  max-width:100%;
}
.story-copy figure{
  width:100%;
  margin:0 0 38px;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:hidden;
}
.story-copy figure img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  object-fit:contain;
}
.story-copy figure:not(.story-logo-figure) img{
  width:100%;
}
.story-copy .story-logo-figure{
  min-height:0;
  padding:12px 0 8px;
}
.story-copy .story-logo-figure img{
  width:auto !important;
  max-width:min(520px,78%) !important;
  max-height:230px;
}
.story-copy .funders-logo-row{
  width:100%;
  max-width:100% !important;
  margin:0 0 38px !important;
  gap:22px !important;
}
.story-copy .funders-logo-row figure{
  width:auto;
  margin:0 !important;
  min-height:80px !important;
  padding:10px 14px !important;
}
.story-copy .funders-logo-row figure img{
  max-width:100% !important;
  max-height:58px !important;
}
.story-copy p{
  font-size:18px;
  line-height:1.68;
  margin-bottom:28px;
}
.story-back{
  margin-top:48px;
}

@media(max-width:680px){
  .story-article{
    max-width:none !important;
  }
  .story-article h1{
    font-size:clamp(38px,12vw,54px) !important;
    margin-bottom:34px !important;
  }
  .story-copy .story-logo-figure img{
    max-width:min(420px,90%) !important;
    max-height:180px;
  }
  .story-copy .funders-logo-row{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px !important;
  }
  .story-copy .funders-logo-row figure{
    min-height:62px !important;
    padding:7px !important;
  }
  .story-copy .funders-logo-row figure img{
    max-height:42px !important;
  }
}


/* =========================================================
   v8.17 — Justified text for individual update posts
   ========================================================= */
.story-article p,
.story-body p,
.update-article p,
.article-body p,
.story-content p {
  text-align: justify;
  text-align-last: left;
  text-justify: inter-word;
  hyphens: none;
  -webkit-hyphens: none;
  word-break: normal;
  overflow-wrap: normal;
}

@media (max-width: 680px) {
  .story-article p,
  .story-body p,
  .update-article p,
  .article-body p,
  .story-content p {
    text-align: left;
  }
}


/* =========================================================
   v8.18 — Align How It Works copy with the site content grid
   ========================================================= */
.story .system-story-copy{
  width:min(1180px, calc(100% - 48px));
  margin-inline:auto;
  box-sizing:border-box;
}

.story .story-step{
  margin-left:0 !important;
}

@media (max-width: 680px){
  .story .system-story-copy{
    width:min(100% - 28px, 1180px);
  }
}


/* =========================================================
   v8.18 — Privacy page
   ========================================================= */
.privacy-page{
  padding:140px 0 100px;
}

.privacy-wrap{
  display:flex;
  justify-content:center;
}

.privacy-content{
  width:min(860px, 100%);
}

.privacy-content h1{
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(52px, 7vw, 92px);
  line-height:.95;
  letter-spacing:-.045em;
  margin:0 0 42px;
  font-weight:500;
}

.privacy-content h2{
  font-family:"Space Grotesk", sans-serif;
  font-size:clamp(26px, 3vw, 38px);
  line-height:1.08;
  letter-spacing:-.025em;
  margin:54px 0 18px;
  font-weight:500;
}

.privacy-content h3{
  font-size:20px;
  margin:30px 0 12px;
  font-weight:600;
}

.privacy-content p,
.privacy-content li{
  font-size:18px;
  line-height:1.7;
}

.privacy-content p{
  margin:0 0 20px;
}

.privacy-content ul{
  margin:0 0 24px 1.2em;
  padding:0;
}

.privacy-content li{
  margin:6px 0;
}

.privacy-content a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:3px;
}

@media(max-width:680px){
  .privacy-page{
    padding:110px 0 72px;
  }

  .privacy-content p,
  .privacy-content li{
    font-size:16px;
    line-height:1.65;
  }
}

/* =========================================================
   v8.19 — Hard-align How It Works copy to the global site gutter
   ========================================================= */
#how-it-works .system-story-copy{
  width:100vw !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box;
}

#how-it-works .system-story-copy .story-step{
  left:calc((100vw - var(--wrap)) / 2) !important;
  margin-left:0 !important;
}

@media(max-width:680px){
  #how-it-works .system-story-copy .story-step{
    left:calc((100vw - var(--wrap)) / 2) !important;
  }
}
