/*
Theme Name: S9 Ecosystem (Hello Elementor Child)
Theme URI: https://s9.eco
Description: Child theme of Hello Elementor. Ports the S9 Ecosystem site (Figma Make / React / Tailwind) to WordPress + Elementor.
Author: S9 Studio
Template: hello-elementor
Version: 1.0.0
Text Domain: s9-eco
*/

/* ==========================================================================
   0. BASE + THEME (day / night)
   ========================================================================== */
:root{--s9-font:"DM Sans",Arial,sans-serif;--s9-ease:cubic-bezier(.2,.8,.2,1)}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body.s9-site{margin:0;background:#fff;color:#0a0a0a;font-family:var(--s9-font);-webkit-font-smoothing:antialiased;min-width:320px;line-height:1.5}
html.s9-dark{color-scheme:dark;background:#0a0a0a}
html.s9-dark body.s9-site{background:#0a0a0a;color:#f2f2f2}
.s9-site ::selection{background:#0a0a0a;color:#fff}
html.s9-dark .s9-site ::selection{background:#fff;color:#0a0a0a}
.s9-site *,.s9-site *::before,.s9-site *::after{box-sizing:border-box}
.s9-site .page-header{display:none}
.s9-site a{text-decoration:none}
.s9-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ==========================================================================
   1. NEUTRALISE ELEMENTOR DEFAULTS (padding, gaps, kit fonts/colours)
   ========================================================================== */
body.s9-site .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--padding-block-start:0px;--padding-block-end:0px;--padding-inline-start:0px;--padding-inline-end:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--kit-widget-spacing:0px;padding:0;gap:0;position:relative}
body.s9-site .elementor-widget:not(:last-child){margin-block-end:0}
body.s9-site .elementor-widget-container{margin:0;padding:0}
body.s9-site .elementor-widget-heading .elementor-heading-title,
body.s9-site .elementor-widget-text-editor{color:inherit;font-family:var(--s9-font)}
body.s9-site .elementor-widget-text-editor{font-size:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit}
body.s9-site .elementor-widget-text-editor p{margin:0}
body.s9-site .elementor-widget-text-editor ul,body.s9-site .elementor-widget-text-editor ol{margin:0;padding:0;list-style:none}
body.s9-site h1,body.s9-site h2,body.s9-site h3,body.s9-site h4{margin:0}

/* ==========================================================================
   2. TONES (every section sets its own colour variables)
   ========================================================================== */
.s9-tone-light,.s9-tone-dark,.s9-tone-auto{--glass-blur:blur(14px) saturate(180%) contrast(1.05)}
.s9-tone-light{--bg:#fff;--fg:#0a0a0a;--rule:rgba(10,10,10,.15);--rule2:rgba(10,10,10,.2);--ring:rgba(10,10,10,.07);--ringline:rgba(10,10,10,.1);
  --glass-bg:rgba(255,255,255,.28);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(10,10,10,.06),inset 1px 0 0 rgba(255,255,255,.6),inset 0 0 0 1px rgba(10,10,10,.08),inset 0 12px 24px -12px rgba(255,255,255,.9),inset 0 -14px 28px -18px rgba(10,10,10,.12),0 30px 60px -30px rgba(10,10,10,.25)}
.s9-tone-dark{--bg:#0a0a0a;--fg:#fff;--rule:rgba(255,255,255,.2);--rule2:rgba(255,255,255,.2);--ring:rgba(255,255,255,.09);--ringline:rgba(255,255,255,.1);
  --glass-bg:rgba(255,255,255,.035);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.04),inset 0 0 0 1px rgba(255,255,255,.1),inset 0 14px 28px -16px rgba(255,255,255,.12),0 40px 80px -30px rgba(0,0,0,.8)}
.s9-tone-auto{--bg:transparent;--fg:currentColor;--rule:rgba(10,10,10,.15);--rule2:rgba(10,10,10,.2);--glass-bg:rgba(255,255,255,.28);--glass-shadow:0 30px 60px -30px rgba(10,10,10,.25)}
/* night theme: light sections turn charcoal */
html.s9-dark .s9-tone-light{--bg:#0a0a0a;--fg:#f2f2f2;--rule:rgba(255,255,255,.14);--rule2:rgba(255,255,255,.2);--ring:rgba(255,255,255,.09);--ringline:rgba(255,255,255,.1);
  --glass-bg:rgba(255,255,255,.04);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.1),0 40px 80px -30px rgba(0,0,0,.8)}
html.s9-dark .s9-tone-auto{--rule:rgba(255,255,255,.15);--rule2:rgba(255,255,255,.2);--glass-bg:rgba(255,255,255,.04);--glass-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
/* day theme: dark sections turn white */
html.s9-light .s9-tone-dark{--bg:#fff;--fg:#0a0a0a;--rule:rgba(10,10,10,.12);--rule2:rgba(10,10,10,.2);--ring:rgba(10,10,10,.07);--ringline:rgba(10,10,10,.1);
  --glass-bg:rgba(255,255,255,.28);
  --glass-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(10,10,10,.08),inset 0 12px 24px -12px rgba(255,255,255,.9),0 30px 60px -30px rgba(10,10,10,.25)}
.s9-sec{position:relative;background:var(--bg);color:var(--fg);width:100%}
html.s9-dark .s9-sec,html.s9-light .s9-sec{transition:background-color .5s,color .5s}
.s9-vh{min-height:100svh}

/* accents per division */
.s9-acc-studio{--accent:#FFB59A}.s9-acc-systems{--accent:#A9B8FF}.s9-acc-labs{--accent:#9FE3C4}.s9-acc-matters{--accent:#FFE08A}.s9-acc-ventures{--accent:#FFB3CF}

/* ==========================================================================
   3. GLASS
   ========================================================================== */
.s9-glass{position:relative;isolation:isolate;background:var(--glass-bg);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.s9-glass::after{content:"";position:absolute;inset:1px;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);mix-blend-mode:overlay;z-index:-1}
.s9-grid-bg{position:absolute;inset:0;opacity:.05;pointer-events:none;background-image:linear-gradient(to right,currentColor 1px,transparent 1px),linear-gradient(to bottom,currentColor 1px,transparent 1px);background-size:48px 48px}

/* ==========================================================================
   4. LAYOUT PRIMITIVES
   ========================================================================== */
body.s9-site .e-con.s9-wrap{width:100%;max-width:1360px;margin-inline:auto;padding-inline:24px;display:flex;flex-direction:column}
@media(min-width:768px){body.s9-site .e-con.s9-wrap{padding-inline:48px}}
.s9-decor{position:absolute!important;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.s9-decor--top{z-index:10}
.s9-par{will-change:transform}
body.s9-site .s9-label{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;opacity:.6;line-height:1.5}
body.s9-site .s9-eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.5}

/* generic 12-col grid */
body.s9-site .e-con.s9-g12{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media(min-width:768px){body.s9-site .e-con.s9-g12{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px}}
@media(min-width:768px){.s9-c3{grid-column:span 3}.s9-c9{grid-column:span 9}.s9-c5{grid-column:span 5}.s9-c6{grid-column:span 6}.s9-c7{grid-column:span 7}.s9-c6s7{grid-column:7/span 6}}
body.s9-site .e-con.s9-g2{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media(min-width:768px){body.s9-site .e-con.s9-g2{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}}

/* "Block": label | content */
body.s9-site .e-con.s9-block{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;border-top:1px solid var(--rule);padding:48px 0}
@media(min-width:768px){body.s9-site .e-con.s9-block{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px;padding:80px 0}
  body.s9-site .e-con.s9-block>.s9-bl{grid-column:span 3}body.s9-site .e-con.s9-block>.s9-bc{grid-column:span 9}}
body.s9-site .e-con.s9-bc{min-width:0}
body.s9-site .e-con.s9-over{border-top:1px solid var(--rule);padding:56px 0;display:flex;flex-direction:column;gap:24px}
@media(min-width:768px){body.s9-site .e-con.s9-over{padding:80px 0}}
body.s9-site .s9-over-t .elementor-widget-container{font-size:clamp(1.25rem,2.4vw,2rem);line-height:1.3;letter-spacing:-.015em;font-weight:400}
body.s9-site .s9-dim{opacity:.5}
body.s9-site .s9-dim-block{display:block;opacity:.5}
body.s9-site .s9-block-t{display:block}

/* ==========================================================================
   5. HEADER / NAV
   ========================================================================== */
.s9-header{position:fixed;top:12px;left:0;right:0;z-index:50}
@media(min-width:768px){.s9-header{top:16px}}
.s9-header__in{max-width:1360px;margin-inline:auto;padding-inline:16px}
@media(min-width:640px){.s9-header__in{padding-inline:24px}}
@media(min-width:768px){.s9-header__in{padding-inline:48px}}
.s9-nav{display:flex;align-items:center;justify-content:space-between;width:100%;height:56px;padding:0 8px 0 20px;border-radius:999px;position:relative;isolation:isolate;
  backdrop-filter:blur(18px) saturate(180%) brightness(1.08);-webkit-backdrop-filter:blur(18px) saturate(180%) brightness(1.08);
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.38));color:#000;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.4),inset 0 0 0 1px rgba(10,10,10,.06),inset 0 12px 24px -14px rgba(255,255,255,.9),inset 0 -12px 24px -16px rgba(10,10,10,.12),0 18px 40px -18px rgba(10,10,10,.28);
  transition:background .5s,color .5s,box-shadow .5s}
html.s9-dark .s9-nav,.s9-header.is-open .s9-nav{background:linear-gradient(180deg,rgba(40,40,40,.55),rgba(10,10,10,.35));color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(255,255,255,.06),inset 0 0 0 1px rgba(255,255,255,.08),inset 0 12px 24px -14px rgba(255,255,255,.22),0 18px 40px -18px rgba(0,0,0,.7)}
.s9-nav__brand{font-weight:500;font-size:18px;letter-spacing:-.02em;color:inherit}
.s9-nav__brand span{font-weight:400;opacity:.6;margin-left:-4px}
.s9-nav__links{display:none;align-items:center;gap:4px;list-style:none;margin:0;padding:0;font-size:14px;font-weight:500}
@media(min-width:768px){.s9-nav__links{display:flex}}
.s9-nav__links a{display:flex;align-items:center;gap:8px;height:36px;padding:0 16px;border-radius:999px;color:inherit;opacity:.65;transition:all .2s}
.s9-nav__links a:hover{opacity:1}
.s9-nav__links a.is-current{opacity:1;background:rgba(127,127,127,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px rgba(127,127,127,.12)}
.s9-nav__links a i{display:none;width:6px;height:6px;border-radius:50%;background:var(--c)}
.s9-nav__links a.is-current i{display:block}
.s9-nav__actions{display:flex;align-items:center;gap:6px}
.s9-pill-btn{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:999px;border:0;padding:0;overflow:hidden;cursor:pointer;color:inherit;
  background:rgba(127,127,127,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px rgba(127,127,127,.12)}
.s9-pill-btn svg{position:absolute;width:18px;height:18px;transition:all .5s}
.s9-ic-sun{transform:rotate(-90deg) scale(.5);opacity:0}.s9-ic-moon{transform:none;opacity:1}
html.s9-dark .s9-ic-sun{transform:none;opacity:1}html.s9-dark .s9-ic-moon{transform:rotate(90deg) scale(.5);opacity:0}
.s9-nav__cta{display:none;align-items:center;gap:6px;height:40px;padding:0 20px;border-radius:999px;font-size:14px;font-weight:500;background:#000;color:#fff;transition:background .3s,color .3s}
@media(min-width:640px){.s9-nav__cta{display:inline-flex}}
html.s9-dark .s9-nav__cta,.s9-header.is-open .s9-nav__cta{background:#fff;color:#000}
.s9-nav__cta svg{width:14px;height:14px}
.s9-nav__burger{display:grid}
@media(min-width:768px){.s9-nav__burger{display:none}}
.s9-ic-close{display:none}.s9-header.is-open .s9-ic-close{display:block}.s9-header.is-open .s9-ic-menu{display:none}

/* mobile menu */
.s9-menu{position:fixed;inset:0;z-index:40;opacity:0;pointer-events:none;transition:opacity .5s;color:#fff}
.s9-menu.is-open{opacity:1;pointer-events:auto}
@media(min-width:768px){.s9-menu{display:none}}
.s9-menu__bg{position:absolute;inset:0;background:rgba(10,10,10,.7);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}
.s9-menu__in{position:relative;height:100%;display:flex;flex-direction:column;padding:96px 24px 32px}
.s9-menu__k{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;margin:0}
.s9-menu__list{list-style:none;margin:16px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.15)}
.s9-menu__list li{border-bottom:1px solid rgba(255,255,255,.15)}
.s9-menu__list a{display:flex;align-items:center;gap:16px;padding:16px 0;color:#fff}
.s9-menu__list .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.s9-menu__list .t{flex:1}.s9-menu__list .n{display:block;font-size:32px;font-weight:300;letter-spacing:-.02em;line-height:1}
.s9-menu__list .d{display:block;margin-top:6px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.45}
.s9-menu__list svg{width:20px;height:20px;opacity:.5}
.s9-menu__cta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;height:56px;padding:0 24px;border-radius:999px;border:0;color:#fff;font:500 16px var(--s9-font);cursor:pointer;
  background:rgba(255,255,255,.035);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.1)}
.s9-menu__cta svg{width:20px;height:20px}
.s9-menu.is-open .s9-menu__list li,.s9-menu.is-open .s9-menu__k,.s9-menu.is-open .s9-menu__cta{animation:s9-menu-in .5s both}
@keyframes s9-menu-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ==========================================================================
   6. HERO
   ========================================================================== */
body.s9-site .s9-hero{overflow:hidden}
.s9-globe{position:absolute;left:50%;top:50%;width:min(115vw,1100px);height:min(115vw,1100px);transform:translate(-50%,-50%) scale(var(--gs,1)) rotate(var(--gr,0deg));pointer-events:none}
.s9-globe>div{width:100%;height:100%;animation:s9-spin 120s linear infinite}
.s9-globe svg{width:100%;height:100%;display:block}
@keyframes s9-spin{to{transform:rotate(360deg)}}
.s9-orb{position:absolute;border-radius:50%;opacity:.9;will-change:transform}
.s9-orb.m{display:none}@media(min-width:768px){.s9-orb.m{display:block}}
body.s9-site .e-con.s9-hero-in{min-height:100svh;display:flex;flex-direction:column;padding-top:128px;padding-bottom:40px}
body.s9-site .e-con.s9-hero-mid{position:relative;flex:1;display:flex;align-items:center;justify-content:center}
.s9-lens{position:absolute;z-index:10;display:none;pointer-events:none}
@media(min-width:768px){.s9-lens{display:block}}
.s9-lens div{border-radius:999px}
.s9-lens--a{left:6%;top:14%}.s9-lens--a div{width:230px;height:230px}
.s9-lens--b{right:6%;bottom:14%}.s9-lens--b div{width:300px;height:110px}
body.s9-site .e-con.s9-hero-title{position:relative;z-index:0;text-align:center;align-items:center;display:flex;flex-direction:column;will-change:transform,opacity}
.s9-pill{display:inline-flex;align-items:center;gap:12px;margin-bottom:32px;padding:8px 16px;border-radius:999px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.s9-pill .dots{display:flex}.s9-pill .dots i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--bg);margin-left:-4px}.s9-pill .dots i:first-child{margin-left:0}
body.s9-site .s9-h1 .elementor-heading-title{font-weight:500;letter-spacing:-.02em;line-height:1.08;font-size:clamp(3.25rem,10vw,10.5rem);max-width:12ch;margin-inline:auto;text-wrap:balance}
body.s9-site .e-con.s9-hero-foot{position:relative;z-index:10;margin-top:48px;border-top:1px solid var(--rule);padding-top:24px}
body.s9-site .s9-hero-foot .elementor-widget-container{font-size:clamp(1.125rem,1.6vw,1.25rem);line-height:1.375;font-weight:400;opacity:.8;max-width:42ch}
@media(min-width:768px){body.s9-site .e-con.s9-hero-foot{width:50%}}

/* ==========================================================================
   7. INTRODUCTION
   ========================================================================== */
body.s9-site .e-con.s9-intro{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:80px;padding-bottom:80px;overflow:visible}
.s9-edge{position:absolute!important;left:0;right:0;height:0;border-top:1px solid var(--rule);pointer-events:none}.s9-edge--t{top:0}.s9-edge--b{bottom:0}
body.s9-site .s9-intro-h .elementor-heading-title{max-width:17ch;font-size:clamp(2.5rem,6vw,6rem);font-weight:500;line-height:1.08;letter-spacing:-.018em}
body.s9-site .e-con.s9-intro-cols{margin-top:56px;border-top:1px solid var(--rule);padding-top:24px}
@media(min-width:768px){body.s9-site .e-con.s9-intro-cols{margin-top:80px}}
body.s9-site .s9-intro-p .elementor-widget-container{font-size:18px;line-height:1.625;opacity:.75}
@media(min-width:768px){body.s9-site .s9-intro-p .elementor-widget-container{font-size:20px}}

/* ==========================================================================
   8. DIVISION SECTIONS
   ========================================================================== */
body.s9-site .e-con.s9-div-top{position:relative;overflow:hidden}
.s9-rings .r{position:absolute;will-change:transform}
.s9-rings .r div{border-radius:50%;border:1px solid var(--ring)}
.s9-rings .r1{right:-12vw;top:8vh}.s9-rings .r1 div{width:min(56vw,820px);height:min(56vw,820px)}
.s9-rings .r2{right:18vw;top:48vh}.s9-rings .r2 div{width:min(22vw,320px);height:min(22vw,320px)}
.s9-rings .r3{left:-10vw;bottom:-10vh}.s9-rings .r3 div{width:30vw;height:30vw}
.s9-rings .r4{left:38%;top:20vh}.s9-rings .r4 div{width:1px;height:60vh;border:0;border-radius:0;background:var(--ringline)}
body.s9-site .e-con.s9-div-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;padding-top:112px;padding-bottom:112px;justify-content:center}
body.s9-site .e-con.s9-div-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;align-items:center}
@media(min-width:1024px){body.s9-site .e-con.s9-div-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px}
  body.s9-site .e-con.s9-div-grid>.s9-dl{grid-column:span 5}body.s9-site .e-con.s9-div-grid>.s9-dr{grid-column:span 7}}
body.s9-site .s9-dr{display:none}@media(min-width:768px){body.s9-site .s9-dr{display:block}}
body.s9-site .e-con.s9-dl{min-width:0}
.s9-no{display:flex;align-items:center;gap:12px;margin-bottom:24px;font-size:14px;font-variant-numeric:tabular-nums}
.s9-no i{width:12px;height:12px;border-radius:50%;background:var(--accent)}.s9-no span{opacity:.6}
body.s9-site .s9-name .elementor-heading-title{font-weight:500;letter-spacing:-.02em;line-height:.92;font-size:20vw}
@media(min-width:768px){body.s9-site .s9-name .elementor-heading-title{font-size:clamp(4rem,7.5vw,8rem)}}
body.s9-site .s9-statement{margin-top:32px;max-width:22ch}
body.s9-site .s9-statement .elementor-widget-container{font-size:clamp(1.375rem,2.2vw,2rem);font-weight:300;line-height:1.25;letter-spacing:-.015em}
.s9-fig{position:relative;overflow:hidden;border-radius:28px}
.s9-fig__bar{position:relative;display:flex;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--rule)}
.s9-fig__bar span{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;opacity:.6}
.s9-fig__body{position:relative;padding:32px}@media(min-width:1024px){.s9-fig__body{padding:40px}}
.s9-fig svg{display:block;width:100%;height:auto}
@keyframes s9-dash{to{stroke-dashoffset:-40}}
.s9-fig .flow{stroke-dasharray:4 6;animation:s9-dash 3s linear infinite}
@media(prefers-reduced-motion:reduce){.s9-fig .flow,.s9-globe>div{animation:none}}
body.s9-site .e-con.s9-div-body{padding-bottom:80px}@media(min-width:768px){body.s9-site .e-con.s9-div-body{padding-bottom:112px}}
.s9-div-end{border-bottom:1px solid var(--rule);height:0}

/* tabs */
.s9-tablist{display:flex;width:100%;border-radius:999px;padding:4px}
@media(min-width:640px){.s9-tablist{display:inline-flex;width:auto}}
.s9-tab{flex:1;height:40px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:inherit;font:500 13px var(--s9-font);white-space:nowrap;opacity:.6;cursor:pointer;transition:opacity .2s,background .2s}
@media(min-width:640px){.s9-tab{flex:none;padding:0 20px;font-size:14px}}
.s9-tab:hover{opacity:1}
.s9-tab.is-active{background:var(--accent);color:#000;opacity:1}
.s9-tab .n{display:none;margin-right:8px;opacity:.5;font-variant-numeric:tabular-nums}@media(min-width:640px){.s9-tab .n{display:inline}}
.s9-panels{margin-top:32px}@media(min-width:768px){.s9-panels{margin-top:40px;min-height:260px}}
.s9-panel[hidden]{display:none}
.s9-panel.is-active{animation:s9-in .45s both}
@keyframes s9-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.s9-t{font-size:1.5rem;font-weight:400;letter-spacing:-.01em;line-height:1.3;margin:0}@media(min-width:768px){.s9-t{font-size:1.75rem}}
.s9-b{font-size:16px;opacity:.7;line-height:1.625;margin:0}
.s9-concept .s9-t{max-width:40ch}
.s9-cols{margin-top:20px}@media(min-width:1024px){.s9-cols{column-count:2;column-gap:48px}.s9-cols p{break-inside:avoid}}
.s9-cols p{margin:0 0 16px}
.s9-n{font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;opacity:.5;margin:0}
.s9-tone-dark.s9-hl .s9-n{color:var(--accent);opacity:1}
.s9-proc{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--rule)}
@media(min-width:640px){.s9-proc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.s9-proc{grid-template-columns:repeat(4,minmax(0,1fr))}}
.s9-proc>div{padding:24px 0;border-bottom:1px solid var(--rule)}
@media(min-width:640px){.s9-proc>div{padding-right:24px}}
@media(min-width:1024px){.s9-proc>div{border-bottom:0;border-right:1px solid var(--rule);padding-left:24px}.s9-proc>div:first-child{padding-left:0}.s9-proc>div:last-child{border-right:0}}
.s9-proc .s9-t{margin-top:12px}.s9-proc .s9-b{margin-top:8px}
.s9-prin{border-top:1px solid var(--rule)}
.s9-prin>div{display:grid;grid-template-columns:3rem 1fr;gap:4px 24px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:baseline}
@media(min-width:768px){.s9-prin>div{grid-template-columns:4rem 1fr 1fr}}
.s9-prin .s9-b{grid-column:2}@media(min-width:768px){.s9-prin .s9-b{grid-column:3}}

/* bordered cell grids (services, chains, columns) */
body.s9-site .e-con.s9-cells{display:grid;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
body.s9-site .e-con.s9-cells-2{grid-template-columns:repeat(2,minmax(0,1fr))}
body.s9-site .e-con.s9-cells-m2,body.s9-site .e-con.s9-cells-m3{grid-template-columns:minmax(0,1fr)}
body.s9-site .e-con.s9-cells-m6{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:768px){body.s9-site .e-con.s9-cells-m2{grid-template-columns:repeat(2,minmax(0,1fr))}body.s9-site .e-con.s9-cells-m3{grid-template-columns:repeat(3,minmax(0,1fr))}body.s9-site .e-con.s9-cells-m6{grid-template-columns:repeat(6,minmax(0,1fr))}}
body.s9-site .e-con.s9-cell{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px;display:flex;flex-direction:column;min-width:0}
@media(min-width:768px){body.s9-site .e-con.s9-cell{padding:24px}}
body.s9-site .e-con.s9-cell--roomy{padding:20px}@media(min-width:768px){body.s9-site .e-con.s9-cell--roomy{padding:28px}}
body.s9-site .e-con.s9-cell--invert{background:var(--fg);color:var(--bg)}
body.s9-site .e-con.s9-card{transition:background-color .2s,color .2s}
body.s9-site .e-con.s9-card:hover{background:var(--accent);color:#000}
body.s9-site .s9-card-t{position:relative}
body.s9-site .s9-card-t .elementor-heading-title{font-size:16px;font-weight:500;letter-spacing:-.01em;line-height:1.375}
@media(min-width:768px){body.s9-site .s9-card-t .elementor-heading-title{font-size:20px}}
body.s9-site .s9-card-d .elementor-widget-container{margin-top:6px;font-size:12px;line-height:1.625;opacity:.6}
@media(min-width:768px){body.s9-site .s9-card-d .elementor-widget-container{font-size:14px}}
body.s9-site .s9-card-t .elementor-heading-title::after{content:"";position:absolute;right:0;top:0;width:16px;height:16px;background:currentColor;opacity:0;transition:opacity .2s;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
body.s9-site .s9-card:hover .s9-card-t .elementor-heading-title::after{opacity:1}

/* icon masks: .ico-* classes (generated in icons.css) */
body.s9-site [class*="ico-"] .elementor-heading-title::before{content:"";display:block;width:20px;height:20px;margin-bottom:16px;background:currentColor;opacity:.8;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
body.s9-site .s9-card[class*="ico-"] .elementor-heading-title::before,body.s9-site .s9-card [class*="ico-"] .elementor-heading-title::before{margin-bottom:16px}
@media(min-width:768px){body.s9-site [class*="ico-"].s9-card-t .elementor-heading-title::before{margin-bottom:24px}}
body.s9-site .s9-cell-t[class*="ico-"] .elementor-heading-title::before{margin-bottom:40px;opacity:.7}
body.s9-site .s9-row-k[class*="ico-"] .elementor-heading-title::before{display:inline-block;width:16px;height:16px;margin:0 8px -2px 0;opacity:.7}
.s9-il li::before{content:"";flex-shrink:0;width:16px;height:16px;background:currentColor;opacity:.7;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.s9-il li{display:flex;align-items:center;gap:12px}

/* manifesto rows */
body.s9-site .e-con.s9-row{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:8px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule)}
@media(min-width:768px){body.s9-site .e-con.s9-row{grid-template-columns:10rem minmax(0,1fr);padding:20px 0}}
body.s9-site .e-con.s9-rows{border-top:1px solid var(--rule)}
body.s9-site .s9-row-k .elementor-heading-title{font-size:16px;font-weight:500;letter-spacing:-.02em}
body.s9-site .s9-row-v .elementor-widget-container{font-size:16px;letter-spacing:-.015em;opacity:.7}
@media(min-width:768px){body.s9-site .s9-row-k .elementor-heading-title,body.s9-site .s9-row-v .elementor-widget-container{font-size:20px}}

/* feature blocks (CIO / MCP / Intelligent web) */
body.s9-site .s9-h3 .elementor-heading-title{margin-top:16px;font-size:clamp(1.75rem,3.2vw,2.75rem);font-weight:400;line-height:1.18;letter-spacing:-.01em;max-width:22ch}
body.s9-site .s9-lede .elementor-widget-container{margin-top:16px;font-size:16px;opacity:.7;max-width:60ch;line-height:1.625}
@media(min-width:768px){body.s9-site .s9-lede .elementor-widget-container{font-size:18px}}
body.s9-site .e-con.s9-feat{margin-top:40px}
body.s9-site .e-con.s9-cell-top{flex-direction:row;justify-content:space-between;align-items:baseline;display:flex;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.6;font-variant-numeric:tabular-nums}
body.s9-site .s9-cell-n .elementor-heading-title{margin-top:40px;font-size:clamp(2rem,3.6vw,3rem);font-weight:400;letter-spacing:-.01em;line-height:1.1}
body.s9-site .s9-cell-n--m .elementor-heading-title{font-size:clamp(1.5rem,2.6vw,2.25rem)}
body.s9-site .s9-cell-n[class*="ico-"] .elementor-heading-title{margin-top:0}
body.s9-site .s9-cell-list{margin-top:24px}
body.s9-site .s9-cell-list ul,body.s9-site .s9-cell-list ol{display:flex;flex-direction:column;gap:4px}
body.s9-site .s9-cell-list li{font-size:14px;opacity:.8}@media(min-width:768px){body.s9-site .s9-cell-list li{font-size:16px}}
.s9-chip{position:absolute!important;right:-14px;top:50%;transform:translateY(-50%);z-index:10;display:none}
@media(min-width:768px){.s9-chip{display:block}}
.s9-chip span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--bg);border:1px solid var(--rule2);font-size:12px;line-height:1}
body.s9-site .e-con.s9-foot2{margin-top:40px;border-top:1px solid var(--rule);padding-top:24px;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media(min-width:768px){body.s9-site .e-con.s9-foot2{grid-template-columns:repeat(2,minmax(0,1fr))}}
body.s9-site .s9-foot2 .elementor-widget-container{font-size:16px;opacity:.7}@media(min-width:768px){body.s9-site .s9-foot2 .elementor-widget-container{font-size:18px}}
body.s9-site .s9-foot2 .s9-strong .elementor-widget-container{opacity:1;font-weight:400}
body.s9-site .s9-chain-t .elementor-heading-title{font-size:16px;font-weight:500;letter-spacing:-.02em}@media(min-width:768px){body.s9-site .s9-chain-t .elementor-heading-title{font-size:18px}}
body.s9-site .s9-chain-t[class*="ico-"] .elementor-heading-title::before{margin-bottom:24px}

/* ==========================================================================
   9. STACKED CLOSING SECTIONS (Connection / Purpose / Future / Contact)
   ========================================================================== */
body.s9-site .e-con.s9-stick{position:sticky;top:0;margin-inline:8px;width:auto;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.s9-z10{z-index:10}.s9-z20{z-index:20}.s9-z30{z-index:30}
body.s9-site .e-con.s9-stick>.s9-wrap{padding-top:96px;padding-bottom:64px}
@media(min-width:768px){body.s9-site .e-con.s9-stick>.s9-wrap{padding-top:112px;padding-bottom:80px}}
body.s9-site .s9-big .elementor-heading-title{font-weight:500;line-height:1;letter-spacing:-.025em;font-size:clamp(2.25rem,4.5vw,4.25rem)}
body.s9-site .s9-big--purpose .elementor-heading-title{font-size:clamp(2.5rem,5.5vw,5rem);letter-spacing:-.03em;line-height:1.02}
body.s9-site .s9-big--future .elementor-heading-title{font-size:clamp(2.5rem,5vw,4.75rem);letter-spacing:-.022em;max-width:18ch}
body.s9-site .e-con.s9-flow{margin-top:64px}
body.s9-site .e-con.s9-flow .s9-cell{padding:24px}
body.s9-site .s9-cell-d .elementor-widget-container{margin-top:8px;font-size:14px;opacity:.7}
body.s9-site .s9-flow .s9-cell-t .elementor-heading-title{font-size:20px;font-weight:500;letter-spacing:-.015em;line-height:1.25}
body.s9-site .s9-returns .elementor-widget-container{margin-top:24px;font-size:14px;font-weight:500}
body.s9-site .e-con.s9-flow-6{grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){body.s9-site .e-con.s9-flow-6{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){body.s9-site .e-con.s9-flow-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
/* purpose */
body.s9-site .e-con.s9-purpose{display:grid;margin-top:64px;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule2)}
@media(min-width:768px){body.s9-site .e-con.s9-purpose{grid-template-columns:repeat(4,minmax(0,1fr))}}
body.s9-site .e-con.s9-pcell{padding:32px 24px 32px 0;border-bottom:1px solid var(--rule2)}
@media(min-width:768px){body.s9-site .e-con.s9-pcell{border-bottom:0;border-right:1px solid var(--rule2);padding-left:24px}body.s9-site .e-con.s9-pcell:first-child{padding-left:0}body.s9-site .e-con.s9-pcell:last-child{border-right:0}}
body.s9-site .s9-pcell-t .elementor-heading-title{font-size:clamp(1.5rem,2.6vw,2.25rem);font-weight:500;letter-spacing:-.018em;line-height:1}
body.s9-site .s9-pcell-t[class*="ico-"] .elementor-heading-title::before{margin-bottom:24px;opacity:.6}
body.s9-site .s9-purpose-p .elementor-widget-container{margin-top:48px;max-width:50ch;font-size:18px;opacity:.7}@media(min-width:768px){body.s9-site .s9-purpose-p .elementor-widget-container{font-size:24px}}
/* future */
body.s9-site .e-con.s9-future-g{margin-top:56px;border-top:1px solid var(--rule);padding-top:32px}
@media(min-width:768px){body.s9-site .e-con.s9-future-g{margin-top:64px}}
body.s9-site .s9-future-p .elementor-widget-container{font-size:18px;font-weight:300;line-height:1.625;opacity:.75}@media(min-width:768px){body.s9-site .s9-future-p .elementor-widget-container{font-size:20px}}
body.s9-site .e-con.s9-lessmore{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
body.s9-site .e-con.s9-lm{min-width:0}
body.s9-site .e-con.s9-lm--a{padding-right:24px}body.s9-site .e-con.s9-lm--b{padding-left:24px;border-left:1px solid var(--rule)}
@media(min-width:768px){body.s9-site .e-con.s9-lm--a{padding-right:32px}body.s9-site .e-con.s9-lm--b{padding-left:32px}}
body.s9-site .elementor-widget.s9-lm-l{margin-bottom:20px}
body.s9-site .s9-lm-w .elementor-widget-container{font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.25}
@media(min-width:768px){body.s9-site .s9-lm-w .elementor-widget-container{font-size:30px}}
body.s9-site .s9-lm-w p+p{margin-top:8px}
body.s9-site .e-con.s9-lm--a .s9-lm-w{opacity:.3}
/* contact */
body.s9-site .e-con.s9-contact{position:relative;z-index:35;min-height:100svh;overflow:hidden}
body.s9-site .e-con.s9-contact-in{position:relative;min-height:100svh;padding-top:112px;padding-bottom:40px;display:flex;flex-direction:column}
body.s9-site .e-con.s9-contact-mid{flex:1;display:flex;flex-direction:column;justify-content:center;padding:48px 0}
body.s9-site .s9-contact-p .elementor-widget-container{font-size:18px;font-weight:300;opacity:.7;max-width:50ch}@media(min-width:768px){body.s9-site .s9-contact-p .elementor-widget-container{font-size:20px}}
.s9-bigcta{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:32px;color:inherit}
.s9-bigcta .t{font-weight:500;letter-spacing:-.018em;line-height:1.08;font-size:clamp(3rem,9vw,8.5rem)}
.s9-bigcta .c{flex-shrink:0;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;transition:transform .3s}
@media(min-width:768px){.s9-bigcta .c{width:112px;height:112px}}
.s9-bigcta .c svg{width:28px;height:28px}@media(min-width:768px){.s9-bigcta .c svg{width:48px;height:48px}}
.s9-bigcta:hover .c{transform:translate(8px,-8px)}
body.s9-site .e-con.s9-btns{margin-top:40px;display:flex;flex-direction:row;flex-wrap:wrap;gap:12px}
body.s9-site .s9-btn .elementor-button{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 24px;border-radius:999px;font:500 14px var(--s9-font);line-height:1;border:0;background:var(--fg);color:var(--bg);transition:opacity .2s;fill:currentColor}
body.s9-site .s9-btn .elementor-button:hover{opacity:.8;background:var(--fg);color:var(--bg)}
body.s9-site .s9-btn .elementor-button-text::after{content:"";display:inline-block;width:16px;height:16px;margin-left:8px;vertical-align:-3px;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
body.s9-site .s9-btn--glass .elementor-button{background:var(--glass-bg);color:var(--fg);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
body.s9-site .s9-btn--glass .elementor-button:hover{background:var(--glass-bg);color:var(--fg)}
body.s9-site .s9-btn--glass .elementor-button-text::after{display:none}

/* ==========================================================================
   10. CONTACT MODAL
   ========================================================================== */
.s9-modal{position:fixed;inset:0;z-index:60;opacity:0;pointer-events:none;transition:opacity .3s}
.s9-modal.is-open{opacity:1;pointer-events:auto}
.s9-modal__bg{position:absolute;inset:0;background:rgba(0,0,0,.2);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.s9-modal__box{position:absolute;left:50%;top:50%;width:calc(100% - 1.5rem);max-height:calc(100svh - 1.5rem);overflow-y:auto;background:#fff;color:#0a0a0a;border-radius:24px;padding:24px;
  box-shadow:0 0 0 1px rgba(10,10,10,.08),0 40px 80px -30px rgba(10,10,10,.35);transform:translate(-50%,-46%) scale(.97);transition:transform .5s var(--s9-ease)}
@media(min-width:640px){.s9-modal__box{width:440px}}
@media(min-width:768px){.s9-modal__box{padding:32px}}
.s9-modal.is-open .s9-modal__box{transform:translate(-50%,-50%) scale(1)}
.s9-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.s9-modal__k{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.5;margin:0}
.s9-modal__t{margin:12px 0 0;font-size:1.75rem;font-weight:400;letter-spacing:-.018em;line-height:1.1;color:#0a0a0a}
.s9-modal__x{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(10,10,10,.1);background:transparent;color:inherit;cursor:pointer;transition:all .2s}
.s9-modal__x:hover{background:#000;color:#fff}.s9-modal__x svg{width:16px;height:16px}
.s9-form{margin-top:24px;display:flex;flex-direction:column;gap:8px}
.s9-form input,.s9-form select,.s9-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(10,10,10,.15);border-radius:0;padding:12px 0;font:400 16px var(--s9-font);color:#0a0a0a;outline:none;box-shadow:none;transition:border-color .2s}
.s9-form input::placeholder,.s9-form textarea::placeholder{color:rgba(10,10,10,.35)}
.s9-form input:focus,.s9-form select:focus,.s9-form textarea:focus{border-bottom-color:#000}
.s9-form select{appearance:none;-webkit-appearance:none;color:rgba(10,10,10,.35)}.s9-form select.has-value{color:#0a0a0a}
.s9-form textarea{resize:none}
.s9-form .hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.s9-form__go{margin-top:16px;display:flex;align-items:center;justify-content:space-between;width:100%;height:48px;padding:0 24px;border:0;border-radius:999px;background:#000;color:#fff;font:500 14px var(--s9-font);cursor:pointer;transition:opacity .2s}
.s9-form__go:hover{opacity:.85}.s9-form__go[disabled]{opacity:.5;cursor:wait}.s9-form__go svg{width:16px;height:16px}
.s9-form__err{margin:8px 0 0;font-size:14px;color:#b00020;min-height:0}
.s9-sent{padding:40px 0}.s9-sent svg{width:24px;height:24px}.s9-sent p{margin:16px 0 0;font-size:18px}
.s9-sent button{margin-top:32px;display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:999px;border:0;background:#000;color:#fff;font:500 14px var(--s9-font);cursor:pointer}
