@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{--bg:#0d0e0f;--panel:#17181a;--panel2:#202224;--text:#f2f0e8;--muted:#a6ada5;--line:#3a3d41;--accent:#4fa1ff;--accent2:#4fa1ff}
body{font-family:Archivo,sans-serif}
body.light{--bg:#f1f0e9;--panel:#fff;--panel2:#e0e4e9;--text:#15171a;--muted:#585d62;--line:#b5bac0;--accent:#003879;--accent2:#003879}
.brand,.section h2,.section h3,.about h2,.about h3,.story h1,.story h2,.contact-page h1,.footer-top p{font-family:Archivo,sans-serif!important}
.eyebrow,.story-eyebrow,.story-rail,.story-kicker,.project-meta,.project-list-head,.pc-kicker,.form-heading,.contact-direct span{font-family:'IBM Plex Mono',monospace!important}
.site-header{background:#0d0e0ff0;border-bottom:1px solid #4d535a;color:#f2f0e8}
body.light .site-header{background:#f1f0e9f0;color:#15171a}
.brand{font-weight:900;font-size:40px;letter-spacing:-.15em}
.brand small{font-family:'IBM Plex Mono',monospace;font-weight:600;letter-spacing:.08em}
.header-cta,.button.primary,.float-contact{background:#4fa1ff;color:#141618;border-radius:0}
.header-cta:hover,.button.primary:hover,.float-contact:hover{background:#badaff;transform:translateY(-3px)}
.button{border-radius:0}
.story{background:#0d0e0f!important;color:#f2f0e8;height:390vh}
.story:before{background-image:linear-gradient(90deg,#4fa1ff0c 1px,transparent 1px),linear-gradient(#4fa1ff0c 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(#000,transparent 27%)}
.story-sticky{grid-template-columns:minmax(0,51%) minmax(0,49%);padding:0 5vw}
.story-sticky:after{width:61%;background:radial-gradient(ellipse at 60% 50%,#4fa1ff18,transparent 64%)}
.story-copy{max-width:770px}
.story h1{font-size:clamp(65px,6.9vw,112px);font-weight:800;line-height:.94;letter-spacing:-.078em;max-width:820px}
.story h2{font-size:clamp(62px,6vw,96px);font-weight:800;line-height:.95;letter-spacing:-.07em}
.story h1 em,.story h2 em{color:#4fa1ff}
.story-eyebrow{color:#4fa1ff;font-weight:500;font-size:11px;letter-spacing:.13em}
.story-eyebrow:before{background:#4fa1ff}
.story-lede{color:#b6bbc0;font-size:clamp(16px,1.3vw,19px);line-height:1.6;max-width:570px}
.story-actions .button.primary{background:#4fa1ff;color:#121417}
.story-actions .button.secondary{border-color:#676e76;color:#f3f2ec}
.story-actions .button.secondary:hover{border-color:#4fa1ff;color:#4fa1ff}
.story-kicker{color:#a4acb6}
.story-visual{height:min(77vh,760px);min-height:500px;transform:none!important;perspective:1200px}
.story-visual:before{inset:8% 2%;border:1px solid #4fa1ff20;transform:rotate(-14deg) scaleY(.69);box-shadow:0 0 0 65px #4fa1ff08,0 0 0 130px #4fa1ff04}
.story-visual:after{content:'FIG. 01 / FROM FRAGMENTS TO FLOW';color:#b7bec7;font-family:'IBM Plex Mono',monospace;top:2%;right:1%}
.story-visual-frame{inset:0;perspective:1200px}
.ops-world{display:none}
.hero-object-wrap{position:absolute;inset:3% -15% 0 -4%;display:grid;place-items:center;transform-style:preserve-3d;transform:translate3d(var(--object-x,0px),var(--object-y,0px),0) rotateY(var(--object-ry,-8deg)) rotateX(var(--object-rx,7deg)) rotateZ(var(--object-rz,-5deg)) scale(var(--object-scale,1));will-change:transform;transition:filter .3s}
.hero-object-wrap:before{content:'';position:absolute;left:13%;right:4%;bottom:7%;height:14%;border-radius:50%;background:#4fa1ff42;filter:blur(55px);transform:rotate(-12deg)}
.hero-object{position:relative;display:block;width:min(100%,760px);height:auto;object-fit:contain;filter:drop-shadow(0 35px 60px #000b);user-select:none;pointer-events:none}
.hero-object-index,.hero-object-coord{position:absolute;z-index:2;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.14em;color:#b9cfe9;background:#13161add;padding:7px 9px;border:1px solid #4fa1ff5c}
.hero-object-index{left:7%;bottom:6%}.hero-object-coord{right:3%;top:16%}
.world-caption{right:2%;bottom:2%;font-family:'IBM Plex Mono',monospace;color:#a4b4c6}
.world-caption strong{color:#cee0f4;font-size:11px}
.story-background-type{font-family:Archivo,sans-serif;color:#4fa1ff09}
.story-rail{color:#afb8c3;border-color:#4fa1ff33}
.story-rail-index{color:#4fa1ff}.story-rail-track span{background:#4fa1ff;box-shadow:0 0 18px #4fa1ff9a}
.story-skip:hover{color:#4fa1ff}
.reviews{--pr-bg:#dfe4e9;--pr-surface:#f4f3ec;--pr-line:#b0b7be;--pr-ink:#17191c;--pr-muted:#50565d;--pr-signal:#003067}
.reviews .section-head h2,.reviews h3{color:#17191c}
.reviews .section-head h2 em{color:#003067}
.about{background:#111316;border-color:#474f59}
.about:before{font-family:Archivo,sans-serif;color:#4fa1ff0a}
.services{background:#0d0e0f}
.service-card{background:#181a1d;border-color:#3a414a;min-height:390px}
.service-card:hover{background:#1e2227;border-color:#4fa1ff}
.service-icon{font-family:Archivo,sans-serif;font-weight:800}
.approach{background:#4fa1ff;color:#14171a}
.approach .eyebrow,.approach .steps span{color:#002e63}
.approach .section-head>p:last-child,.approach .steps p{color:#2f3741}
.approach .steps{border-color:#3e5c7e}.approach .steps article{border-color:#3e5c7e}
.approach h2 em{color:#003066}
.insights{background:#1a1c1e}
.contact{background:#4fa1ff!important;color:#121417!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:6vw;align-items:start;min-height:0;padding-top:130px;padding-bottom:130px}
.contact .eyebrow{color:#002a5b}.contact h2{font-size:clamp(52px,5.8vw,92px);line-height:.95;letter-spacing:-.08em}.contact h2 em{color:#003169}
.contact .contact-intro>p:not(.eyebrow){color:#2b3744;max-width:500px;font-size:17px;line-height:1.65}
.contact-direct{margin-top:70px;padding-top:18px;border-top:1px solid #365c87;display:grid;gap:10px}
.contact-direct span{font-size:10px;letter-spacing:.15em;color:#002a5b}
.contact-direct a{font-weight:700;font-size:18px;overflow-wrap:anywhere}
.contact-direct a:hover{text-decoration:underline;text-underline-offset:5px}
.enquiry-form{position:relative;padding:33px;background:#15171a;color:#e8edf2;border:1px solid #2f3843;box-shadow:24px 24px 0 #12141724;display:grid;gap:19px}
.form-heading{display:flex;justify-content:space-between;gap:15px;padding-bottom:19px;border-bottom:1px solid #5e6670;color:#a8c5e7;font-size:10px;letter-spacing:.1em}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.enquiry-form label{display:grid;gap:8px;color:#d0d7df;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.05em}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;border:1px solid #505760;border-radius:0;padding:15px 14px;background:#212529;color:#e8edf2;font:400 14px Archivo,sans-serif;letter-spacing:0;outline:none}
.enquiry-form input::placeholder,.enquiry-form textarea::placeholder{color:#99a1aa}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{border-color:#4fa1ff;box-shadow:0 0 0 2px #4fa1ff38}
.enquiry-form textarea{resize:vertical;min-height:130px;line-height:1.5}
.enquiry-form .button{width:100%;font-size:14px;padding:18px 20px;font-family:Archivo,sans-serif}
.enquiry-form .button:disabled{opacity:.65;cursor:wait;transform:none}
.enquiry-form .enquiry-status{min-height:1em;color:#4fa1ff!important;font-size:13px!important;margin:0!important;line-height:1.5!important}
.enquiry-form .enquiry-status.error{color:#ffb7a1!important}
.enquiry-form small{font:400 11px/1.55 Archivo,sans-serif!important;color:#aab1b9!important;margin:0!important}
.form-honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;opacity:0!important;left:-9999px!important;pointer-events:none!important}
.contact-page{display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;align-items:start;padding:120px 5vw;min-height:calc(100vh - 82px);background:radial-gradient(circle at 25% 28%,#4fa1ff12,transparent 40%),#0d0e0f;color:#f2f0e8}
.contact-page-intro h1{font:800 clamp(54px,6vw,94px)/.95 Archivo,sans-serif;letter-spacing:-.08em;margin:25px 0}
.contact-page-intro h1 em{font-style:normal;color:#4fa1ff}
.contact-page-intro>p:not(.eyebrow){font-size:17px;line-height:1.7;color:#b6bbc0;max-width:500px}
.contact-page .contact-direct{border-color:#485665}.contact-page .contact-direct span{color:#4fa1ff}
.contact-page .enquiry-form{box-shadow:24px 24px 0 #4fa1ff18}
.newsletter{background:#111316}
.footer-top p{font-weight:800}
@media(max-width:1050px){.story h1{font-size:clamp(56px,6.3vw,82px)}.story h2{font-size:clamp(50px,5.6vw,72px)}.hero-object-wrap{inset:5% -19% 0 -14%}.contact{gap:4vw}}
@media(min-width:761px) and (max-width:900px){.hero-object-wrap{inset:14% -25% 12% -25%}.story-visual{transform:none!important}}
@media(max-width:760px){.story{height:auto}.story-sticky{padding:20px 5vw 70px}.story-visual{order:0;height:min(83vw,420px);min-height:0;width:100%;margin:0 0 20px;transform:none!important}.story-visual-frame{position:absolute;inset:0;width:auto;transform:none}.hero-object-wrap{inset:0 -5%}.hero-object{width:100%;max-width:520px}.hero-object-index,.hero-object-coord{font-size:7px}.hero-object-index{left:1%;bottom:2%}.hero-object-coord{right:1%;top:12%}.story h1{font-size:clamp(50px,11.5vw,80px)}.story h2{font-size:clamp(45px,9vw,66px)}.story-slide:not(:first-child){border-color:#4fa1ff40}.mobile-step-art{background:#1a1f24;border-color:#437fc4;box-shadow:10px 12px 0 #2e4968}.mobile-step-top{color:#4fa1ff}.mobile-step-art:after{border-color:#4fa1ff40}.mobile-step-bars i{background:#4fa1ff77}.mobile-step-foot{color:#a9b8c9}.contact,.contact-page{grid-template-columns:1fr;gap:45px}.contact{padding:90px 5vw}.contact-direct{margin-top:40px}.enquiry-form{padding:24px}}
@media(max-width:520px){.story-visual{height:80vw;margin:0 0 20px}.hero-object-wrap{inset:0 -6%;transform:none!important}.hero-object-index,.hero-object-coord{display:none}.story h1{font-size:clamp(46px,11vw,62px)}.story-eyebrow{font-size:9px}.story-visual:after,.world-caption{display:none}.form-two{grid-template-columns:1fr}.form-heading{font-size:8px}.contact h2{font-size:clamp(48px,12vw,70px)}.contact-page{padding:70px 5vw}.contact-page-intro h1{font-size:clamp(52px,12vw,70px)}}
@media(prefers-reduced-motion:reduce){.hero-object-wrap{transform:none!important;will-change:auto}}
@media print{.story,.contact,.contact-page,.approach,.reviews,.about{background:#fff!important;color:#000!important}.enquiry-form,.hero-object-wrap{display:none!important}}
