/* EXO shares the studio's ink, paper, dot display type and fine editorial rules. */
#exo-widget{--exo-ink:var(--brand-black,#080808);--exo-paper:var(--brand-ivory,#edece7);--exo-accent:var(--brand-purple,#7952b3);--exo-surface:#141414;--exo-muted:var(--brand-muted,#a0a0a0);--exo-line:var(--brand-line,#3a3a3a);z-index:10020}
#exo-widget,body:has(.hero-section) #exo-widget[data-open=false][data-concealed=false],.services-spatial-page #exo-widget[data-open=false][data-concealed=false],.work-studio-page #exo-widget[data-open=false][data-concealed=false],body:has(#nav_scroll_container.is-menu-open) #exo-widget[data-open=false]{left:auto;right:max(10px,env(safe-area-inset-right));top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:70px;height:70px}
#exo-widget .exo-launcher-wrap,#exo-widget .exo-launcher{width:70px;height:70px;visibility:visible;pointer-events:auto}
#exo-widget .exo-launcher{justify-content:center;padding:0;box-sizing:border-box;overflow:hidden;background:#101012;border:1px solid #edece72e;border-radius:50%;box-shadow:0 3px 14px #0002;transition:background-color .2s ease,border-color .2s ease}
#exo-widget .exo-launcher:hover{background:#171719;border-color:#edece75c}
#exo-widget .exo-launcher:focus-visible{border-color:var(--exo-paper)}
#exo-widget .exo-launcher,#exo-widget .exo-launcher *{cursor:pointer!important}
/* EXO uses the native click cursor instead of the homepage's magnetic ring. */
body:has(#exo-widget:hover) :is(#cursor-ring,#cursor-dot,.mouseTracker--01){visibility:hidden!important;opacity:0!important}
.exo-launcher .exo-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#exo-widget[data-open=true] .exo-launcher-wrap{visibility:visible;pointer-events:auto}
#exo-widget .exo-panel{left:auto;right:0;bottom:82px;width:448px;height:690px;max-height:calc(100dvh - 120px);max-width:calc(100vw - 24px);border:1px solid #c4b6d04d;border-top:1px solid #d5c7e0;background:#0c0c0e;box-shadow:0 24px 90px #0009;clip-path:polygon(0 0,calc(100% - 17px) 0,100% 17px,100% 100%,0 100%)}
.exo-panel-header{min-height:98px;padding:16px 22px 15px 13px;gap:12px;background:radial-gradient(ellipse at 10% 0,#a382c215,transparent 75%),#101012;border-bottom:1px solid #d4c9df29}
.exo-panel-header>.exo-dust{width:66px;height:66px;flex:none}
#exo-widget .exo-panel-header h2{font:400 40px/.9 'Bitcount Grid Single',monospace;letter-spacing:-.07em;color:#edece7}
#exo-widget .exo-panel-header p{font-size:8px;letter-spacing:.12em;color:#aaa1b4;margin-top:9px}
.exo-window-controls{gap:3px;padding-top:0;align-self:center}
#exo-widget .exo-window-controls>button{border:0;width:33px;height:36px;font-size:23px;color:#c4bccb}
.exo-chat-view{padding:0 24px;position:relative;background-image:radial-gradient(#b7a3ca09 .65px,transparent .65px);background-size:6px 6px}
.exo-chat-heading{padding:11px 0 7px;border-bottom:1px solid #ffffff0d;gap:8px}
.exo-chat-heading>span{font-size:8px;letter-spacing:.08em;color:#c1accf}
#exo-widget .exo-chat-heading>button{font-size:8px;gap:8px;color:#9d93a6}
#exo-widget .exo-messages{padding:21px 3px 20px 0;gap:23px;min-height:90px;scrollbar-color:#6b577e transparent}
.exo-message{max-width:100%;padding-left:13px;border-left:1px solid #c5a4e944}
.exo-message>span{font-size:8px;color:#c5a4e9;letter-spacing:.12em;margin-bottom:6px}
#exo-widget .exo-message>p{font-size:14px;line-height:1.8;color:#ded9e3}
.exo-message.is-user{max-width:90%;padding:13px 16px;background:#e9e5df;border:0;align-self:flex-end;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}
.exo-message.is-user>span{color:#6b557e}
#exo-widget .exo-message.is-user>p{color:#18141d;font-size:13px}
.exo-suggestions{gap:7px;padding:12px 0;max-height:99px;background:#0c0c0e}
#exo-widget .exo-suggestions>:is(button,a){border:1px solid #c3acd23b;min-height:35px;padding:7px 11px;font-size:11px;color:#d3c2e3;background:#ab83cc08;justify-content:start}
#exo-widget .exo-suggestions>:is(button,a):hover{color:#0b0b0c;background:#c5a4e9;border-color:#c5a4e9}
.exo-composer{padding:13px 0 11px;border-block:1px solid #d6cbdf3b;background:#0c0c0e}
.exo-composer>label{font-size:8px;letter-spacing:.12em;color:#c2b8ca}
.exo-composer>div{gap:15px;margin-top:7px}
#exo-widget .exo-composer textarea{font-size:14px;line-height:1.6;min-height:44px;padding-top:7px;color:#edece7}
#exo-widget .exo-composer textarea::placeholder{color:#918598}
#exo-widget .exo-composer button{width:41px;height:41px;border:0;background:#c5a4e9;color:#17101d;font-size:25px}
.exo-composer>span{font-size:7px;color:#8e8296;margin-top:9px;letter-spacing:.025em}
#exo-widget .exo-composer textarea:focus-visible{outline:none}
#exo-widget .exo-composer:focus-within{border-color:#c5a4e9}
.exo-draft-bar{padding:8px 0 10px;background:#0c0c0e}
#exo-widget .exo-draft-bar>button{font-size:9px;letter-spacing:.08em;color:#d5c0e8}
.exo-draft-bar>span{font-size:9px;color:#b0a3b9}
.exo-panel-footer{background:#09090b;padding:10px 24px;font-size:9px;color:#a59aaa;line-height:1.6}
.exo-greeting{left:auto;right:118px;bottom:8px;width:260px;background:#111013;border-color:#c5a4e944;padding:17px 19px}
.exo-greeting:after{left:auto;right:-6px;border-right:1px solid #ffffff2b;border-top:1px solid #ffffff2b;border-left:0;border-bottom:0}
.exo-greeting>div>span{font-size:8px;letter-spacing:.08em}
body:has(#nav_scroll_container.is-menu-open) #exo-widget .exo-greeting{visibility:hidden;pointer-events:none}
#exo-widget .exo-greeting>p{font-size:13px;color:#e0d9e6;line-height:1.75}
.exo-review-view{padding:19px 24px}
.exo-review-heading>span{font-size:8px}
#exo-widget .exo-review-intro{font-size:12px}
.exo-review-form>label{font-size:9px;letter-spacing:.05em}
#exo-widget .exo-review-form :is(input:not([type=checkbox]),select,textarea){font-size:14px}
#exo-widget .exo-prepare{background:#c5a4e9;border:0;min-height:49px;font-size:11px}
#exo-widget .exo-full-form{font-size:9px}
@media(max-width:767px){
 #exo-widget,body:has(.hero-section) #exo-widget[data-open=false][data-concealed=false],.services-spatial-page #exo-widget[data-open=false][data-concealed=false],.work-studio-page #exo-widget[data-open=false][data-concealed=false],body:has(#nav_scroll_container.is-menu-open) #exo-widget[data-open=false]{left:auto;right:max(8px,env(safe-area-inset-right));top:auto;bottom:max(8px,env(safe-area-inset-bottom));width:60px;height:60px}
 #exo-widget .exo-launcher-wrap,#exo-widget .exo-launcher{width:60px;height:60px}
 #exo-widget .exo-panel{width:420px;max-width:calc(100vw - 16px);height:670px;max-height:calc(100dvh - 100px - env(safe-area-inset-bottom));bottom:72px}
 .exo-panel-header{min-height:76px;padding:9px 14px 9px 7px;gap:6px}
 .exo-panel-header>.exo-dust{width:56px;height:56px}
 #exo-widget .exo-panel-header h2{font-size:33px}
 #exo-widget .exo-panel-header p{font-size:7px;letter-spacing:.04em}
 .exo-window-controls{gap:0}
 #exo-widget .exo-window-controls>button{width:29px}
 .exo-chat-view{padding:0 17px}
 #exo-widget .exo-messages{gap:18px;padding-block:16px}
 #exo-widget .exo-message>p{font-size:13px;line-height:1.75}
 #exo-widget .exo-composer textarea{font-size:16px}
 .exo-composer>span{font-size:6px}
 .exo-suggestions{max-height:88px;padding-block:9px}
 #exo-widget .exo-suggestions>:is(button,a){font-size:10px;min-height:33px;padding:6px 9px}
 .exo-greeting{left:auto;right:90px;bottom:8px;width:min(260px,calc(100vw - 120px));padding:14px}
 .exo-greeting:after{left:auto;right:-6px;bottom:21px;border-left:0;border-top:1px solid #ffffff2b;border-right:1px solid #ffffff2b;border-bottom:0}
 .exo-panel-footer{font-size:8px;padding:8px 17px}
 .exo-review-view{padding:16px 17px}
 #exo-widget .exo-review-form :is(input:not([type=checkbox]),select,textarea){font-size:16px}
}
@media(max-height:620px){
 .exo-panel-header{min-height:58px;padding-block:4px}
 .exo-panel-header>.exo-dust{width:46px;height:46px}
 #exo-widget .exo-panel-header h2{font-size:29px}
 #exo-widget .exo-panel-header p{margin-top:4px;font-size:6px}
 .exo-chat-heading{padding-block:4px}
 .exo-chat-heading>span{font-size:7px}
 #exo-widget .exo-messages{min-height:40px;gap:15px;padding-block:10px}
 .exo-suggestions{max-height:43px;padding-block:5px}
 .exo-composer{padding-block:7px}
 .exo-composer>label,.exo-composer>span,.exo-panel-footer{display:none}
 .exo-composer>div{margin-top:0}
 .exo-draft-bar{padding-block:4px}
}
@media(prefers-reduced-motion:reduce){#exo-widget .exo-launcher{transition:none}}

/* A conversation first; contact details appear when the visitor asks to prepare it. */
#exo-widget .exo-panel{width:470px;height:740px;clip-path:none;border-radius:3px;border-color:#c4b6d033}
#exo-widget .exo-panel-header{min-height:86px;background:#101012;padding-block:10px}
#exo-widget .exo-chat-view{background-image:none}
#exo-widget .exo-messages{gap:24px;padding-block:24px;scroll-behavior:smooth;overflow-anchor:auto}
#exo-widget .exo-message{padding-left:0;border-left:0;animation:exoMessageIn .2s ease-out both}
#exo-widget .exo-message-copy{font:14px/1.7 'DM Sans',sans-serif;color:#ded9e3;overflow-wrap:anywhere;white-space:normal}
#exo-widget .exo-message-copy p{margin:0;white-space:pre-wrap}
#exo-widget .exo-message-copy p+p{margin-top:12px}
#exo-widget .exo-message-copy ol{padding-left:20px;margin-block:12px}
#exo-widget .exo-message-copy li+li{margin-top:8px}
#exo-widget .exo-message.is-user{padding:11px 15px;clip-path:none;border-radius:2px;background:#e9e5df;max-width:92%}
#exo-widget .exo-message.is-user .exo-message-copy{color:#18141d;font-size:13px}
#exo-widget .exo-suggestions{max-height:100px;padding:10px 0;gap:6px}
#exo-widget .exo-suggestions>:is(button,a){font-size:11px;padding:8px 11px;min-height:36px;transition:background .16s,color .16s,border-color .16s}
#exo-widget .exo-composer{border:1px solid #d6cbdf40;padding:10px 12px 8px;margin-bottom:12px;transition:border-color .2s;background:#ffffff03}
#exo-widget .exo-composer>label{display:none}
#exo-widget .exo-composer>div{gap:10px;margin-top:0}
#exo-widget .exo-composer>span{font-size:7px;margin-top:6px}
#exo-widget .exo-composer textarea{padding-top:7px;min-height:42px}
#exo-widget .exo-composer button{border-radius:2px;transition:background .15s,transform .15s}
#exo-widget .exo-composer button:hover{background:#d5bbed;transform:translateY(-1px)}
#exo-widget .exo-draft-bar{padding-top:0}
#exo-widget[data-has-idea=false][data-enquiry=false] .exo-draft-bar{display:none}
#exo-widget[data-enquiry=false] .exo-draft-bar>:is(span,progress){display:none}
#exo-widget .exo-new-messages{position:absolute;right:24px;bottom:220px;z-index:3;padding:7px 12px;border:1px solid #b99cd05c;border-radius:20px;background:#29202f;color:#edece7;font:11px/1.5 'DM Sans',sans-serif;box-shadow:0 4px 22px #0009}
#exo-widget .exo-panel-footer{font-size:8px;line-height:1.5;padding-block:9px}
@keyframes exoMessageIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){
 #exo-widget .exo-panel{width:470px;height:740px;max-height:calc(100dvh - 96px - env(safe-area-inset-bottom))}
 #exo-widget .exo-panel-header{min-height:72px;padding-block:6px}
 #exo-widget .exo-message-copy{font-size:13px;line-height:1.65}
 #exo-widget .exo-messages{padding-block:18px;gap:20px}
 #exo-widget .exo-suggestions{max-height:94px}
 #exo-widget .exo-composer textarea{font-size:16px}
 #exo-widget .exo-new-messages{right:17px}
}
@media(max-height:620px){
 #exo-widget .exo-panel-header{min-height:52px;padding-block:2px}
 #exo-widget .exo-chat-heading>span{display:none}
 #exo-widget .exo-chat-heading{justify-content:flex-end;padding-block:0}
 #exo-widget .exo-suggestions{max-height:45px;padding-block:6px}
 #exo-widget .exo-composer{padding:4px 9px;margin-bottom:7px}
 #exo-widget .exo-panel-footer{display:none}
}
@media(prefers-reduced-motion:reduce){#exo-widget .exo-message{animation:none}#exo-widget .exo-messages{scroll-behavior:auto}#exo-widget .exo-composer,#exo-widget .exo-composer button,#exo-widget .exo-suggestions>:is(button,a){transition:none}}

/* Fixed positions and sizes; scroll, hover and page content never move EXO. */
body:has([data-site-assistant]){--exo-corner-size:70px;--exo-corner-right:max(10px,env(safe-area-inset-right));--exo-corner-bottom:max(10px,env(safe-area-inset-bottom));--exo-clearance:calc(var(--exo-corner-size) + var(--exo-corner-right) + 12px)}
body.labs-page{--exo-corner-bottom:max(60px,env(safe-area-inset-bottom))}
@media(max-width:767px){body:has([data-site-assistant]){--exo-corner-size:60px}}
#exo-widget,#exo-widget[data-safe-dock]{position:fixed!important;left:auto!important;top:auto!important;right:var(--exo-corner-right)!important;bottom:var(--exo-corner-bottom)!important;width:var(--exo-corner-size)!important;height:var(--exo-corner-size)!important;transform:none!important;transition:none!important}
#exo-widget[data-safe-dock] .exo-launcher-wrap,#exo-widget[data-safe-dock] .exo-launcher{width:100%;height:100%}
#exo-widget[data-safe-dock] .exo-launcher .exo-dust{inset:0;width:100%;height:100%}
#exo-widget[data-safe-dock] .exo-panel{position:fixed;right:var(--exo-panel-right,10px);bottom:var(--exo-panel-bottom,90px);left:auto;max-height:var(--exo-panel-max-height,calc(100dvh - 120px));max-width:var(--exo-panel-max-width,calc(100vw - 20px))}
#exo-widget[data-greeting-blocked=true] .exo-greeting{visibility:hidden;pointer-events:none}
#exo-widget[data-layout-blocked=true]{visibility:hidden;pointer-events:none}
#exo-widget:is([data-obscured=true],[data-layout-blocked=true]),#exo-widget:is([data-obscured=true],[data-layout-blocked=true]) *{visibility:hidden!important;pointer-events:none!important}
#exo-widget[data-safe-dock] .exo-launcher:focus-visible{outline-offset:1px}
/* Wide interactive photographs and calls to action leave room for a compact target. */
body:has([data-site-assistant]) .case-gallery{padding-right:var(--exo-clearance)}
body:has([data-site-assistant]) .case-next>a{width:calc(100% - var(--exo-clearance))}
body:has([data-site-assistant]) .inner-section:has(.article-list,.article-prose,.project-archive,.faq-list){padding-right:max(var(--exo-clearance),4%)}
body:has([data-site-assistant]) .pg-gallery{padding-right:max(var(--exo-clearance),6%)}
body:has([data-site-assistant]) .sp-consultation{padding-right:max(var(--exo-clearance),4%)}
body:has([data-site-assistant]).services-spatial-page.svo-ready :is(.svo-carousel-tools,.svo-scene-footer){right:max(var(--exo-clearance),4%)}
body:has([data-site-assistant]) .hero-section .bottom-footer .footer-links{padding-right:0}
body:has([data-site-assistant]) .case-intro-meta{right:max(var(--exo-clearance),3%)}
body:has([data-site-assistant]) .scene-menu-thumb>span{left:10px;right:auto}
body:has([data-site-assistant]) .exyo-shared-footer .footer-info-bar{padding-right:max(0px,calc(var(--exo-clearance) - 2.5vw))}
@media(max-height:480px){#exo-widget[data-safe-dock] .exo-panel-header{min-height:44px}#exo-widget[data-safe-dock] .exo-panel-header>.exo-dust{height:38px;width:38px}#exo-widget[data-safe-dock] .exo-chat-heading{padding:0}#exo-widget[data-safe-dock] .exo-chat-heading>span,#exo-widget[data-safe-dock] .exo-composer>span{display:none}#exo-widget[data-safe-dock] .exo-suggestions{max-height:39px;padding-block:3px}#exo-widget[data-safe-dock] .exo-messages{min-height:36px;padding-block:9px}#exo-widget[data-safe-dock] .exo-composer{padding:3px 8px;margin-bottom:5px}#exo-widget[data-safe-dock] .exo-draft-bar{padding-block:0}}

/* Solid studio surfaces: black, ivory and fine rules, with the brand purple as a small accent. */
#exo-widget .exo-panel{background:var(--exo-ink);opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--exo-line);border-top-color:#77766f;border-radius:0;box-shadow:0 24px 80px #000b}
#exo-widget :is(.exo-panel-header,.exo-chat-view,.exo-suggestions,.exo-draft-bar,.exo-review-view,.exo-panel-footer){background:var(--exo-ink);background-image:none}
#exo-widget .exo-panel-header{border-bottom-color:var(--exo-line)}
#exo-widget .exo-panel-header h2{color:var(--exo-paper)}
#exo-widget .exo-panel-header h2>span{color:var(--exo-accent)}
#exo-widget :is(.exo-panel-header p,.exo-chat-heading>span,.exo-chat-heading>button,.exo-draft-bar>span,.exo-panel-footer,.exo-review-heading>span,.exo-review-intro,.exo-review-form>label,.exo-full-form,.exo-review-status){color:var(--exo-muted)}
#exo-widget .exo-chat-heading{border-bottom-color:#252525}
#exo-widget .exo-chat-heading>button{font-size:9px}
#exo-widget .exo-window-controls>button{color:var(--exo-paper);background:transparent;border-color:var(--exo-line)}
#exo-widget .exo-window-controls>button:hover{background:var(--exo-surface);color:var(--exo-paper);border-color:var(--exo-paper)}
#exo-widget :is(.exo-messages,.exo-review-view){scrollbar-color:var(--exo-line) var(--exo-ink)}
#exo-widget .exo-message>span{font-size:9px;color:var(--exo-muted)}
#exo-widget .exo-message-copy{color:var(--exo-paper)}
#exo-widget .exo-message.is-user{background:var(--exo-surface);border:1px solid var(--exo-line);border-radius:0}
#exo-widget .exo-message.is-user>span{color:var(--exo-muted)}
#exo-widget .exo-message.is-user .exo-message-copy,#exo-widget .exo-message.is-user>p{color:var(--exo-paper)}
#exo-widget .exo-suggestions>:is(button,a){background:var(--exo-surface);border-color:var(--exo-line);color:var(--exo-paper)}
#exo-widget .exo-suggestions>:is(button,a):hover{background:var(--exo-paper);border-color:var(--exo-paper);color:var(--exo-ink)}
#exo-widget .exo-composer{background:var(--exo-surface);border-color:var(--exo-line)}
#exo-widget .exo-composer:focus-within{border-color:var(--exo-paper)}
#exo-widget .exo-composer textarea{color:var(--exo-paper)}
#exo-widget :is(.exo-composer textarea,.exo-quick-form>input,.exo-review-form input,.exo-review-form textarea)::placeholder{color:var(--exo-muted)}
#exo-widget .exo-composer>span{color:var(--exo-muted)}
#exo-widget .exo-composer button,#exo-widget .exo-prepare{background:var(--exo-paper);color:var(--exo-ink);border-radius:0}
#exo-widget .exo-composer button:hover,#exo-widget .exo-prepare:hover{background:#fff;color:var(--exo-ink)}
#exo-widget :is(.exo-draft-bar>button,.exo-review-heading>button,.exo-consent a){color:var(--exo-paper)}
#exo-widget .exo-draft-bar>progress{background:var(--exo-line);color:var(--exo-accent)}
#exo-widget .exo-draft-bar>progress::-webkit-progress-bar{background:var(--exo-line)}
#exo-widget .exo-draft-bar>progress::-webkit-progress-value{background:var(--exo-accent)}
#exo-widget .exo-draft-bar>progress::-moz-progress-bar{background:var(--exo-accent)}
#exo-widget .exo-panel-footer{border-top-color:#252525}
#exo-widget .exo-review-form :is(input:not([type=checkbox]),select,textarea){color:var(--exo-paper);border-bottom-color:var(--exo-line)}
#exo-widget .exo-review-form :is(input:not([type=checkbox]),select,textarea):focus{border-bottom-color:var(--exo-paper)}
#exo-widget .exo-review-form option{background:var(--exo-surface);color:var(--exo-paper)}
#exo-widget .exo-review-form .exo-consent{color:var(--exo-muted)}
#exo-widget .exo-consent>input{accent-color:var(--exo-accent)}
#exo-widget .exo-new-messages{background:var(--exo-surface);border-color:var(--exo-line);border-radius:0;color:var(--exo-paper)}
#exo-widget .exo-greeting{background:var(--exo-ink);border-color:var(--exo-line);box-shadow:0 14px 50px #000a;backdrop-filter:none;-webkit-backdrop-filter:none}
#exo-widget .exo-greeting:after{background:var(--exo-ink);border-color:var(--exo-line)}
#exo-widget .exo-greeting>div>span{color:var(--exo-muted)}
#exo-widget .exo-greeting>p,#exo-widget .exo-quick-form>input{color:var(--exo-paper)}
#exo-widget .exo-quick-form{border-top-color:var(--exo-line)}
#exo-widget .exo-quick-form>button{background:var(--exo-paper);color:var(--exo-ink);border-color:var(--exo-paper)}
#exo-widget :is(button,a,input,textarea,select,[tabindex]):focus-visible{outline-color:var(--exo-paper)}
