@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;350;400;450;500;550;600;650;700&family=Manrope:wght@300;350;400;500;600;650;700;750&display=swap');
:root{--paper:#faf7f0;--ink:#18242a;--orange:#c66c2b;--muted:#62696a;--line:#deded5;--dark:#17292d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',sans-serif;font-size:17px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #d07939;outline-offset:5px}.skip{position:absolute;top:-100px;background:white;padding:10px;z-index:30}.skip:focus{top:0}header{height:94px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd8cf;background:#faf7f0f5;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-weight:750;font-size:27px;letter-spacing:-1px}.brand img{width:38px;height:38px;object-fit:contain}nav{display:flex;align-items:center;gap:35px;font-size:14px;font-weight:550}.nav-cta{border:1px solid #b8b7ae;padding:10px 22px;border-radius:3px}nav a:hover,.plain-link:hover{color:var(--orange)}.menu{display:none}.hero{position:relative;min-height:690px;overflow:hidden;padding:116px 5.5% 85px}.hero-art{position:absolute;inset:0;background:linear-gradient(90deg,#faf7f0 5%,#faf7f0dd 35%,#faf7f000 67%),url('hero.png') center right/cover no-repeat;z-index:0}.hero-copy{position:relative;max-width:720px;z-index:1}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2.3px;color:var(--orange);margin:0 0 27px}h1,h2,h3{font-family:Manrope,sans-serif;font-weight:500;line-height:1.12;margin:0;letter-spacing:-2px}h1{font-size:clamp(48px,5.1vw,78px);line-height:1.08}em{font-style:normal;color:var(--orange)}.lede{max-width:540px;font-size:19px;line-height:1.7;color:#535d60;margin:29px 0}.actions{display:flex;gap:28px;align-items:center;margin-top:34px;font-size:14px}.button{background:var(--ink);color:white;padding:15px 24px;border-radius:3px}.button:hover{background:#35494e}.plain-link{border-bottom:1px solid #aaa;padding-bottom:3px}.hero-bottom{position:absolute;bottom:31px;display:flex;align-items:center;gap:18px;font-size:11px;font-weight:600;letter-spacing:1.7px}.hero-bottom i{width:4px;height:4px;background:var(--orange);border-radius:50%}.clients{display:flex;align-items:center;gap:55px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 5.5%;background:#f4f1ea}.clients p{font-size:10px;letter-spacing:1.5px;color:#747776}.clients span{font-family:Manrope,sans-serif;font-size:21px;font-weight:650}.clients .client-note{margin-left:auto;letter-spacing:0;font-size:13px}.section{padding:110px 7%}.section-top{display:flex;justify-content:space-between;gap:70px;align-items:flex-end;margin-bottom:58px}h2{font-size:clamp(35px,3.5vw,52px);letter-spacing:-1.7px}.section-top>p{max-width:370px;color:var(--muted);margin:0;font-size:16px}.capabilities{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}.capabilities article{padding:30px 25px 5px;border-right:1px solid var(--line)}.capabilities article:first-child{padding-left:0}.capabilities article:last-child{border:0;padding-right:0}.number{font-size:13px;color:var(--orange);display:block;margin-bottom:36px}.capabilities h3{font-size:24px;letter-spacing:-.8px;min-height:56px;line-height:1.2}.capabilities p{font-size:15px;color:var(--muted);line-height:1.8;margin:22px 0 25px}.terms{font-size:12px;color:#666e70;border-top:1px solid var(--line);padding-top:18px;line-height:1.7}.approach{background:var(--dark);color:#f3f5f0;padding:94px 7%;display:grid;grid-template-columns:1fr 1.2fr;gap:90px}.approach .eyebrow{color:#e7a970}.approach-intro>p:not(.eyebrow){color:#bac7c7;max-width:410px;font-size:16px;margin-top:25px}.approach-intro .approach-note{font-size:12px!important;margin-top:44px!important}.layers{border:1px solid #486063;border-radius:5px;align-self:center}.layer-buttons{display:flex;border-bottom:1px solid #486063}.layer-buttons button{flex:1;border:0;border-right:1px solid #486063;background:transparent;color:#b5c3c4;padding:19px 10px;font-size:14px}.layer-buttons button:last-child{border-right:0}.layer-buttons button[aria-selected=true]{background:#2c4245;color:white}.layer-buttons span{color:#d5a77e;margin-right:10px;font-size:11px}#layer-panel{padding:40px;min-height:290px}.panel-kicker{font-size:10px;letter-spacing:1.8px;color:#b2c4c5}#layer-panel h3{font-size:29px;margin-top:20px;letter-spacing:-.7px}#layer-panel p{color:#c3cecd;font-size:15px;line-height:1.8}.panel-tags{display:flex;gap:10px;flex-wrap:wrap}.panel-tags span{border:1px solid #4c6465;font-size:11px;padding:4px 9px;border-radius:3px}.work-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px;background:#eeeae0;padding:55px}.work-title h3{font-size:33px;letter-spacing:-1px}.work-title>p:not(.eyebrow){font-size:16px;color:#616867}.work-foot{font-size:13px!important;border-top:1px solid #d4d3c9;padding-top:20px;margin-top:27px}.workflow>p{font-size:10px;letter-spacing:2px;color:#6c736f}.workflow>div{display:grid;grid-template-columns:35px 1fr;padding:21px 0;border-top:1px solid #cecec4}.workflow span{grid-row:span 2;font-size:12px;color:var(--orange)}.workflow strong{font-size:17px;font-weight:500}.workflow small{font-size:13px;color:#646e6b}.research{padding:70px 7%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:90px;background:#e9eeeb}.research h2{font-size:39px}.research p:not(.eyebrow){font-size:16px;color:#576762;margin-top:0}.research-label{font-size:10px;letter-spacing:1.5px;border:1px solid #aabdb3;padding:6px 10px;display:inline-block}.contact{text-align:center;padding:110px 24px;background:radial-gradient(ellipse at bottom,#f1dfc5,transparent 70%)}.contact h2{font-size:58px}.contact>a{display:inline-block;font-size:23px;border-bottom:1px solid #9e8c74;margin:30px 0 12px}.contact>p:last-child{font-size:14px;color:var(--muted)}footer{display:flex;justify-content:space-between;align-items:center;padding:32px 5.5%;border-top:1px solid var(--line);font-size:12px;color:#687170}footer .brand{font-size:23px;color:var(--ink)}footer img{width:30px!important;height:30px!important}@media(min-width:1600px){header,.hero,.clients,footer{padding-left:calc((100vw - 1440px)/2);padding-right:calc((100vw - 1440px)/2)}}@media(max-width:1000px){.hero{min-height:650px;padding-top:95px}.hero-art{opacity:.65;background-position:65% center}.hero-copy{max-width:600px}.capabilities{grid-template-columns:repeat(2,1fr);gap:30px}.capabilities article{padding:25px 0!important;border-right:0}.section{padding:75px 6%}.approach{gap:35px;padding:70px 6%}.clients{gap:28px}.client-note{display:none}.work-layout{gap:35px;padding:35px}.research{gap:40px}.section-top{gap:35px}}@media(max-width:650px){header{height:76px}.brand{font-size:24px}.menu{display:block;border:1px solid #c6c2b8;background:transparent;font-size:13px;padding:7px 12px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:24px;box-shadow:0 10px 15px #18242a12;flex-direction:column;align-items:flex-start;gap:22px}nav.open{display:flex}.hero{padding:65px 6% 60px;min-height:720px}.hero-copy{max-width:100%}.hero-art{background-position:72% bottom;background-size:auto 70%;opacity:.34}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(var(--paper) 0%,#faf7f0dd 40%,transparent 80%)}h1{font-size:49px}.eyebrow{font-size:10px;letter-spacing:1.5px}.lede{font-size:17px}.actions{gap:20px;font-size:12px;flex-wrap:wrap}.hero-bottom{font-size:8px;gap:9px;letter-spacing:.7px}.clients{padding:22px 6%;flex-wrap:wrap;gap:12px 25px}.clients p{width:100%;margin:0}.clients span{font-size:17px}.section-top{display:block}.section-top>p{margin-top:26px}.section{padding:65px 6%}.capabilities{grid-template-columns:1fr;gap:0}.capabilities article{border-bottom:1px solid var(--line);padding:28px 0!important}.capabilities h3{min-height:0}.number{margin-bottom:15px}.capabilities p{margin:16px 0}.approach,.research{grid-template-columns:1fr;padding:65px 6%;gap:35px}.approach-note{display:none}#layer-panel{padding:25px;min-height:310px}.layer-buttons button{font-size:12px}.layer-buttons span{margin-right:4px}.work-layout{grid-template-columns:1fr;padding:27px;gap:25px}.work-title h3{font-size:28px}.research h2{font-size:35px}.contact{padding:75px 6%}.contact h2{font-size:43px}.contact>a{font-size:21px}footer{flex-wrap:wrap;gap:20px}footer>span{order:3;width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Five-scene AI identity */
body{--paper:#faf8f3;--ink:#18242a;--orange:#b85a21;--muted:#596569;--line:#d9dedb;transition:background-color 1.5s,color 1.5s}body[data-scene="1"] header,body[data-scene="1"] .hero{--paper:#f0f6fa;--ink:#182c40;--orange:#27649b;--muted:#526677;--line:#cfdae4}body[data-scene="2"] header,body[data-scene="2"] .hero{--paper:#101d30;--ink:#edf4ff;--orange:#9fbaf5;--muted:#afbed2;--line:#34465c}body[data-scene="3"] header,body[data-scene="3"] .hero{--paper:#102c2d;--ink:#edf7f2;--orange:#a0d7bc;--muted:#b2c9c1;--line:#365655}body[data-scene="4"] header,body[data-scene="4"] .hero{--paper:#f2f5f8;--ink:#172d42;--orange:#2e5bcc;--muted:#596b7b;--line:#d4dde7}header{background:var(--paper);border-color:var(--line);transition:background 1.5s,color 1.5s}.hero{min-height:710px;padding-top:110px}.hero-scenes,.hero-scene,.hero-shade{position:absolute;inset:0}.hero-scene{opacity:0;background-size:cover;background-position:center right;transform:scale(1.025);transition:opacity 1.6s ease,transform 9s linear}.hero-scene.active{opacity:1;transform:scale(1)}.hero-shade{background:linear-gradient(90deg,var(--paper) 2%,var(--paper) 28%,transparent 83%);transition:background 1.5s;opacity:.96}.hero-copy{max-width:730px}.hero h1{font-size:clamp(46px,5vw,76px);letter-spacing:-3px}.hero-copy .lede{color:var(--muted);max-width:490px}.hero-copy.changing{opacity:0;transform:translateY(8px)}.hero-copy{transition:opacity .35s,transform .35s}.hero-bottom{left:5.5%;right:5.5%;justify-content:space-between;color:var(--ink)}.hero-state{display:flex;align-items:center;gap:24px}.hero-state button{color:var(--ink);border:1px solid var(--line);background:var(--paper);padding:5px 12px;font-size:11px;letter-spacing:.4px;border-radius:3px}.button{background:var(--ink);color:var(--paper)}.clients{background:var(--paper);transition:background 1.5s}.clients p,.section-top>p,.capabilities p,.terms{color:var(--muted)}.work-layout{background:color-mix(in srgb,var(--paper) 93%,var(--ink))}.work-title>p:not(.eyebrow),.workflow small,.workflow>p{color:var(--muted)}.research{background:color-mix(in srgb,var(--paper) 90%,var(--orange))}.research p:not(.eyebrow){color:var(--muted)}.contact{background:radial-gradient(ellipse at bottom,color-mix(in srgb,var(--orange) 12%,var(--paper)),var(--paper) 75%)}footer{color:var(--muted)}header .brand .logo-dark{display:none}body[data-scene="2"] header .logo-light,body[data-scene="3"] header .logo-light{display:none}body[data-scene="2"] header .logo-dark,body[data-scene="3"] header .logo-dark{display:block}.approach{background:#112a31}.layer-buttons button[aria-selected=true]{position:relative}.layer-buttons button[aria-selected=true]:after{content:'';position:absolute;bottom:0;left:0;height:2px;width:100%;background:#e5ad76;animation:layer-progress 7s linear}.motion-paused .layer-buttons button:after{animation-play-state:paused}#layer-panel{transition:opacity .3s,transform .3s}#layer-panel.fading{opacity:0;transform:translateY(6px)}.capabilities article{transition:opacity .7s,background .7s}.capabilities article.active-capability{background:color-mix(in srgb,var(--orange) 6%,transparent)}@keyframes layer-progress{from{width:0}to{width:100%}}@media(max-width:1000px){.hero-shade{background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 94%,transparent) 36%,color-mix(in srgb,var(--paper) 15%,transparent) 100%)}}@media(max-width:650px){.hero{min-height:740px;padding-top:70px}.hero h1{font-size:47px;letter-spacing:-2px}.hero-scene{background-position:65% center}.hero-shade{background:linear-gradient(180deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 95%,transparent) 42%,color-mix(in srgb,var(--paper) 35%,transparent) 80%,var(--paper) 100%)}.hero-bottom{align-items:flex-end;font-size:8px;gap:16px}.hero-state{gap:10px}.hero-bottom>span{max-width:180px}.hero-copy .lede{font-size:17px}.capabilities article{padding-left:12px!important;padding-right:12px!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.hero-scene{transform:none}}

/* Scene palettes stay within the header and hero. */
header,.hero{color:var(--ink)}header .brand img{background:transparent}header .menu{color:var(--ink)}
/* Room to read: contextual chapters and a persistent section index. */
.section,.approach,.research{padding-left:max(8%,calc((100vw - 1280px)/2));padding-right:max(8%,calc((100vw - 1280px)/2))}.chapter-section{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.25fr);gap:clamp(55px,7vw,120px);align-items:start}.chapter-intro{position:sticky;top:65px}.chapter-intro h2{font-size:clamp(34px,3.1vw,48px)}.chapter-intro>p:not(.eyebrow){color:var(--muted);font-size:16px;max-width:360px;margin:28px 0}.chapter-nav{display:flex;flex-direction:column;align-items:stretch;gap:0;margin-top:35px}.chapter-nav a{padding:15px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}.chapter-nav span{display:inline-block;width:35px;color:var(--orange);font-size:11px}.chapter-nav .current{color:var(--ink);font-weight:700}.chapter{padding:14px 0 68px;margin-bottom:68px;border-bottom:1px solid var(--line);scroll-margin-top:70px}.chapter:last-child{margin-bottom:0;padding-bottom:0;border:0}.chapter h3{font-size:clamp(29px,2.8vw,40px);letter-spacing:-1.2px;max-width:550px}.chapter-lede{color:var(--muted);margin:26px 0 32px;font-size:17px}.chapter dl{margin:0}.chapter dl>div{padding:21px 0;border-top:1px solid var(--line)}dt{font-weight:600;font-size:15px}dd{margin:7px 0 0;color:var(--muted);font-size:15px;line-height:1.8}.chapter aside{padding:24px 28px;background:#f0ece3;margin-top:24px;border-left:2px solid var(--orange)}.chapter aside>span{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.chapter aside p{margin:10px 0 0;font-size:15px;color:var(--muted)}.approach{grid-template-columns:.85fr 1.25fr;gap:clamp(45px,7vw,100px);align-items:start}.approach-intro{position:sticky;top:65px}.approach-detail{min-width:0}.layer-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.layer-detail-list dt{color:#eef4f2;font-size:14px}.layer-detail-list dd{color:#b8cccb;font-size:14px}#layer-panel{min-height:465px}.system-example{margin-top:28px;border-left:1px solid #4c6465;padding:10px 0 10px 28px}.system-example p{font-size:14px;color:#b8cccb}.system-example strong{color:#f3f5f0;font-weight:500}.system-example small{display:block;font-size:12px;color:#e7b98f;margin-top:25px}.work-layout{gap:clamp(40px,6vw,90px);padding:clamp(30px,4vw,60px);align-items:start;grid-template-columns:.85fr 1.15fr}.work-title{position:sticky;top:65px}.work-stages article{padding:26px 0 38px;border-top:1px solid #cccfc7}.work-stages article:last-child{padding-bottom:0}.work-stages .number{font-size:10px;letter-spacing:1.4px;margin-bottom:20px}.work-stages h3{font-size:25px;letter-spacing:-.7px}.work-stages p{font-size:15px;color:var(--muted);line-height:1.85;margin:20px 0}.work-stages .terms{font-size:11px}.work .section-top{align-items:start}.work .section-top>p{padding-top:45px}
@media(max-width:900px){.chapter-section,.approach{grid-template-columns:1fr;gap:45px}.chapter-intro,.approach-intro,.work-title{position:static}.chapter-intro h2 br{display:none}.chapter-intro>p:not(.eyebrow){max-width:600px}.chapter-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.chapter{padding-bottom:45px;margin-bottom:45px}.work-layout{grid-template-columns:1fr}.work .section-top{display:block}.work .section-top>p{padding-top:0;margin-top:25px}#layer-panel{min-height:430px}}
@media(max-width:650px){.section,.approach,.research{padding-left:7%;padding-right:7%}.chapter-nav{position:static;box-shadow:none;background:none;padding:0}.chapter-nav a{font-size:12px}.chapter-nav span{width:25px}.chapter h3{font-size:31px}.chapter aside{padding:20px}.layer-detail-list{grid-template-columns:1fr;gap:18px}#layer-panel{min-height:550px}.work-layout{padding:25px}.system-example{padding-left:20px}.chapter-intro h2{font-size:37px}}
/* Semantic hero illustrations: information and control, rather than hardware. */
.diagram-scene{transform:none!important;display:flex;align-items:center;justify-content:flex-end;padding:45px 6%;background:radial-gradient(ellipse at 80% 40%,color-mix(in srgb,var(--orange) 12%,var(--paper)),var(--paper) 70%)}.semantic-visual{width:39%;max-width:560px;color:var(--ink);font-size:14px;position:relative}.visual-caption{font-size:10px;letter-spacing:2px;margin-bottom:28px;color:var(--orange)}.source-row,.output-row{display:flex;gap:10px;justify-content:center}.source-row>span,.output-row>span{padding:12px 15px;border:1px solid var(--line);border-radius:5px;background:color-mix(in srgb,var(--paper) 90%,var(--orange));font-size:12px;text-align:center;flex:1}.flow-stem{height:31px;width:1px;background:var(--orange);margin:auto;position:relative;opacity:.7}.flow-stem:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--orange);left:-2px;animation:record-flow 3s linear infinite}.visual-module,.proposal-card{padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 18px 50px #00000010}.visual-module small,.proposal-card>small,.tool-scope>small{font-size:9px;letter-spacing:1.7px;color:var(--orange)}.semantic-visual h3{font-size:24px;letter-spacing:-.7px;margin:12px 0 22px}.record-field{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:12px 0;font-size:12px}.record-field>span{color:var(--muted)}.record-field b{font-weight:500}.visual-footnote{text-align:center;color:var(--muted);font-size:11px;margin:19px 0 0}.agent-cycle{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:28px 0}.agent-cycle span{padding:12px;border:1px solid var(--line);border-radius:4px;font-size:12px}.agent-cycle i{font-style:normal;color:var(--orange)}.tool-scope{border-top:1px solid var(--line);padding-top:20px}.tool-scope>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tool-scope span{font-size:10px;padding:6px 10px;background:color-mix(in srgb,var(--orange) 10%,var(--paper));border-radius:3px}.proposal-card h3{margin-bottom:0}.check-stack{border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}.check-stack>div{display:flex;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.check-stack>div:last-child{border:0}.check-mark{font-size:11px;color:var(--orange);padding-top:4px}.check-stack b{font-weight:500;font-size:14px}.check-stack small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.hero:has(.diagram-scene.active) .hero-shade{display:none}.hero:has(.diagram-scene.active) .hero-copy{max-width:49%}.hero:has(.diagram-scene.active) h1{font-size:clamp(43px,4.4vw,67px)}.active .check-stack>div{animation:check-pulse 6s infinite}.active .check-stack>div:nth-child(2){animation-delay:2s}.active .check-stack>div:nth-child(3){animation-delay:4s}.motion-paused .semantic-visual *{animation-play-state:paused!important}@keyframes record-flow{from{top:0;opacity:0}30%{opacity:1}to{top:27px;opacity:0}}@keyframes check-pulse{0%,30%,100%{background:transparent}10%,20%{background:color-mix(in srgb,var(--orange) 12%,transparent)}}
@media(max-width:1000px){.semantic-visual{width:43%}.diagram-scene{padding:35px 4%}.hero:has(.diagram-scene.active) .hero-copy{max-width:48%}.hero:has(.diagram-scene.active) h1{font-size:42px}.hero:has(.diagram-scene.active) .lede{font-size:16px}.source-row>span,.output-row>span{padding:10px 6px;font-size:10px}.visual-module{padding:20px}.semantic-visual h3{font-size:21px}.agent-cycle span{padding:8px;font-size:10px}}
@media(max-width:650px){.hero:has(.diagram-scene.active){min-height:1120px}.hero:has(.diagram-scene.active) .hero-copy{max-width:100%}.hero:has(.diagram-scene.active) h1{font-size:43px}.diagram-scene{align-items:flex-end;padding:0 7% 115px}.semantic-visual{width:100%;max-width:none}.visual-caption{margin-bottom:18px}.hero:has(.diagram-scene.active) .hero-bottom{bottom:25px}.semantic-visual h3{font-size:22px}.record-field{padding:9px 0}}
@media(max-width:650px){.hero{min-height:1120px}}
/* Three distinct visual grammars: map, workspace, decision sequence. */
.data-visual{height:490px}.data-visual .visual-caption{position:absolute;top:0;left:0}.data-visual .source-row{position:absolute;left:0;top:80px;width:28%;flex-direction:column;gap:35px}.data-visual .source-row>span{position:relative;padding:14px 8px;background:#e3edf5}.data-visual .source-row>span:after{content:'';position:absolute;left:100%;top:50%;width:36px;border-top:1px dashed var(--orange)}.data-visual .visual-module{position:absolute;right:0;top:60px;width:65%;border-top:3px solid var(--orange);border-radius:2px;padding:22px 18px}.data-visual .record-field{display:block}.data-visual .record-field b{display:block;margin-top:4px}.data-visual .flow-stem{display:none}.data-visual .output-row{position:absolute;bottom:42px;right:0;width:65%;gap:4px}.data-visual .output-row>span{border:0;border-bottom:2px solid #8fb4cf;background:transparent;padding:8px 3px;font-size:10px}.data-visual .visual-footnote{position:absolute;bottom:0;right:0;width:65%}.data-visual h3{font-size:21px}
.agent-visual{height:500px;border:1px solid #384b66;border-radius:50%;background:radial-gradient(circle,#263753 0%,#15243b 45%,transparent 69%)}.agent-visual .visual-caption{position:absolute;top:-25px;width:100%;text-align:center;font-size:9px}.agent-visual .source-row{position:absolute;top:27px;left:12%;width:76%;gap:30px}.agent-visual .source-row>span{border-radius:25px;background:#192b45;padding:10px}.agent-visual .flow-stem{display:none}.agent-visual .visual-module{position:absolute;inset:100px 14% 110px;padding:30px 12px;background:#1e304d;border:1px solid #587197;border-radius:50%;box-shadow:0 0 65px #6c94e91c;text-align:center}.agent-visual h3{font-size:21px;max-width:180px;margin:12px auto}.agent-visual .agent-cycle{gap:3px;justify-content:center;margin-top:20px}.agent-visual .agent-cycle span{border:0;padding:7px 3px;font-size:11px}.agent-visual .tool-scope{position:absolute;top:240px;left:-17%;width:134%;border:0;padding:0}.agent-visual .tool-scope>small{display:none}.agent-visual .tool-scope>div{justify-content:space-between;flex-wrap:nowrap;gap:8px}.agent-visual .tool-scope span{background:#253b5c;border:1px solid #52688c;border-radius:20px;padding:12px 10px;font-size:10px}.agent-visual .output-row{position:absolute;bottom:32px;width:70%;left:15%}.agent-visual .output-row>span{padding:5px;border:0;background:transparent;font-size:10px;color:#acbfdc}.agent-visual .visual-footnote{position:absolute;bottom:-35px;width:100%}
.governance-visual{height:490px;padding-left:30px;border-left:1px solid #52746a}.governance-visual .visual-caption{font-size:9px;margin-bottom:25px}.governance-visual .proposal-card{padding:0 0 20px;background:none;border:0;box-shadow:none;border-radius:0}.governance-visual .proposal-card h3{font-size:27px;margin-top:7px}.governance-visual .proposal-card>small{color:#aec9bd}.governance-visual .flow-stem{display:none}.governance-visual .check-stack{border:0;background:none;overflow:visible}.governance-visual .check-stack>div{padding:18px 0;position:relative;border-bottom:1px solid #365655;background:none!important}.governance-visual .check-mark{position:absolute;left:-46px;top:20px;width:30px;height:30px;border:1px solid #80b89e;border-radius:50%;background:#102c2d;text-align:center;padding:5px;font-size:10px}.governance-visual .check-stack b{font-size:18px}.governance-visual .check-stack small{font-size:12px}.governance-visual .output-row{margin-top:22px;justify-content:flex-start;gap:15px}.governance-visual .output-row>span{flex:none;border:0;border-radius:0;background:#a0d7bc;color:#102c2d;padding:9px 12px;font-size:11px}.governance-visual .output-row>span:last-child{background:none;color:#a0d7bc;border-bottom:1px solid #52746a}.governance-visual .visual-footnote{text-align:left;font-size:11px}.diagram-scene{transition:opacity .55s ease}.diagram-scene:not(.active){visibility:hidden}
@media(max-width:1000px){.agent-visual{height:430px}.agent-visual .visual-module{inset:95px 9% 90px}.agent-visual .tool-scope{top:200px;left:-8%;width:116%}.agent-visual .tool-scope span{padding:10px 6px;font-size:9px}.agent-visual h3{font-size:20px}.data-visual .visual-module{padding:18px 13px}.data-visual .source-row>span{font-size:9px}.governance-visual .proposal-card h3{font-size:24px}}
@media(max-width:650px){.data-visual{height:470px}.agent-visual{height:420px;margin-bottom:30px}.governance-visual{height:470px}.agent-visual .visual-caption{font-size:8px}.data-visual .source-row>span:after{width:22px}}

/* Each scene retains its own palette while its entire composition dissolves. */
.hero-scene[data-scene="0"]{--paper:#faf8f3;--ink:#18242a;--orange:#b85a21;--muted:#596569;--line:#d9dedb}
.hero-scene[data-scene="1"]{--paper:#f0f6fa;--ink:#182c40;--orange:#27649b;--muted:#526677;--line:#cfdae4}
.hero-scene[data-scene="2"]{--paper:#101d30;--ink:#edf4ff;--orange:#9fbaf5;--muted:#afbed2;--line:#34465c}
.hero-scene[data-scene="3"]{--paper:#102c2d;--ink:#edf7f2;--orange:#a0d7bc;--muted:#b2c9c1;--line:#365655}
.hero-scene[data-scene="4"]{--paper:#f2f5f8;--ink:#172d42;--orange:#2e5bcc;--muted:#596b7b;--line:#d4dde7}
.hero-scene,.diagram-scene{transition:opacity 1.8s cubic-bezier(.4,0,.2,1);transform:none;pointer-events:none}
.diagram-scene:not(.active){visibility:visible}
.hero-shade{display:none!important}
.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 2%,var(--paper) 28%,transparent 83%);opacity:.96}
header,header a,header .menu,.hero,.hero-bottom,.hero-state button,.hero .button,.hero em,.hero .eyebrow,.hero .lede{transition:background-color 1.8s ease,color 1.8s ease,border-color 1.8s ease}
header .brand{position:relative}header .brand .logo-dark{display:block!important;position:absolute;left:0;opacity:0;transition:opacity 1.8s ease}header .brand .logo-light{display:block!important;opacity:1;transition:opacity 1.8s ease}body[data-scene="2"] header .logo-dark,body[data-scene="3"] header .logo-dark{opacity:1}body[data-scene="2"] header .logo-light,body[data-scene="3"] header .logo-light{opacity:0}
.hero .hero-copy,.hero:has(.diagram-scene.active) .hero-copy{max-width:49%;transition:opacity .6s ease;transform:none}
.hero h1,.hero:has(.diagram-scene.active) h1{font-size:clamp(43px,4.4vw,67px)}
.hero-copy.changing{opacity:0;transform:none}
@media(max-width:1000px){.scene-shade{background:linear-gradient(90deg,var(--paper) 0%,color-mix(in srgb,var(--paper) 94%,transparent) 36%,color-mix(in srgb,var(--paper) 15%,transparent) 100%)}.hero .hero-copy,.hero:has(.diagram-scene.active) .hero-copy{max-width:48%}.hero h1,.hero:has(.diagram-scene.active) h1{font-size:42px}.hero .lede,.hero:has(.diagram-scene.active) .lede{font-size:16px}}
@media(max-width:650px){.hero .hero-copy,.hero:has(.diagram-scene.active) .hero-copy{max-width:100%}.hero h1,.hero:has(.diagram-scene.active) h1{font-size:43px}.scene-shade{background:linear-gradient(180deg,var(--paper),color-mix(in srgb,var(--paper) 95%,transparent) 42%,color-mix(in srgb,var(--paper) 35%,transparent) 80%,var(--paper))}.hero-bottom{bottom:25px}}

/* Persist the actions; dissolve only the text that changes. */
.hero .hero-copy,.hero .hero-copy.changing{opacity:1;transform:none;transition:none}
#hero-label,#hero-title,#hero-description{transition:opacity .45s ease,color 1.8s ease}
.hero-copy.changing #hero-label,.hero-copy.changing #hero-title,.hero-copy.changing #hero-description{opacity:0}
.hero .hero-copy{display:grid;grid-template-rows:54px 225px 145px auto;align-content:start}
.hero-copy .eyebrow{margin:0}.hero-copy .lede{margin:20px 0 0}.hero-copy .actions{margin-top:24px;align-self:start}
@media(max-width:1000px){.hero .hero-copy{grid-template-rows:50px 165px 155px auto}}
@media(max-width:650px){.hero .hero-copy{grid-template-rows:45px 165px 145px auto}}
/* Flow-based diagrams keep labels clear at every width. */
.data-visual{height:auto;display:grid;grid-template-columns:28% minmax(0,1fr);column-gap:7%;row-gap:20px;align-items:center}
.data-visual .visual-caption{position:static;grid-column:1/-1;margin:0 0 8px}
.data-visual .source-row{position:static;width:auto;grid-column:1;grid-row:2;gap:28px}
.data-visual .visual-module{position:static;width:auto;grid-column:2;grid-row:2;padding:22px 18px}
.data-visual .source-row>span:after{width:28px}
.data-visual .output-row{position:static;width:auto;grid-column:2;grid-row:3;margin:0}
.data-visual .visual-footnote{position:static;width:auto;grid-column:2;grid-row:4;margin:0}
.data-visual .record-field{padding:9px 0}.data-visual .record-field:last-child{padding-bottom:0}
.agent-visual{height:auto;border:0;border-radius:0;background:none;display:flex;flex-direction:column;gap:22px;text-align:center}
.agent-visual .visual-caption{position:static;width:auto;margin:0;font-size:9px}
.agent-visual .source-row{position:static;width:auto;margin:0 8%;gap:15px}
.agent-visual .visual-module{position:static;inset:auto;border-radius:28px;padding:28px 20px;background:radial-gradient(ellipse at center,#263b5b,#182940);box-shadow:0 12px 40px #00000012}
.agent-visual h3{max-width:none;margin:12px auto 24px;font-size:22px}
.agent-visual .agent-cycle{margin:0 0 24px;gap:10px;flex-wrap:wrap}
.agent-visual .agent-cycle span{padding:8px 4px}
.agent-visual .tool-scope{position:static;width:auto;border-top:1px solid #384b66;padding-top:20px}
.agent-visual .tool-scope>small{display:block}
.agent-visual .tool-scope>div{justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}
.agent-visual .tool-scope span{padding:9px 12px;font-size:10px}
.agent-visual .output-row{position:static;width:auto;margin:0 8%;gap:20px}
.agent-visual .visual-footnote{position:static;width:auto;margin:0;font-size:11px}
@media(max-width:650px){.data-visual{height:auto;row-gap:16px}.agent-visual{height:auto;margin-bottom:0}.data-visual .visual-module{padding:18px 14px}.data-visual .source-row>span:after{width:22px}.agent-visual .visual-module{padding:25px 16px}}

.app-image-scene{display:flex;align-items:center;justify-content:flex-end;padding:45px 4%;background:var(--paper)}
.app-image-scene img{display:block;width:46%;height:auto;border:1px solid var(--line);border-radius:12px;box-shadow:0 30px 70px #00000020}
@media(max-width:650px){.app-image-scene{align-items:flex-end;padding:0 7% 160px}.app-image-scene img{width:100%;border-radius:8px}}

/* Interface imagery shares the full-bleed composition of the photo scenes. */
.app-image-scene{display:block;padding:0;background-color:var(--paper);background-size:auto 100%;background-repeat:no-repeat;background-position:right center}
.app-image-scene .scene-shade{opacity:1;background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 31%,color-mix(in srgb,var(--paper) 97%,transparent) 40%,color-mix(in srgb,var(--paper) 78%,transparent) 49%,color-mix(in srgb,var(--paper) 22%,transparent) 65%,transparent 83%)}
@media(max-width:650px){.app-image-scene{background-size:auto 62%;background-position:65% bottom;padding:0}.app-image-scene .scene-shade{background:linear-gradient(180deg,var(--paper) 0%,var(--paper) 37%,color-mix(in srgb,var(--paper) 90%,transparent) 48%,color-mix(in srgb,var(--paper) 10%,transparent) 73%,var(--paper) 100%)}}

/* Lighter typography throughout the site. */
body{font-weight:300}
h1,h2,h3,h4,h5,h6,.brand,footer .brand{font-weight:300}
p,a,button,nav,.eyebrow,.number,.terms,.panel-kicker,.panel-tags,.research-label,.hero-bottom,.chapter-nav a,.chapter-nav .current,.chapter aside>span,dt,strong,b{font-weight:300}


/* Independent image layers pan while copy and gradients stay fixed. */
.hero .hero-scene{background-image:none!important}
.hero-scene[data-scene="0"]{--scene-image:url('ai-01.png')}
.hero-scene[data-scene="1"]{--scene-image:url('context-map.png')}
.hero-scene[data-scene="2"]{--scene-image:url('agent-layers.png')}
.hero-scene[data-scene="3"]{--scene-image:url('execution-console.png')}
.hero-scene[data-scene="4"]{--scene-image:url('robotics-simulation.png')}
.hero .hero-scene:before{content:'';position:absolute;inset:-6%;background-image:var(--scene-image);background-size:cover;background-position:center;transform:translate(var(--pan-x-start,-3%),var(--pan-y-start,-3%));will-change:transform}
.hero .hero-scene:before,.hero .hero-scene.active:before{animation:hero-image-pan 10.8s linear infinite alternate}
.hero .hero-scene .scene-shade{z-index:1}
@keyframes hero-image-pan{from{transform:translate(var(--pan-x-start,-3%),var(--pan-y-start,-3%))}to{transform:translate(var(--pan-x-end,3%),var(--pan-y-end,3%))}}
@media(prefers-reduced-motion:reduce){.hero .hero-scene:before,.hero .hero-scene.active:before{animation:none;transform:none}}

body[data-scene="4"] header,body[data-scene="4"] .hero,.hero-scene[data-scene="4"]{--paper:#202b36;--ink:#edf3f7;--orange:#adc7ee;--muted:#bdcbd5;--line:#435261}body[data-scene="4"] header .logo-dark{opacity:1}body[data-scene="4"] header .logo-light{opacity:0}

/* Fixed per-slide direction; outgoing motion retains its position while fading. */
.hero .hero-scene:before,.hero .hero-scene.active:before{animation:none}
.hero .hero-scene.pan-started:before{animation:hero-image-pan 10.8s linear both}
@media(prefers-reduced-motion:reduce){.hero .hero-scene.pan-started:before{animation:none;transform:none}}

/* More open headline typography. */
h1,h2,h3{letter-spacing:0}.hero h1,.hero:has(.diagram-scene.active) h1{letter-spacing:.01em}

/* Business-led expertise, with a clearly visible reading position. */
#expertise .chapter-intro{top:40px}
#expertise .chapter-intro h2{font-size:clamp(34px,3.4vw,50px);line-height:1.15}
#expertise .chapter-intro>p:not(.eyebrow){max-width:390px;line-height:1.75}
#expertise .chapter-nav{gap:8px;margin-top:32px}
#expertise .chapter-nav a{display:grid;grid-template-columns:25px 1fr 18px;align-items:center;gap:12px;padding:17px 16px;border:1px solid transparent;border-left:3px solid transparent;border-radius:2px;transition:background .25s,color .25s,border-color .25s;color:#596569}
#expertise .chapter-nav a.current{background:#182c30;color:#fff;border-left-color:#d67a37;box-shadow:0 5px 18px #182c3010}
#expertise .chapter-nav a:hover:not(.current){background:#eeeae2;color:#18242a}
#expertise .chapter-nav a:focus-visible{outline:2px solid #b85a21;outline-offset:3px}
#expertise .chapter-nav span{width:auto;display:block}
#expertise .chapter-nav .chapter-name{font-size:14px;color:inherit;line-height:1.4}
#expertise .chapter-nav .chapter-number{font-size:11px;color:#b85a21}
#expertise .chapter-nav .current .chapter-number{color:#edaa75}
#expertise .chapter-arrow{color:inherit;opacity:0;transition:opacity .25s}
#expertise .current .chapter-arrow{opacity:1}
#expertise .chapter{scroll-margin-top:50px;padding-bottom:85px;margin-bottom:85px}
#expertise .chapter:last-child{padding-bottom:0;margin-bottom:0}
#expertise .chapter h3{line-height:1.2;max-width:620px}
#expertise .chapter-lede{line-height:1.8}
#expertise .chapter-delivery-label{font-size:10px;letter-spacing:1.6px;color:#697475;margin:34px 0 14px}
#expertise dt{font-size:16px;color:#182c30}
#expertise dd{line-height:1.8;max-width:660px}
#expertise .chapter aside{background:#f0ece3;border-left:3px solid #bd642c}
@media(max-width:900px){#expertise .chapter-nav{grid-template-columns:1fr 1fr}#expertise .chapter-intro{position:static}#expertise .chapter{margin-bottom:55px;padding-bottom:55px}}
@media(max-width:550px){#expertise .chapter-nav{grid-template-columns:1fr}#expertise .chapter-nav a{padding:13px 14px}#expertise .chapter-intro h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){#expertise .chapter-nav a,#expertise .chapter-arrow{transition:none}}

/* Editorial chapters: one introduction, a compact index, business-led visuals. */
.expertise-heading{display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:10%;padding-bottom:70px;margin-bottom:65px;border-bottom:1px solid var(--line)}
.expertise-heading h2{font-size:clamp(38px,4.3vw,62px);line-height:1.12;margin-bottom:0}
.expertise-heading>p{font-size:18px;line-height:1.8;color:var(--muted);max-width:510px;margin:0}
#expertise .chapter-section{grid-template-columns:minmax(210px,.6fr) minmax(0,1.65fr);gap:clamp(35px,5vw,80px)}
#expertise .index-label{font-size:10px;letter-spacing:1.6px;margin:0 0 22px;color:#697475}
#expertise .chapter-nav{margin-top:0}
#expertise .chapter-nav a{padding:17px 12px;gap:9px;grid-template-columns:20px 1fr 12px}
#expertise .chapter-nav .chapter-name{font-size:13px}
#expertise .chapter h3{font-size:clamp(30px,3vw,43px);max-width:730px}
#expertise .chapter-lede{max-width:670px;margin:24px 0 30px}
#expertise .chapter dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
#expertise .chapter dl>div{padding:20px 0 0}
#expertise dd{font-size:14px;line-height:1.75}
#expertise dt{font-size:15px;line-height:1.5}
.business-visual{margin:0 0 34px;padding:30px;background:#f0eee7;border:1px solid #e2e3db;border-radius:3px;color:#203a3e;overflow:hidden}
.business-visual figcaption{font-size:8px;letter-spacing:1.5px;color:#76817f;margin-top:24px}
.business-visual small{font-size:11px;color:#617371}
.capacity-visual{display:grid;grid-template-columns:1.3fr 1fr;gap:35px;align-items:center}
.capacity-visual>div>span{font-size:14px}
.capacity-bars{display:flex;gap:8px;align-items:end;height:100px;border-bottom:1px solid #bac6be;margin:10px 0}
.capacity-bars b{display:block;flex:1;height:var(--bar);background:#688c84;border-radius:2px 2px 0 0}
.capacity-bars b:nth-last-child(-n+3){background:#bd702f}
.capacity-decisions{display:grid;gap:10px}.capacity-decisions span{padding:12px 14px;border-left:2px solid #bd702f;background:#faf8f3}
.visual-sources{display:flex;gap:12px;justify-content:space-between}.visual-sources span{flex:1;text-align:center;padding:12px;background:#faf8f3;border:1px solid #d3dcd5;font-size:13px}
.shared-record{margin:22px auto 0;padding:19px;text-align:center;background:#203a3e;color:#f4f6ee;position:relative}.shared-record:before{content:'';position:absolute;top:-22px;left:50%;height:22px;border-left:1px solid #71968a}.shared-record small{display:block;font-size:9px;letter-spacing:1.4px;color:#acc8bd;margin-bottom:9px}.shared-record span{font-size:17px}.visual-result{text-align:center;font-size:12px;margin-top:17px;color:#617371}
.process-visual{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.process-visual>div{border-top:2px solid #86a69b;padding-top:16px}.process-visual>div:last-child{border-color:#bd702f}.process-visual small{display:block;margin-bottom:12px}.process-visual span{font-size:17px}.process-visual p{font-size:12px;line-height:1.6;color:#617371;margin:8px 0 0}
.inspection-visual{display:grid;grid-template-columns:1fr 1.4fr;gap:28px;align-items:center}.inspection-object{position:relative;height:160px;display:flex;justify-content:center;align-items:center}.inspection-frame{position:absolute;width:100px;height:100px;border:1px dashed #7f9c8e}.inspection-part{display:block;width:47px;height:66px;border:2px solid #748d82;border-radius:5px 5px 12px 12px;background:#dde5db}.inspection-object small{position:absolute;bottom:0;font-size:10px}.inspection-routes{display:grid;gap:12px}.inspection-routes span{font-size:12px;border-bottom:1px solid #d2d9cf;padding-bottom:10px}.inspection-routes b{display:block;font-size:13px;margin-top:4px;color:#24483c}.development-note{font-size:13px;color:#64706c;margin-top:28px;border-left:2px solid #bd702f;padding-left:16px}
@media(max-width:900px){.expertise-heading{gap:35px}#expertise .chapter-section{grid-template-columns:1fr}#expertise .chapter dl{gap:20px}#expertise .chapter-nav{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.expertise-heading{grid-template-columns:1fr;padding-bottom:35px;margin-bottom:35px}.expertise-heading>p{font-size:16px}#expertise .chapter dl{grid-template-columns:1fr;gap:0}.business-visual{padding:20px}.capacity-visual,.inspection-visual{grid-template-columns:1fr;gap:20px}.process-visual{grid-template-columns:1fr 1fr;gap:22px}.visual-sources{gap:7px}.visual-sources span{padding:10px 4px;font-size:11px}#expertise .chapter-nav{grid-template-columns:1fr}}

/* Engineering plates: explicit paths, failure routes and validation criteria. */
.architecture-figure{margin:34px 0 40px;border:1px solid #cad1cc;border-radius:3px;overflow:hidden;background:#f3f2ec}
.architecture-heading{padding:24px 26px 20px}.architecture-heading>span{font-size:9px;letter-spacing:1.6px;color:#996038}.architecture-heading h4{font-size:21px;font-weight:300;line-height:1.4;margin:10px 0 0;color:#21363d}
.architecture-canvas{overflow-x:auto;background:#101f29}.architecture-canvas img{width:100%;height:auto;min-width:640px;display:block}.architecture-canvas:focus-visible{outline:2px solid #bd702f;outline-offset:-2px}
.architecture-figure figcaption{padding:20px 26px;font-size:13px;line-height:1.8;color:#536466;border-top:1px solid #cad1cc}
#expertise .chapter dl{display:block}#expertise .chapter dl>div{display:grid;grid-template-columns:180px 1fr;gap:26px;padding:22px 0}#expertise .chapter dd{margin:0;font-size:15px;line-height:1.8}#expertise .chapter dt{font-size:16px;line-height:1.6}
.validation-block{margin-top:25px;border-top:2px solid #bd702f;padding:20px 24px;background:#eeeae1}.validation-block .chapter-delivery-label{margin:0 0 18px!important}.validation-block>div{display:grid;grid-template-columns:125px 1fr;gap:20px;padding:10px 0;border-top:1px solid #d8d8cf}.validation-block>div>span{font-size:13px;color:#223b40}.validation-block p{margin:0;font-size:13px;line-height:1.65;color:#596a6a}.validation-block>small{display:block;font-size:11px;line-height:1.7;color:#697473;margin-top:16px}
@media(max-width:650px){#expertise .chapter dl>div{grid-template-columns:1fr;gap:8px}.architecture-heading,.architecture-figure figcaption{padding:20px}.validation-block>div{grid-template-columns:1fr;gap:4px}.validation-block{padding:20px}.architecture-heading h4{font-size:19px}}
#expertise .chapter{padding-top:0}#expertise .chapter-lede{max-width:760px;margin:25px 0 32px}#expertise .architecture-figure{margin:0;border-color:#283f49}.architecture-canvas img{min-width:720px}
#expertise .architecture-canvas img{min-width:0;width:100%}
@media(max-width:650px){#expertise .architecture-canvas img{min-width:620px}}

/* Transparent, continuously animated reference graphs. */
#expertise .animated-architecture{border:0;background:transparent;overflow:visible;margin:34px -10px 0}
.system-graph{display:block;width:100%;height:auto;overflow:visible}
.system-graph .node-shape{fill:#faf8f3;stroke:#9aaea6;stroke-width:1.2}
.system-graph .accent-node .node-shape{fill:#f4e9dc;stroke:#b46d3a;stroke-width:1.4}
.system-graph .node-title{font-family:'DM Sans',sans-serif;font-size:17px;font-weight:400;fill:#223c40}
.system-graph .node-detail{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:300;fill:#5a706f}
.system-graph .graph-line{stroke:#8ea29a;stroke-width:1.4;fill:none}
.system-graph .control-link .graph-line{stroke:#bc8b64;stroke-dasharray:4 5}
.system-graph .edge-label{font-family:'DM Sans',sans-serif;font-size:11px;fill:#6c7f7b;paint-order:stroke;stroke:#faf8f3;stroke-width:5px;stroke-linejoin:round}
.system-graph .graph-packet{fill:#406c65;stroke:#faf8f3;stroke-width:1.5;opacity:.85}
.system-graph .control-link .graph-packet{fill:#b66937}
.graph-mobile{display:none}
@media(max-width:550px){.graph-wide{display:none}.graph-mobile{display:block}#expertise .animated-architecture{margin:25px -7px 0}.system-graph .node-title{font-size:16px}.system-graph .node-detail{font-size:12px}}
@media(prefers-reduced-motion:reduce){.system-graph .graph-packet{display:none}}
.system-graph .node-title{font-size:19px}.system-graph .node-detail{font-size:14px}.system-graph .edge-label{font-size:12px}.system-graph .graph-line{stroke-width:1.7}.system-graph .graph-packet{r:4px}
@media(max-width:550px){.system-graph .node-title{font-size:17px}.system-graph .node-detail{font-size:12px}}

/* A distinct visual grammar per topic, with one shared palette. */
.topic-graph .viz-label{font:400 20px 'DM Sans',sans-serif;fill:#274540}.topic-graph .viz-small{font:400 17px 'DM Sans',sans-serif;fill:#274540}.topic-graph .viz-detail{font:300 14px 'DM Sans',sans-serif;fill:#5c716b}.topic-graph .viz-micro{font:300 11px 'DM Sans',sans-serif;fill:#5c716b}.topic-graph .viz-edge-label{font:300 13px 'DM Sans',sans-serif;fill:#6f7d71;paint-order:stroke;stroke:#faf8f3;stroke-width:4px;stroke-linejoin:round}
.topic-graph .viz-edge{fill:none;stroke:#819b90;stroke-width:1.5}.topic-graph .viz-box,.topic-graph .state-node{fill:#faf8f3;stroke:#809b8f;stroke-width:1.4}.topic-graph .viz-frame{fill:none;stroke:#bccac1;stroke-width:1.3}.topic-graph .viz-gate{fill:#e9c4a4;stroke:#b97442;stroke-width:1.3}.topic-graph .queue-slot{fill:#e7ede6}.topic-graph .queue-job,.topic-graph .work-progress{fill:#688e7d}.topic-graph .viz-feedback{fill:#f2e9dc;stroke:#bb8c62;stroke-width:1.2}.topic-graph .viz-feedback-edge{fill:none;stroke:#b8875e;stroke-dasharray:5 5;stroke-width:1.3}.topic-graph .viz-particle{fill:#4f8572;stroke:#faf8f3;stroke-width:1.5}.topic-graph .viz-control-particle{fill:#be7f4c;stroke:#faf8f3;stroke-width:1.4}
.provenance-orbit{fill:none;stroke:#dce3d8;stroke-dasharray:3 7}.provenance-leaf{fill:#f2f4ec;stroke:#a7baac;stroke-width:1.3}.provenance-core{fill:#e8d9c4;stroke:#b58051;stroke-width:1.5}.topic-graph .state-final{stroke-width:2.8;fill:#eaf0e6}.state-cursor{fill:#b77946;stroke:#faf8f3;stroke-width:3}.state-cursor-1{fill:#916657}.state-cursor-2{fill:#618b7e}
.camera-body{fill:#e6ece6;stroke:#648579;stroke-width:1.5}.camera-lens{fill:#cdd9d0;stroke:#648579;stroke-width:1.5}.camera-field{fill:#769e8810;stroke:#9ab8a6;stroke-dasharray:5 5}.ring-light{fill:#faf8f3;stroke:#c2996d;stroke-width:4}.conveyor{fill:none;stroke:#94a49a;stroke-width:2}.roller{fill:none;stroke:#b0bcb2;stroke-width:1.2}.inspection-part-new{fill:#dee7dd;stroke:#6a8a76;stroke-width:1.8}.inspection-cap{fill:#e8d3bb;stroke:#b38558;stroke-width:1.2}.dimension{fill:none;stroke:#a97846;stroke-width:1.3}.scan-beam{stroke:#bf8250;stroke-width:2;opacity:.75}.validation-circle{fill:#faf8f3;stroke:#aabbb0;stroke-width:1.3}
@media(prefers-reduced-motion:reduce){.viz-particle,.viz-control-particle,.state-cursor,.scan-beam{display:none}}
@media(max-width:550px){#expertise .animated-architecture{overflow-x:auto}.topic-graph{min-width:580px}}

/* Compact engineering principles: one heading and paragraph per panel. */
#approach{align-items:center}
#approach .approach-intro{position:static}
#approach .approach-intro>p:not(.eyebrow){max-width:440px}
#approach #layer-panel{min-height:300px;padding:38px 40px}
#approach #layer-panel h3{font-size:clamp(25px,2.2vw,34px);line-height:1.2;letter-spacing:-.7px}
#approach #layer-panel p{font-size:17px;line-height:1.8;margin:24px 0 0}
#approach .layer-buttons button{padding:19px 12px}
@media(max-width:650px){#approach #layer-panel{padding:28px 24px;min-height:350px}#approach #layer-panel p{font-size:16px}#approach .layer-buttons button{font-size:14px}}

/* Selected work: three distinct, evidence-led case studies. */
.case-studies .section-top{align-items:end;gap:60px;margin-bottom:64px}
.case-studies .section-top>p{padding:0;max-width:390px}
.case-study{display:grid;grid-template-columns:minmax(170px,.45fr) minmax(0,1fr);gap:clamp(32px,6vw,90px);padding:56px 0 62px;border-top:1px solid var(--line)}
.case-index{display:block;font:300 64px/1 Manrope,sans-serif;color:#b85a21;margin-bottom:28px}
.case-meta .eyebrow{margin-bottom:12px;font-size:11px;line-height:1.7;letter-spacing:1.7px}
.case-domain{font-size:13px;color:var(--muted)}
.case-story h3{font-size:clamp(30px,3.1vw,46px);line-height:1.15;letter-spacing:-1px}
.case-story>p{font-size:17px;line-height:1.85;color:var(--muted);margin:27px 0 30px;max-width:770px}
.case-capabilities{display:flex;flex-wrap:wrap;gap:12px 24px;color:#35564f;font-size:12px}
.case-capabilities span{padding-top:10px;border-top:1px solid #c5cfc7}
@media(max-width:650px){.case-studies .section-top{margin-bottom:38px}.case-study{grid-template-columns:1fr;gap:24px;padding:34px 0 42px}.case-index{font-size:38px;margin-bottom:15px}.case-story h3 br{display:none}.case-story>p{font-size:16px}.case-capabilities{gap:12px 18px}}

/* Case imagery wipes over the number panel without obscuring the story. */
.case-visual{position:relative;display:block;width:100%;aspect-ratio:1/1;overflow:hidden;border:0;border-radius:3px;background:#eeeae1;text-align:left;padding:24px;margin:0 0 26px;color:var(--orange);isolation:isolate}
.case-visual .case-index{font-size:clamp(70px,8vw,120px);margin:0;position:absolute;left:24px;bottom:24px;transition:transform .75s ease,opacity .6s ease}
.case-image{position:absolute;inset:0;clip-path:inset(0 100% 0 0);transition:clip-path .85s cubic-bezier(.22,1,.36,1)}
.case-image img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);transition:transform 1.2s ease}
.case-image-caption{position:absolute;bottom:10px;left:10px;padding:4px 7px;background:#102c2dcc;color:#fff;font-size:8px;letter-spacing:1px}
@media(hover:hover){.case-study:hover .case-image{clip-path:inset(0)}.case-study:hover .case-image img{transform:scale(1)}.case-study:hover .case-visual .case-index{transform:translateX(25px);opacity:0}}
.case-study:focus-within .case-image,.case-study.image-open .case-image{clip-path:inset(0)}
.case-study:focus-within .case-image img,.case-study.image-open .case-image img{transform:scale(1)}
@media(hover:none){.case-image{clip-path:inset(0)}.case-image img{transform:none}}
@media(max-width:650px){.case-visual{max-width:320px;aspect-ratio:4/3}.case-visual .case-index{font-size:80px}}
@media(prefers-reduced-motion:reduce){.case-image,.case-image img,.case-visual .case-index{transition:none}}

/* Keep the number visible until its image is downloaded and decoded. */
@media(hover:hover){.case-study:hover .case-visual:not(.image-ready) .case-image,.case-study:focus-within .case-visual:not(.image-ready) .case-image,.case-study.image-open .case-visual:not(.image-ready) .case-image{clip-path:inset(0 100% 0 0)}.case-study:hover .case-visual:not(.image-ready) .case-index{transform:none;opacity:1}}

/* Paired research programmes, digital and physical. */
.research-lab{display:block;background:#eeeae2;padding-top:100px;padding-bottom:80px}
.rd-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-bottom:54px}
.rd-heading h2{font-size:clamp(36px,4vw,58px);letter-spacing:-1.4px}
.research-lab .rd-heading>p{font-size:17px;line-height:1.8;margin:0;max-width:470px;color:#596569}
.rd-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.rd-card{--rd-accent:#aa602f;--rd-text:#1c3438;--rd-muted:#536768;--rd-line:#d3dcd4;padding:clamp(25px,3vw,44px);background:#faf8f3;border:1px solid #d7dad2;border-radius:4px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.rd-praxis{--rd-accent:#9dd6bc;--rd-text:#eff5f1;--rd-muted:#b6c9c4;--rd-line:#395653;background:#132f32;border-color:#132f32}
.rd-card-top{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:9px;letter-spacing:1.4px;color:var(--rd-muted);min-height:28px}
.rd-status{border:1px solid var(--rd-line);padding:5px 7px;letter-spacing:.7px;font-size:8px;white-space:nowrap}
.rd-card h3{font-size:clamp(48px,5vw,72px);letter-spacing:.5px;line-height:1.15;color:var(--rd-text);margin:36px 0 20px;font-weight:300}
.research-lab .rd-premise{font-size:clamp(23px,2.1vw,30px);line-height:1.4;color:var(--rd-text);margin:0 0 24px;font-weight:300}
.research-lab .rd-copy{color:var(--rd-muted);font-size:16px;line-height:1.85;margin:0 0 32px}
.rd-boundary{margin-top:auto;border-top:1px solid var(--rd-line);border-bottom:1px solid var(--rd-line);color:var(--rd-text)}
.rd-boundary>div{padding:16px 12px;font-size:14px;position:relative}
.rd-boundary>div>span:first-child{font-size:10px;color:var(--rd-accent);margin-right:15px}
.rd-gate{border-left:2px solid var(--rd-accent);background:color-mix(in srgb,var(--rd-accent) 8%,transparent)}
.rd-gate small{display:block;color:var(--rd-muted);font-size:11px;padding-left:30px;margin-top:6px}
.rd-loop{float:right;color:var(--rd-accent);font-size:23px;line-height:1}
.research-lab .rd-focus{color:var(--rd-muted);font-size:11px;line-height:1.8;margin:22px 0 0}
.research-lab .rd-footnote{color:#67716d;font-size:12px;margin:24px 0 0;max-width:none}
@media(max-width:1000px){.rd-heading{grid-template-columns:1fr;gap:25px}.rd-card-top{flex-wrap:wrap;gap:8px}.rd-grid{gap:18px}}
@media(max-width:700px){.rd-grid{grid-template-columns:1fr}.research-lab{padding-top:65px;padding-bottom:55px}.rd-heading{margin-bottom:35px}.rd-card{padding:28px}.rd-card-top{justify-content:space-between}.rd-card h3{font-size:55px}.research-lab .rd-copy{font-size:16px}}
#research .rd-premise{color:var(--rd-text)}
#research .rd-copy,#research .rd-focus{color:var(--rd-muted)}

/* Research focus tags and gently weighted kinetic statements. */
#research .rd-praxis{--rd-text:#fff;--rd-muted:#fff;--rd-accent:#fff;color:#fff}
#research .rd-praxis :is(h3,p,span,li){color:#fff}
#research .rd-premise{font-size:clamp(21px,2.1vw,30px);line-height:1.5;perspective:700px}
.rd-premise>span{display:block;transform-origin:left center;backface-visibility:hidden}
.rd-premise.motion-active>span{animation:rd-soft-slam 9s infinite both cubic-bezier(.2,.75,.25,1)}
.rd-premise.motion-active>span:nth-child(2){animation-delay:.22s}
.rd-tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:auto 0 0;padding:25px 0 0;border-top:1px solid var(--rd-line)}
.rd-tags li{border:1px solid var(--rd-line);border-radius:3px;padding:7px 11px;color:var(--rd-text);font-size:12px;line-height:1.5}
#research .rd-praxis .rd-tags li{border-color:#ffffff60}
@keyframes rd-soft-slam{0%{transform:translateY(-13px) scale(1.045);opacity:.35}7%{transform:translateY(2px) scale(.993);opacity:1}12%,90%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-13px) scale(1.045);opacity:.35}}
@media(prefers-reduced-motion:reduce){.rd-premise.motion-active>span{animation:none;transform:none;opacity:1}}

.rd-grid{grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:0}
.rd-bridge{position:relative;z-index:2;align-self:start;margin-top:124px;display:flex;align-items:center;justify-content:center}
.rd-bridge svg{flex:none;width:60px;height:40px;fill:none;stroke:#ac734b;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 3px #eeeae2)}
@media(max-width:700px){.rd-grid{grid-template-columns:1fr}.rd-bridge{margin:0;height:42px;align-self:center}.rd-bridge svg{transform:rotate(90deg)}}

/* Fluorescent marker passes; the typography itself stays stationary. */
#research .rd-premise>span{position:relative;isolation:isolate;display:table;max-width:100%;animation:none;transform:none;opacity:1;backface-visibility:visible}
.rd-premise>span::before{content:"";position:absolute;z-index:-1;left:-.1em;right:-.08em;top:20%;bottom:8%;background:#eaff4d;opacity:.65;clip-path:polygon(0 8%,98% 0,100% 89%,2% 100%);transform:scaleX(0);transform-origin:left center;border-radius:2px}
#research .rd-praxis .rd-premise>span::before{background:#b7ff36;opacity:.32}
.rd-premise.motion-active>span::before{animation:rd-marker 9s infinite both cubic-bezier(.2,.7,.3,1)}
.rd-premise.motion-active>span:nth-child(2)::before{animation-delay:.55s}
@keyframes rd-marker{0%,3%{transform:scaleX(0)}15%,85%{transform:scaleX(1);opacity:.65}95%,100%{transform:scaleX(1);opacity:0}}
#research .rd-praxis .rd-premise.motion-active>span::before{animation-name:rd-marker-dark}
@keyframes rd-marker-dark{0%,3%{transform:scaleX(0);opacity:.32}15%,85%{transform:scaleX(1);opacity:.32}95%,100%{transform:scaleX(1);opacity:0}}
@media(prefers-reduced-motion:reduce){#research .rd-premise>span::before{animation:none;transform:scaleX(1)}}

.rd-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media(max-width:700px){.rd-grid{grid-template-columns:1fr}}
/* Marker cycle: 0.8s draw, 3s hold, 0.8s erase, 0.2s rest. */
#research .rd-premise>span::before{left:-.2em;right:-.2em;transform:none;clip-path:inset(0 100% 0 0);border-radius:2px;opacity:.65;background:#eaff4d}
#research .rd-praxis .rd-premise>span::before{background:#29d9ff;opacity:.36}
#research .rd-premise.motion-active>span::before{animation:rd-marker-wipe 4.8s linear infinite both}
#research .rd-premise.motion-active>span:nth-child(2)::before{animation-delay:.22s}
@keyframes rd-marker-wipe{0%{clip-path:inset(0 100% 0 0)}16.6667%,79.1667%{clip-path:inset(0 0 0 0)}95.8333%,100%{clip-path:inset(0 0 0 100%)}}
@media(prefers-reduced-motion:reduce){#research .rd-premise.motion-active>span::before{animation:none;clip-path:inset(0);transform:none}}
#research .rd-praxis .rd-premise.motion-active>span::before{animation-name:rd-marker-wipe}
@media(prefers-reduced-motion:reduce){#research .rd-praxis .rd-premise.motion-active>span::before{animation:none}}

/* Contact: a quiet, structured enquiry form. */
#contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,7vw,110px);text-align:left;padding:110px 8%;background:#f3efe7;border-top:1px solid var(--line)}
#contact .contact-intro h2{font-size:clamp(36px,3.4vw,56px);line-height:1.15;letter-spacing:-1.4px}
.contact-intro>p:not(.eyebrow){max-width:360px;color:var(--muted);font-size:16px;line-height:1.8;margin:28px 0}
.contact-intro>a{display:inline-block;border-bottom:1px solid #b6b9ae;font-size:17px;padding-bottom:5px}.contact-intro .contact-location{font-size:13px!important;margin-top:50px!important}
.contact-form{min-width:0}.form-intro{margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid #cdd0c7;font-size:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.form-intro span{font-size:11px;color:var(--muted)}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}.form-field{min-width:0}.field-full{grid-column:1/-1}.form-field[hidden]{display:none}.form-field label{display:block;margin-bottom:8px;font-size:13px;color:#263b3d}.field-optional{color:var(--muted)}
.contact-form :is(input,textarea,select,.select-trigger,.select-search){font:inherit;font-size:15px;font-weight:300;color:#20383a;width:100%;border:1px solid #c5cbc3;border-radius:3px;background:#faf8f3;padding:13px 14px;min-height:50px;transition:border-color .2s,box-shadow .2s}
.contact-form :is(input,textarea)::placeholder{color:#78817c;opacity:1}.contact-form :is(input,textarea,select,button):focus-visible{outline:2px solid #bc783e;outline-offset:3px}.contact-form textarea{resize:vertical;min-height:140px;line-height:1.6}.phone-fields{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px}.form-field small{display:block;font-size:11px;color:var(--muted);margin-top:6px}
.custom-select{position:relative}.select-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}.select-trigger::after{content:'';width:7px;height:7px;flex-shrink:0;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}.select-trigger[aria-expanded=true]::after{transform:translateY(2px) rotate(225deg)}
.select-popup{position:absolute;top:calc(100% + 7px);left:0;width:100%;min-width:240px;z-index:20;background:#faf8f3;border:1px solid #c5cbc3;border-radius:4px;box-shadow:0 14px 35px #17292d20;padding:6px}.select-popup[hidden]{display:none}.contact-form .select-search{min-height:42px;margin-bottom:5px;font-size:13px}.select-list{max-height:240px;overflow:auto;overscroll-behavior:contain;padding:0;margin:0;list-style:none}.select-list [role=option]{font-size:13px;padding:10px 12px;cursor:pointer;border-radius:2px;line-height:1.5}.select-list [role=option][aria-selected=true]{color:#9c5321;background:#eee6da}.select-list [role=option]:is(:hover,:focus){background:#193538;color:#fff;outline:none}.select-list [hidden]{display:none}.select-empty{font-size:13px;color:var(--muted);padding:10px}
.form-submit{display:flex;align-items:center;gap:22px;margin-top:28px}.contact-form .contact-submit{border:0;border-radius:3px;background:#183538;color:#fff;padding:15px 22px;min-height:52px;font-size:14px;white-space:nowrap;display:flex;gap:26px;align-items:center}.contact-submit:hover{background:#2a4c4e}.form-submit p{font-size:11px;line-height:1.6;color:var(--muted);margin:0;max-width:255px}.form-status{font-size:13px;color:#385951;margin:16px 0 0}.form-status:empty{display:none}.form-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}
@media(max-width:1000px){#contact{grid-template-columns:1fr;gap:40px;padding:75px 7%}.contact-intro>p:not(.eyebrow){max-width:550px}.contact-intro .contact-location{display:none}.contact-form{max-width:760px}}
@media(max-width:520px){.contact-fields{grid-template-columns:1fr}.form-submit{align-items:flex-start;flex-direction:column;gap:14px}.form-submit p{max-width:100%}.form-intro{font-size:18px}#contact{padding:60px 6%}.select-popup{min-width:220px}}

.contact-form .cf-turnstile{margin-top:24px;max-width:100%}
.contact-submit:disabled{opacity:.6;cursor:wait}
