/* ML Data House — site.css (light theme)
   White + blue brand system with deep-navy accent panels. Mobile-first, no frameworks.
   1 tokens · 2 base · 3 layout · 4 buttons/cards · 5 header/nav · 6 hero · 7 home sections
   8 inner pages · 9 prose · 10 service/industry/case blocks · 11 listings · 12 forms · 13 footer · 14 motion */

/* ───────── 1. tokens ───────── */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:300 800;font-display:swap;
  src:url(../fonts/plus-jakarta-sans-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  color-scheme:light;
  --bg:#fff;--soft:#f5f8ff;--tint:#eaf0ff;
  --ink:#0b1230;--ink-2:#27305a;--muted:#5a6486;--faint:#5f6890;
  --line:#e2e8f6;--line-2:#cfd8ee;
  --blue:#2c60ff;--blue-d:#1c47d6;--blue-l:#eaf0ff;--violet:#7b3dff;--magenta:#d101f8;--cy:#18b6e8;--ok:#14b87a;--warn:#f5a524;
  --navy:#0a1130;--navy-2:#121b4a;
  --grad:linear-gradient(120deg,#d101f8 0%,#7b3dff 48%,#2c60ff 100%);
  --grad-blue:linear-gradient(135deg,#4a7bff 0%,#2c60ff 55%,#5340ff 100%);
  --r-sm:12px;--r:20px;--r-lg:30px;
  --sh-1:0 1px 2px rgba(11,18,48,.05),0 10px 30px -18px rgba(11,18,48,.18);
  --sh-2:0 2px 4px rgba(11,18,48,.04),0 24px 50px -24px rgba(28,71,214,.35);
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:1200px;--gut:clamp(18px,4.2vw,32px);--hh:74px;
  --ease:cubic-bezier(.22,.8,.24,1);
}

/* ───────── 2. base ───────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 16px)}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink-2);font:400 1rem/1.7 var(--font);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{max-width:100%;height:auto}
img{display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,h4,h5{margin:0 0 .5em;line-height:1.14;letter-spacing:-.028em;font-weight:700;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2.1rem,5.2vw,3.85rem);letter-spacing:-.04em;font-weight:800}
h2{font-size:clamp(1.7rem,3.4vw,2.6rem)}
h3{font-size:clamp(1.12rem,1.7vw,1.35rem)}
h4{font-size:1.06rem}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}
::selection{background:#bcd0ff;color:var(--ink)}
.skip{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;transition:top .2s}
.skip:focus{top:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ico{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.22em}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.mute{color:#9aa4c4}

/* ───────── 3. layout ───────── */
.wrap{width:100%;max-width:calc(var(--wrap) + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}
.section{position:relative;padding:clamp(60px,8.5vw,112px) 0}
.section--tight{padding:clamp(36px,5vw,64px) 0}
.section--alt{background:var(--soft);border-block:1px solid var(--line)}
.center{text-align:center}.center .lead{margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin-bottom:16px}
.eyebrow::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--grad-blue);box-shadow:0 0 0 4px rgba(44,96,255,.14)}
.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--muted);max-width:62ch}
.sec-head{max-width:760px;margin-bottom:clamp(30px,4.5vw,56px)}
.sec-head.center{margin-inline:auto}
.sec-head h2{margin-bottom:.35em}
.split{display:grid;gap:clamp(30px,5vw,72px);align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}.split--wide-l{grid-template-columns:1.15fr .85fr}.split--wide-r{grid-template-columns:.85fr 1.15fr}}
.grid{display:grid;gap:clamp(14px,2vw,24px)}
.g2,.g3,.g4{grid-template-columns:1fr}
@media(min-width:640px){.g2,.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}

/* ───────── 4. buttons & cards ───────── */
.btn{--bh:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--bh);padding:0 26px;border-radius:999px;border:1px solid transparent;font-weight:700;font-size:.96rem;letter-spacing:-.005em;white-space:nowrap;position:relative;transition:transform .25s var(--ease),box-shadow .25s,background .25s,border-color .25s,color .2s}
.btn .ico{transition:transform .25s var(--ease)}
.btn:hover .ico{transform:translateX(3px)}
.btn--primary{color:#fff;background:var(--grad-blue);box-shadow:0 12px 26px -10px rgba(44,96,255,.7),inset 0 1px 0 rgba(255,255,255,.3)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 32px -10px rgba(44,96,255,.75),inset 0 1px 0 rgba(255,255,255,.35);background:linear-gradient(135deg,#3b6bff,#1c47d6 60%,#4a35f0)}
.btn--ghost{background:#fff;border-color:var(--line-2);color:var(--ink)}
.btn--ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px);box-shadow:var(--sh-1)}
.btn--sm{--bh:42px;padding:0 20px;font-size:.9rem}
.link-arrow{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--blue);transition:gap .25s var(--ease),color .2s}
.link-arrow:hover{gap:13px;color:var(--blue-d)}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,2.4vw,32px);box-shadow:var(--sh-1);transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
a.card:hover,.card--hover:hover{transform:translateY(-6px);border-color:#b9ccff;box-shadow:var(--sh-2)}
.icon-tile{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;color:#fff;background:var(--grad-blue);box-shadow:0 12px 24px -10px rgba(44,96,255,.7),inset 0 1px 0 rgba(255,255,255,.35);margin-bottom:18px;flex:none}
.icon-tile--soft{background:var(--blue-l);color:var(--blue);box-shadow:none;border:1px solid #d7e3ff}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:999px;background:#fff;border:1px solid var(--line-2);font-size:.82rem;font-weight:700;color:var(--ink-2);box-shadow:var(--sh-1)}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(20,184,122,.18);animation:pulse 2.2s infinite}

/* ───────── 5. header / nav ───────── */
.annbar{position:relative;font-size:.86rem;color:var(--ink-2);background:linear-gradient(90deg,#e9f0ff 0%,#f2ebff 50%,#e3f3ff 100%);border-bottom:1px solid #d9e3fb}
.annbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(123,61,255,.55),rgba(44,96,255,.65),transparent)}
.annbar__in{display:flex;align-items:center;justify-content:center;gap:14px 28px;min-height:46px;padding-block:7px}
.annbar__contact{display:none;list-style:none;gap:24px;margin:0;white-space:nowrap}
@media(min-width:900px){.annbar__in{justify-content:space-between}.annbar__contact{display:flex}}
.annbar__contact li{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-weight:600}
.annbar__contact a:hover{color:var(--blue)}
.annbar__contact .ico{color:var(--blue)}
.annbar__msg{display:flex;align-items:center;justify-content:center;gap:6px 12px;flex-wrap:wrap;font-weight:600;color:var(--ink);text-align:center;line-height:1.35}
.annbar__badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;background:var(--grad);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 6px 14px -6px rgba(123,61,255,.8);position:relative;overflow:hidden}
.annbar__badge::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:shine 3.6s ease-in-out infinite}
.annbar__cta{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--blue);white-space:nowrap;transition:gap .25s var(--ease),color .2s}
.annbar__msg:hover .annbar__cta{gap:10px;color:var(--blue-d)}
.annbar__long{display:none}
.annbar__lbl{display:none}
@media(max-width:699px){.annbar{font-size:.8rem}.annbar__in{min-height:42px;padding-block:5px}.annbar__msg{flex-wrap:nowrap;gap:8px;width:100%;justify-content:flex-start;text-align:left}.annbar__cta{margin-left:auto}}
@media(min-width:700px){.annbar__long{display:inline}.annbar__short{display:none}.annbar__lbl{display:inline}}
.site-header{position:sticky;top:0;z-index:100;height:var(--hh);display:flex;align-items:center;border-bottom:1px solid transparent;background:rgba(255,255,255,.72)}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);pointer-events:none}
.site-header.is-stuck{border-color:var(--line);box-shadow:0 10px 30px -22px rgba(11,18,48,.5)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:11px;flex:none;position:relative}
.brand__mark{width:44px;height:auto;filter:drop-shadow(0 6px 14px rgba(120,60,255,.35));transition:transform .5s var(--ease)}
.brand:hover .brand__mark{transform:rotate(-6deg) scale(1.06)}
.brand__word{font-weight:800;font-size:1.3rem;letter-spacing:-.03em;line-height:1;display:flex;gap:.28em}
.brand__word b{background:linear-gradient(90deg,#c800f0,#8a3dff);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand__word i{font-style:normal;color:var(--blue)}
.nav-toggle{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff;border:1px solid var(--line-2);font-size:1.3rem;color:var(--ink)}
.nav{position:fixed;inset:0 0 0 auto;width:min(86vw,380px);z-index:130;background:#fff;border-left:1px solid var(--line);padding:84px 22px 28px;overflow-y:auto;transform:translateX(104%);visibility:hidden;transition:transform .45s var(--ease),visibility .45s;box-shadow:-40px 0 80px -30px rgba(11,18,48,.4)}
.nav-open .nav{transform:none;visibility:visible}
.nav__scrim{position:fixed;inset:0;z-index:120;background:rgba(10,17,48,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .35s}
.nav-open .nav__scrim{opacity:1;pointer-events:auto}
.nav-close{position:fixed;top:14px;right:16px;z-index:140;display:none}
.nav-open .nav-close{display:grid}
.nav-open{overflow:hidden}
.nav__list{list-style:none;display:flex;flex-direction:column;gap:2px;margin:0}
.nav__list>li>a,.nav__list>li>button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;padding:14px;border:0;background:none;border-radius:14px;font-weight:600;font-size:1.04rem;text-align:left;color:var(--ink)}
.nav__list>li>a:hover,.nav__list>li>button:hover{background:var(--soft);color:var(--blue)}
.nav__list a[aria-current="page"]{color:var(--blue);background:var(--blue-l)}
.nav .ico--chev{transition:transform .3s}
.has-dd.is-open>button .ico--chev{transform:rotate(180deg)}
.dd{list-style:none;margin:0;padding:0 0 0 12px;display:none}
.has-dd.is-open>.dd{display:block}
.dd a{display:block;padding:11px 14px;border-radius:12px;color:var(--muted);font-weight:500;border-left:2px solid var(--line)}
.dd a:hover{color:var(--blue);background:var(--soft);border-color:var(--blue)}
.nav__meta{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:12px;color:var(--muted);font-size:.93rem}
.nav__meta a{display:flex;gap:10px;align-items:center}
.nav__cta{margin-top:18px}
.nav__cta .btn{width:100%}
.header__cta{display:none}
@media(min-width:1000px){
  .nav-toggle,.nav-close,.nav__scrim,.nav__meta,.nav__cta{display:none!important}
  .nav{position:static;inset:auto;width:auto;transform:none;visibility:visible;background:none;border:0;padding:0;overflow:visible;box-shadow:none}
  .nav__list{flex-direction:row;align-items:center;gap:2px}
  .nav__list>li{position:relative}
  .nav__list>li>a,.nav__list>li>button{width:auto;padding:10px 14px;font-size:.95rem;border-radius:999px;color:var(--ink-2)}
  .nav__list>li>a[aria-current="page"]{background:var(--blue-l);color:var(--blue)}
  .dd{display:block;position:absolute;top:calc(100% + 12px);left:50%;min-width:310px;padding:10px;margin:0;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -20px rgba(11,18,48,.28);opacity:0;visibility:hidden;transform:translate(-50%,10px);transition:.28s var(--ease)}
  .dd::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
  .has-dd:hover>.dd,.has-dd:focus-within>.dd,.has-dd.is-open>.dd{opacity:1;visibility:visible;transform:translate(-50%,0)}
  .has-dd:hover>button .ico--chev{transform:rotate(180deg)}
  .dd a{border:0;padding:11px 14px;color:var(--ink-2)}
  .dd a:hover{background:var(--blue-l);color:var(--blue)}
  .header__cta{display:inline-flex}
}

/* ───────── 6. hero (home) ───────── */
.hero{position:relative;overflow-x:clip;margin-top:calc(var(--hh) * -1);padding:calc(var(--hh) + clamp(32px,3.5vw,54px)) 0 clamp(92px,7.5vw,122px);background:
  radial-gradient(50% 60% at 88% 18%,rgba(44,96,255,.16),transparent 70%),
  radial-gradient(40% 50% at 0% 8%,rgba(209,1,248,.10),transparent 70%),
  linear-gradient(180deg,#f6f9ff 0%,#fff 100%)}
.hero__net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.8}
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(44,96,255,.22) 1.2px,transparent 1.4px);background-size:30px 30px;-webkit-mask:radial-gradient(60% 70% at 70% 30%,#000,transparent 80%);mask:radial-gradient(60% 70% at 70% 30%,#000,transparent 80%)}
.hero .wrap{position:relative;z-index:1}
.hero__grid{display:grid;gap:clamp(22px,3vw,44px);align-items:center}
@media(min-width:980px){.hero__grid{grid-template-columns:1.08fr .92fr}}
.hero h1{margin:20px 0 16px;font-size:clamp(2.05rem,3.8vw,3.45rem);line-height:1.1}
.hero .lead{max-width:52ch;margin-bottom:26px}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
@media(min-width:980px){.hero__cta{margin-bottom:0}}
.rotator{position:relative;display:flex;align-items:center;gap:6px 16px;max-width:580px;padding:13px 20px 17px 24px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);overflow:hidden}
.rotator::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--grad)}
.rotator__label{flex:none;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.rotator__stage{position:relative;flex:1;min-height:30px}
.rotator__slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;gap:12px;opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s var(--ease);pointer-events:none}
.rotator__slide.is-on{opacity:1;transform:none;pointer-events:auto}
.rotator__title{font-weight:800;font-size:clamp(.95rem,1.5vw,1.08rem);letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
.rotator__dots{position:absolute;left:0;right:0;bottom:0;display:flex;gap:2px}
.rotator__dots button{flex:1;height:4px;border:0;border-radius:0;background:var(--line);padding:0;transition:background .3s}
.rotator__dots button[aria-current="true"]{width:auto;background:var(--grad)}
@media(max-width:520px){.rotator{flex-wrap:wrap}.rotator__stage{flex:1 1 100%}}
@media(min-width:980px){.rotator{display:none}}
/* hero: flowing data-stream ribbon + floating service chips */
.ribbons{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block;opacity:0;transition:opacity 1.4s ease}
.ribbons.is-ready{opacity:1}
.hero .ribbons{-webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 30%,#000 62%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 30%,#000 62%)}
.hero-stage{position:relative;min-height:370px;display:none}
@media(min-width:980px){.hero-stage{display:block}}
.hero-chip{position:absolute;display:flex;align-items:center;gap:12px;max-width:270px;padding:12px 18px 12px 12px;border-radius:18px;background:rgba(255,255,255,.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:0 20px 40px -20px rgba(11,18,48,.35);animation:float 8s ease-in-out infinite;transition:border-color .4s,box-shadow .4s,background .4s}
.hero-chip:nth-child(2){animation-delay:-3s}.hero-chip:nth-child(3){animation-delay:-5s}
.hero-chip .icon-tile{width:44px;height:44px;font-size:1.2rem;margin:0}
.hero-chip small{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.hero-chip b{display:block;line-height:1.25;color:var(--ink);font-size:.95rem}
.hero-chip.is-on{border-color:var(--blue);box-shadow:0 26px 50px -18px rgba(44,96,255,.55)}
.hero-chip.is-on .icon-tile{background:var(--grad-blue);color:#fff;border-color:transparent;box-shadow:0 10px 20px -8px rgba(44,96,255,.7)}

/* desktop: the hero fills the window, so the services bar ends near the bottom edge of the first screen */
@media(min-width:980px){
  .hero{display:flex;flex-direction:column;justify-content:center;min-height:min(calc(100svh - 100px),880px)}
  .hero .wrap{width:100%}
  .hero-stage{min-height:clamp(380px,56svh,560px)}
}
/* short laptop screens: keep the services bar inside the first screen */
@media(min-width:980px) and (max-height:790px){
  .hero{padding-top:calc(var(--hh) + 20px);padding-bottom:96px}
  .hero h1{font-size:clamp(1.85rem,3vw,2.6rem);margin:12px 0 10px}
  .hero .lead{font-size:1rem;margin-bottom:16px}
  .hero-stage{min-height:300px}
  .svc-strip{margin-top:-44px}
  .svc-tile{padding:18px 22px}
}

/* ───────── 7. home sections ───────── */
.svc-strip{position:relative;z-index:3;margin-top:calc(-1 * clamp(52px,4.6vw,68px))}
.svc-bar{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 30px 60px -30px rgba(11,18,48,.3);overflow:hidden}
.svc-tile{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 26px;border-bottom:1px solid var(--line);transition:background .3s,color .3s}
@media(min-width:760px){.svc-bar{grid-template-columns:repeat(var(--n,3),1fr)}.svc-tile{border-bottom:0;border-right:1px solid var(--line)}.svc-tile:last-child{border-right:0}}
.svc-tile:last-child{border-bottom:0}
.svc-tile .tile-title{margin:0;font-size:1.04rem;font-weight:700;line-height:1.3;color:var(--ink);letter-spacing:-.02em;transition:color .3s}
.svc-tile .icon-tile{margin:0;width:50px;height:50px;font-size:1.35rem;background:var(--blue-l);color:var(--blue);box-shadow:none;border:1px solid #d7e3ff;transition:.3s var(--ease)}
.svc-tile:hover{background:var(--soft)}
.svc-tile:hover .tile-title{color:var(--blue)}
.svc-tile:hover .icon-tile{background:var(--grad-blue);color:#fff;border-color:transparent;transform:rotate(-6deg) scale(1.06)}
.about-vis{position:relative;max-width:520px;margin-inline:auto;width:100%;isolation:isolate}
.about-vis::before{content:"";position:absolute;inset:-16px 18px 18px -16px;border-radius:var(--r-lg);background:var(--grad-blue);opacity:.9;z-index:-1}
.about-vis__frame{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:var(--tint);box-shadow:0 30px 60px -30px rgba(11,18,48,.45);border:6px solid #fff}
.about-vis__frame img{width:100%;height:100%;object-fit:cover}
.about-vis__float{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 40px -18px rgba(11,18,48,.4)}
.about-vis__ceo{left:-20px;bottom:30px;z-index:2}
.about-vis__ceo img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid var(--blue)}
.about-vis__ceo b{display:block;line-height:1.2;color:var(--ink)}.about-vis__ceo span{font-size:.82rem;color:var(--muted)}
.about-vis__badge{right:-16px;bottom:120px;flex-direction:column;gap:0;text-align:center;padding:14px 20px;z-index:2}
.about-vis__badge strong{font-size:2rem;line-height:1;letter-spacing:-.04em;color:var(--blue)}
.about-vis__badge span{font-size:.76rem;color:var(--muted);font-weight:600}
@media(max-width:560px){.about-vis__ceo{left:8px;bottom:14px}.about-vis__badge{right:8px;bottom:84px}.about-vis::before{inset:-10px 12px 12px -10px}}
.play{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;border:0;background:#fff;color:var(--blue);display:grid;place-items:center;font-size:1.8rem;z-index:2;box-shadow:0 14px 40px -8px rgba(10,17,48,.55)}
.play::before,.play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.85);animation:ripple 2.4s infinite}
.play::after{animation-delay:1.2s}
.play .ico{margin-left:4px}
.play--sm{width:56px;height:56px;font-size:1.25rem;position:relative;left:auto;top:auto;transform:none;flex:none;background:var(--grad-blue);color:#fff;box-shadow:0 12px 26px -10px rgba(44,96,255,.7)}
.play--sm::before,.play--sm::after{border-color:rgba(44,96,255,.5)}
.checks{list-style:none;display:grid;gap:12px;margin:0 0 28px}
.checks li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-2)}
.checks .tick{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--grad-blue);color:#fff;font-size:.8rem;margin-top:2px}
.about-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.person{display:flex;align-items:center;gap:12px}
.person img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--blue)}
.person b{display:block;line-height:1.2;color:var(--ink)}.person span{font-size:.85rem;color:var(--muted)}
.certs-title{text-align:center;color:var(--faint);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;margin-bottom:26px}
.certs{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 2px 20px;scrollbar-width:none}
.certs::-webkit-scrollbar{display:none}
.cert{flex:0 0 148px;height:148px;scroll-snap-align:start;border-radius:26px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);transition:transform .35s var(--ease),box-shadow .3s,border-color .3s}
.cert img{width:100%;height:100%;object-fit:cover}
a.cert:hover{transform:translateY(-6px);box-shadow:var(--sh-2);border-color:#b9ccff}
@media(min-width:900px){.certs{justify-content:center;flex-wrap:wrap;overflow:visible;gap:22px}.cert{flex:0 0 160px;height:160px}}
/* industries tabs */
.tabs{display:grid;gap:22px}
@media(min-width:960px){.tabs{grid-template-columns:1.25fr .85fr;gap:28px;align-items:stretch}.tabs>.tab-list{order:2}.tabs>div{order:1}}
.tab-list{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:2px var(--gut);margin:0 calc(var(--gut) * -1);list-style:none}
.tab-list::-webkit-scrollbar{display:none}
@media(min-width:960px){.tab-list{flex-direction:column;overflow:visible;margin:0;padding:0;gap:10px}}
.tab-btn{flex:none;display:flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;border-radius:var(--r);background:#fff;border:1px solid var(--line);font-weight:700;text-align:left;color:var(--ink);transition:.3s var(--ease);white-space:nowrap;box-shadow:var(--sh-1)}
.tab-btn span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--blue-l);font-family:var(--mono);font-size:.84rem;color:var(--blue);transition:.3s}
.tab-btn .ico{margin-left:auto;opacity:0;transform:translateX(-6px);transition:.3s}
.tab-btn:hover{border-color:#b9ccff;color:var(--blue)}
.tab-btn[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 20px 40px -20px rgba(10,17,48,.7)}
.tab-btn[aria-selected="true"] span{background:var(--grad-blue);color:#fff}
.tab-btn[aria-selected="true"] .ico{opacity:1;transform:none}
@media(min-width:960px){.tab-btn{white-space:normal;padding:14px 20px 14px 14px;width:100%;flex:1}}
.tab-panel{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(26px,4vw,48px);min-height:360px;display:flex;flex-direction:column;justify-content:flex-end;gap:14px;background:radial-gradient(70% 90% at 95% 0%,rgba(76,110,255,.55),transparent 62%),radial-gradient(60% 80% at 0% 100%,rgba(209,1,248,.3),transparent 60%),var(--navy);color:#fff;box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.tab-panel[hidden]{display:none}
.tab-panel__icon{position:absolute;right:-24px;top:-10px;font-size:13rem;opacity:.12;color:#fff;line-height:1}
.tab-panel__icon .ico{width:1em;height:1em;stroke-width:1}
.tab-panel h3{font-size:clamp(1.6rem,3vw,2.3rem);margin:0;color:#fff}
.tab-panel p{color:#cdd6fb;max-width:52ch;margin:0}
.tab-panel__cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:10px}
.tab-panel .btn--primary{background:#fff;color:var(--navy);box-shadow:none}
.tab-panel .btn--primary:hover{background:#eaf0ff}
.tab-panel .link-arrow{color:#9db8ff}.tab-panel .link-arrow:hover{color:#fff}
/* offer */
.offer .card h3{margin-bottom:.4em}
.offer .card p{color:var(--muted);margin:0}
.offer__more{display:flex;justify-content:center;margin-top:36px}
/* why */
.why-visual{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 40px 70px -40px rgba(10,17,48,.55);border:6px solid #fff}
.why-visual img{width:100%;aspect-ratio:16/10;object-fit:cover}
.meters{display:grid;gap:22px;margin-bottom:28px}
.meter__top{display:flex;justify-content:space-between;font-weight:700;margin-bottom:8px;color:var(--ink)}
.meter__bar{height:10px;border-radius:10px;background:var(--tint);overflow:hidden}
.meter__bar i{display:block;height:100%;width:0;border-radius:inherit;background:var(--grad-blue);transition:width 1.6s var(--ease)}
/* stats on navy */
.stats-panel{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(28px,4.5vw,56px);background:radial-gradient(60% 120% at 0% 0%,rgba(209,1,248,.35),transparent 60%),radial-gradient(60% 120% at 100% 100%,rgba(44,96,255,.55),transparent 60%),var(--navy);box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.stats-panel::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask:radial-gradient(70% 100% at 50% 50%,#000,transparent);mask:radial-gradient(70% 100% at 50% 50%,#000,transparent);pointer-events:none}
.stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,34px) 14px}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{text-align:center;padding:6px 8px}
@media(min-width:760px){.stat+.stat{border-left:1px solid rgba(255,255,255,.14)}}
.stat strong{display:block;font-size:clamp(2.2rem,4.5vw,3.3rem);line-height:1;letter-spacing:-.045em;font-weight:800;margin-bottom:8px;color:#fff}
.stat span{color:#b9c4f2;font-size:.92rem;font-weight:600}
/* blog cards */
.post{display:flex;flex-direction:column;padding:0;overflow:hidden;height:100%}
.post__img{aspect-ratio:16/10;overflow:hidden;background:var(--tint)}
.post__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
a.post:hover .post__img img{transform:scale(1.07)}
.post__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.post__meta{display:flex;gap:14px;font-size:.78rem;color:var(--faint);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.post__meta span{display:inline-flex;align-items:center;gap:6px}
.post h3{margin:0;font-size:1.15rem;line-height:1.32}
a.post:hover h3{color:var(--blue)}
.post .link-arrow{margin-top:auto;padding-top:6px}
/* cta band */
.cta-band{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(36px,6vw,72px);text-align:center;background:radial-gradient(80% 120% at 0% 0%,rgba(209,1,248,.4),transparent 60%),radial-gradient(80% 120% at 100% 100%,rgba(44,96,255,.65),transparent 60%),var(--navy);box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.cta-band::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask:radial-gradient(60% 90% at 50% 50%,#000,transparent);mask:radial-gradient(60% 90% at 50% 50%,#000,transparent);pointer-events:none}
.cta-band>*{position:relative;z-index:1}
.cta-band h2{margin-bottom:12px;color:#fff}
.cta-band p{color:#d3dbfb;max-width:56ch;margin:0 auto 28px}
.cta-band__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.cta-band .link-arrow{white-space:normal;justify-content:center;text-align:center;line-height:1.4}
.cta-band .btn--primary{background:#fff;color:var(--navy);box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
.cta-band .btn--primary:hover{background:#eaf0ff;box-shadow:0 18px 34px -12px rgba(0,0,0,.55)}
.cta-band .btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35);color:#fff}
.cta-band .btn--ghost:hover{background:rgba(255,255,255,.16);border-color:#fff;color:#fff}

/* ───────── 8. inner page hero ───────── */
.page-hero{position:relative;overflow:clip;margin-top:calc(var(--hh) * -1);padding:calc(var(--hh) + clamp(36px,5vw,64px)) 0 clamp(40px,5.5vw,68px);border-bottom:1px solid var(--line);background:
  radial-gradient(50% 120% at 90% 0%,rgba(44,96,255,.16),transparent 65%),
  radial-gradient(40% 100% at 0% 0%,rgba(209,1,248,.09),transparent 65%),
  linear-gradient(180deg,#f4f7ff,#fff)}
.page-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(44,96,255,.2) 1.2px,transparent 1.4px);background-size:28px 28px;-webkit-mask:radial-gradient(60% 120% at 85% 0%,#000,transparent 75%);mask:radial-gradient(60% 120% at 85% 0%,#000,transparent 75%)}
.page-hero .wrap{position:relative;z-index:1}
.crumbs{list-style:none;display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 20px;font-size:.86rem;color:var(--muted)}
.crumbs li{display:flex;align-items:center;gap:10px}
.crumbs li+li::before{content:"/";color:var(--line-2)}
.crumbs a:hover{color:var(--blue)}
.crumbs [aria-current]{color:var(--ink);font-weight:700}
.page-hero h1{max-width:22ch;margin-bottom:0}
.page-hero__sub{max-width:60ch;margin-top:16px;color:var(--muted);font-size:1.08rem}
.page-hero__video{display:inline-flex;align-items:center;gap:14px;margin-top:26px;font-weight:700;color:var(--ink)}
.page-hero__video:hover{color:var(--blue)}

/* ───────── 9. prose / articles ───────── */
.article{display:grid;gap:36px;align-items:start}
@media(min-width:1080px){.article--toc{grid-template-columns:minmax(0,1fr) 290px;gap:56px}}
.prose{font-size:1.06rem;line-height:1.82;color:var(--ink-2);min-width:0;max-width:78ch}
.prose>*+*{margin-top:1.15em}
.prose h2{margin-top:2.1em;padding-top:.2em;font-size:clamp(1.5rem,2.8vw,2.1rem)}
.prose h3{margin-top:1.8em;font-size:clamp(1.2rem,2.2vw,1.55rem)}
.prose h4{margin-top:1.5em}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose a{color:var(--blue);text-decoration:underline;text-decoration-color:rgba(44,96,255,.35);text-underline-offset:3px;transition:.2s}
.prose a:hover{color:var(--blue-d);text-decoration-color:currentColor}
.prose strong,.prose b{color:var(--ink);font-weight:700}
.prose ul,.prose ol{padding-left:0;list-style:none;display:grid;gap:.7em}
.prose ul>li{position:relative;padding-left:30px}
.prose ul>li::before{content:"";position:absolute;left:0;top:.62em;width:16px;height:16px;border-radius:5px;background:var(--grad-blue);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.prose ul ul{margin-top:.7em}
.prose ol{counter-reset:li}
.prose ol>li{counter-increment:li;position:relative;padding-left:44px}
.prose ol>li::before{content:counter(li);position:absolute;left:0;top:.1em;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--blue-l);border:1px solid #d7e3ff;font-weight:800;font-size:.85rem;color:var(--blue)}
.prose blockquote{margin-inline:0;padding:20px 24px;border-left:3px solid var(--blue);background:var(--soft);border-radius:0 var(--r) var(--r) 0;color:var(--ink);font-size:1.1rem}
.prose figure{margin:2em 0}
.prose img{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh-1);width:100%}
.prose figcaption{font-size:.88rem;color:var(--faint);margin-top:10px;text-align:center}
.prose hr{border:0;height:1px;background:var(--line);margin:2.4em 0}
.prose li,.prose p{overflow-wrap:anywhere}
.prose code{overflow-wrap:anywhere;font-family:var(--mono);font-size:.88em;padding:.16em .45em;border-radius:7px;background:var(--tint);color:#4a2fd6}
.prose pre{overflow:auto;padding:20px 22px;border-radius:var(--r);background:var(--navy);border:1px solid var(--navy-2);font-size:.88rem;line-height:1.7}
.prose pre code{padding:0;background:none;color:#d7e0ff}
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:#fff}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
.prose th,.prose td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{background:var(--soft);color:var(--ink);font-weight:700;white-space:nowrap}
.prose tr:last-child td{border-bottom:0}
.prose .step{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.step-no{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:999px;background:var(--grad-blue);color:#fff;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 20px -8px rgba(44,96,255,.8)}
.block{position:relative;padding:clamp(22px,3vw,34px);border-radius:var(--r-lg);background:var(--soft);border:1px solid var(--line)}
.prose .block{margin-top:1.6em}
.prose .block>h2:first-child,.prose .block>h3:first-child{margin-top:0}
.callout{padding:22px 26px;border-radius:var(--r);background:var(--blue-l);border:1px solid #cddcff;color:var(--ink)}
.callout p:last-child{margin-bottom:0}
.callout strong{font-size:1.12rem;display:block;margin-bottom:6px;color:var(--ink)}
.toc{position:sticky;top:calc(var(--hh) + 22px);padding:22px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);font-size:.92rem;max-height:calc(100vh - var(--hh) - 44px);overflow:auto}
.toc h2{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 12px}
.toc ol{list-style:none;display:grid;gap:2px}
.toc a{display:block;padding:8px 12px;border-radius:10px;color:var(--muted);border-left:2px solid transparent;line-height:1.4;transition:.2s}
.toc a:hover{color:var(--blue);background:var(--soft)}
.toc a.is-on{color:var(--blue);background:var(--blue-l);border-left-color:var(--blue);font-weight:700}
.toc--m{display:none;padding:0;position:static;max-height:none;margin-bottom:1.6em}
.toc--m summary{cursor:pointer;padding:16px 20px;font-weight:700;list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--ink)}
.toc--m summary::-webkit-details-marker{display:none}
.toc--m summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--blue)}
.toc--m[open] summary::after{content:"–"}
.toc--m ol{padding:0 12px 14px}
@media(max-width:1079px){.toc--desk{display:none}.toc--m{display:block}}
.cover{margin:0 0 2em!important}
.cover img{aspect-ratio:16/9;object-fit:cover;width:100%;background:#fff}
.pillrow{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
a.pill{transition:.25s}
a.pill:hover,a.pill[aria-current]{background:var(--blue);border-color:var(--blue);color:#fff}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;background:transparent;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:var(--grad)}
.legal .prose{max-width:84ch}
.legal .prose h2{font-size:clamp(1.3rem,2.4vw,1.75rem)}
.legal .prose h2:first-of-type{margin-top:.2em}

/* ───────── 10. service / industry / case study blocks ───────── */
.feat-grid .card{display:flex;gap:18px;align-items:flex-start}
.feat-grid .icon-tile{margin:0}
.feat-grid h2,.feat-grid h3{margin:2px 0 6px;font-size:1.1rem;letter-spacing:-.02em}
.feat-grid p{margin:0;color:var(--muted);font-size:.96rem}
.feat-intro{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between;margin-bottom:26px;color:var(--muted)}
.prose--wide{max-width:none}
.prose--wide>p,.prose--wide>ul:not(.list-cards),.prose--wide>ol{max-width:80ch}
ul.list-cards{list-style:none;display:grid;gap:14px;margin:0;padding:0;align-items:start}
@media(min-width:760px){ul.list-cards{grid-template-columns:repeat(2,1fr)}}
.cols-blocks ul.list-cards{grid-template-columns:1fr}
ul.list-cards>li{position:relative;padding:20px 22px 20px 66px;border-radius:var(--r);background:#fff;border:1px solid var(--line);color:var(--muted);font-size:.97rem;line-height:1.65;transition:.3s var(--ease);box-shadow:var(--sh-1)}
ul.list-cards>li:hover{border-color:#b9ccff;transform:translateY(-3px);box-shadow:var(--sh-2)}
ul.list-cards>li::before{content:"";position:absolute;left:20px;top:21px;width:28px;height:28px;border-radius:10px;background:var(--grad-blue);box-shadow:0 8px 16px -6px rgba(44,96,255,.7);-webkit-mask:none;mask:none}
ul.list-cards>li::after{content:"";position:absolute;left:30px;top:27px;width:7px;height:12px;border:solid #fff;border-width:0 2.4px 2.4px 0;transform:rotate(45deg)}
ul.list-cards>li>strong{display:block;color:var(--ink);font-size:1.03rem;margin-bottom:4px}
ul.list-cards>li ul{margin-top:12px;display:grid;gap:10px}
ul.list-cards>li ul>li{padding:12px 16px;border-radius:12px;background:var(--soft);border:1px solid var(--line);font-size:.92rem}
ul.list-cards>li ul>li::before,ul.list-cards>li ul>li::after{display:none}
ul.list-cards>li ul>li>strong{color:var(--ink)}
.cols-blocks{display:grid;gap:22px}
@media(min-width:900px){.cols-blocks{grid-template-columns:1fr 1fr}}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chips span{padding:8px 15px;border-radius:999px;background:#fff;border:1px solid var(--line-2);font-size:.88rem;font-weight:600;color:var(--ink-2);transition:.25s}
.chips span:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-2px)}
.tech-cat{margin-bottom:22px}
.tech-cat h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.benefit.card,.benefit{height:100%}
.benefit h3{font-size:1.1rem;margin-bottom:.4em}
.benefit p{color:var(--muted);margin:0;font-size:.97rem}
/* industry: offerings split */
.offer-split{display:grid;gap:clamp(26px,4vw,56px)}
@media(min-width:960px){.offer-split{grid-template-columns:.7fr 1.3fr;align-items:start}.offer-split__intro{position:sticky;top:calc(var(--hh) + 30px)}}
.offer-split__intro small{display:block;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--blue);margin-bottom:12px}
.offer-split__intro p{color:var(--muted);font-size:1.05rem}
.offer-items{display:grid;gap:14px}
@media(min-width:640px){.offer-items{grid-template-columns:repeat(2,1fr)}}
.offer-item{padding:22px 24px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);transition:.3s var(--ease)}
.offer-item:hover{border-color:#b9ccff;transform:translateY(-4px);box-shadow:var(--sh-2)}
.offer-item h3{font-size:1.06rem;margin-bottom:.4em}
.offer-item p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.65}
/* industry: approach timeline */
.approach{display:grid;gap:18px;position:relative}
.step-card{position:relative;display:grid;gap:14px;padding:clamp(22px,3vw,34px);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.step-card::before{content:attr(data-n);position:absolute;right:18px;top:8px;pointer-events:none;font-size:clamp(5rem,12vw,8.5rem);font-weight:800;letter-spacing:-.06em;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(44,96,255,.16)}
.step-card h3{margin:0;position:relative;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding-right:70px}
.step-card p{margin:0;color:var(--muted);position:relative}
.step-card ul{list-style:none;display:grid;gap:10px;position:relative}
.step-card li{padding:12px 16px;border-radius:14px;background:var(--soft);border:1px solid var(--line);color:var(--muted);font-size:.96rem}
.step-card li strong{color:var(--ink)}
@media(min-width:900px){.step-card::before{display:none}.approach::before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:2px;background:linear-gradient(180deg,#d101f8,#2c60ff);opacity:.3}.step-card{margin-left:76px}.step-card::after{content:attr(data-n);position:absolute;left:-76px;top:26px;width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:var(--grad-blue);color:#fff;font-weight:800;font-size:1.2rem;box-shadow:0 12px 26px -8px rgba(44,96,255,.7)}}
/* case studies */
.gallery{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 30px 60px -34px rgba(11,18,48,.4)}
.gallery__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.gallery__track::-webkit-scrollbar{display:none}
.gallery__track>*{flex:0 0 100%;scroll-snap-align:center}
.gallery__track img{width:100%;aspect-ratio:16/9;object-fit:contain;background:#f1f4fb;cursor:zoom-in}
.gallery__nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;font-size:1.1rem;transition:.25s;box-shadow:var(--sh-1)}
.gallery__nav:hover{background:var(--blue);color:#fff;border-color:transparent}
.gallery__nav--prev{left:14px}.gallery__nav--next{right:14px}
.gallery__dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px}
.gallery__dots button{width:24px;height:5px;border-radius:5px;border:0;background:rgba(11,18,48,.25);padding:0}
.gallery__dots button[aria-current="true"]{width:40px;background:var(--blue)}
.case-layout{display:grid;gap:clamp(26px,4vw,48px);align-items:start}
@media(min-width:1000px){.case-layout{grid-template-columns:minmax(0,1fr) 340px}}
.info-card{position:sticky;top:calc(var(--hh) + 24px)}
.info-card h3{margin-bottom:16px}
.info-card dl{margin:0;display:grid;gap:14px}
.info-card dt{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.info-card dd{margin:2px 0 0;font-weight:700;font-size:1.02rem;color:var(--ink)}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(5,8,26,.92);display:none;place-items:center;padding:20px;cursor:zoom-out}
.lightbox.is-open{display:grid}
.lightbox img{max-height:92vh;max-width:96vw;border-radius:12px;box-shadow:0 30px 80px #000;background:#fff}
.modal{position:fixed;inset:0;z-index:310;display:none;place-items:center;padding:20px;background:rgba(5,8,26,.85);backdrop-filter:blur(6px)}
.modal.is-open{display:grid}
.modal__box{position:relative;width:min(960px,100%);aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000;box-shadow:0 30px 90px #000}
.modal__box.is-short{aspect-ratio:9/16;width:min(420px,92vw);max-height:88vh}
.modal__box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal__close{position:absolute;top:-52px;right:0;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;font-size:1.1rem}
@media(max-height:620px){.modal__close{top:6px;right:6px;z-index:2;background:rgba(0,0,0,.6)}}

/* ───────── 11. listings ───────── */
.case-card{padding:0;overflow:hidden;height:100%;display:flex;flex-direction:column}
.case-card__img{aspect-ratio:16/10;overflow:hidden;background:#f1f4fb;position:relative;border-bottom:1px solid var(--line)}
.case-card__img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .9s var(--ease)}
a.case-card:hover .case-card__img img{transform:scale(1.06)}
.case-card__body{padding:20px 24px 24px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.case-card__body h3{margin:0;font-size:1.12rem}
.case-card__arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--blue-l);color:var(--blue);flex:none;transition:.3s var(--ease)}
a.case-card:hover .case-card__arrow{transform:rotate(45deg);background:var(--blue);color:#fff}
.quote-card{display:flex;flex-direction:column;gap:18px;height:100%}
.quote-card__stars{display:flex;gap:3px;color:var(--warn)}
.quote-card blockquote{margin:0;color:var(--ink-2);font-size:1.04rem;line-height:1.75}
.quote-card footer{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.quote-card img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--blue)}
.quote-card b{display:block;line-height:1.2;color:var(--ink)}.quote-card span{font-size:.86rem;color:var(--muted)}
.quote-card__mark{position:absolute;right:24px;top:20px;font-size:2.6rem;color:var(--tint)}
.price{display:flex;flex-direction:column;gap:22px;height:100%}
.price h3{margin:0}
.price__amt{font-size:2.8rem;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.price__amt small{font-size:1rem;font-weight:600;color:var(--muted);letter-spacing:0}
.price ul{list-style:none;display:grid;gap:12px;color:var(--ink-2)}
.price li{display:flex;gap:10px;align-items:flex-start}
.price li .ico{color:var(--blue);margin-top:.2em}
.price .btn{margin-top:auto}
.price--hot{border-color:var(--blue);background:linear-gradient(180deg,#f3f7ff,#fff);box-shadow:var(--sh-2)}

/* ───────── 12. contact + forms ───────── */
.contact-grid{display:grid;gap:clamp(24px,4vw,44px)}
@media(min-width:960px){.contact-grid{grid-template-columns:.8fr 1.2fr;align-items:start}}
.contact-list{list-style:none;display:grid;gap:14px;margin-bottom:22px}
.contact-list li{display:flex;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);transition:.3s var(--ease)}
.contact-list li:hover{border-color:#b9ccff;transform:translateX(4px)}
.contact-list .icon-tile{margin:0;width:48px;height:48px;font-size:1.25rem}
.contact-list small{display:block;color:var(--faint);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}
.contact-list a,.contact-list b{font-weight:700;font-size:1.06rem;word-break:break-word;color:var(--ink)}
.socials{display:flex;gap:10px}
.socials a{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1px solid var(--line-2);font-size:1.15rem;color:var(--ink);transition:.3s var(--ease)}
.socials a:hover{background:var(--blue);border-color:transparent;color:#fff;transform:translateY(-3px)}
.form{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:640px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.field{display:grid;gap:7px}
.field label{font-size:.82rem;font-weight:700;color:var(--ink);letter-spacing:.01em}
.field input,.field textarea,.field select{width:100%;padding:15px 17px;border-radius:14px;background:#fff;border:1px solid var(--line-2);color:var(--ink);transition:border-color .25s,box-shadow .25s;min-height:52px}
.field textarea{min-height:130px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#9aa3c2}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(44,96,255,.16)}
.field input:user-invalid{border-color:#e5484d}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-result{margin-top:16px}
.form-result .inner{padding:14px 18px;border-radius:14px;font-weight:600;border:1px solid}
.form-result .success{background:#e9faf2;border-color:#9be3c4;color:#0b7a50}
.form-result .error{background:#fdecee;border-color:#f3b2b8;color:#b3262e}
.form-result p{margin:0}
.form-result .sending{color:var(--muted)}

/* ───────── 13. footer + floating ───────── */
.site-footer{position:relative;margin-top:clamp(40px,6vw,80px);background:radial-gradient(60% 80% at 100% 0%,rgba(44,96,255,.28),transparent 60%),radial-gradient(50% 70% at 0% 100%,rgba(209,1,248,.14),transparent 60%),var(--navy);color:#b6c0ea}
.site-footer::before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,#7b3dff,#2c60ff,transparent)}
.site-footer .brand__word b{background:linear-gradient(90deg,#f04bff,#b45cff);-webkit-background-clip:text;background-clip:text}
.site-footer .brand__word i{color:#7ea2ff}
.site-footer .brand__mark{filter:drop-shadow(0 6px 16px rgba(139,61,255,.55))}
.foot-news{padding:clamp(28px,4vw,44px) 0;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-news__in{display:grid;gap:18px;align-items:center}
@media(min-width:900px){.foot-news__in{grid-template-columns:1fr 1.1fr}}
.foot-news h2{font-size:1.4rem;margin:0;color:#fff}
.news-form{display:flex;gap:10px;flex-wrap:wrap}
.news-form input{flex:1 1 220px;min-height:52px;padding:0 20px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff}
.news-form input::placeholder{color:#8f9bcb}
.news-form input:focus{outline:0;border-color:#7ea2ff;box-shadow:0 0 0 4px rgba(126,162,255,.22)}
.site-footer .form-result .sending{color:#b6c0ea}
.foot-main{display:grid;gap:36px 28px;padding-block:clamp(40px,6vw,64px);grid-template-columns:1fr 1fr}
@media(min-width:900px){.foot-main{grid-template-columns:1.5fr 1fr 1fr 1.1fr}}
.foot-about{grid-column:1/-1}
@media(min-width:900px){.foot-about{grid-column:auto}}
.foot-about p{color:#9ba7d6;max-width:36ch;margin:16px 0}
.site-footer .socials a{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.site-footer .socials a:hover{background:var(--blue)}
.foot-col h3{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#7ea2ff;margin-bottom:16px}
.foot-col ul{list-style:none;display:grid;gap:10px}
.foot-col a{color:#b6c0ea;transition:.2s}
.foot-col a:hover{color:#fff;padding-left:4px}
.foot-contact li{display:flex;gap:10px;align-items:flex-start;color:#b6c0ea}
.foot-contact .ico{color:#7ea2ff;margin-top:.3em}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:22px;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;color:#8f9bcb;font-size:.9rem}
.foot-bottom a:hover{color:#fff}
.wa-float{position:fixed;right:16px;bottom:16px;z-index:90;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;font-size:1.7rem;box-shadow:0 12px 30px -8px rgba(37,211,102,.7);transition:transform .3s var(--ease)}
.wa-float:hover{transform:scale(1.1) rotate(-6deg)}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(37,211,102,.8);animation:ripple 2.6s infinite}
.to-top{position:fixed;right:20px;bottom:84px;z-index:90;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--line-2);color:var(--ink);box-shadow:var(--sh-1);opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s}
.to-top.is-on{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--blue);color:#fff;border-color:transparent}

/* ───────── 13b. page-hero art, framework, faq, checklist ───────── */
.page-hero .ribbons{-webkit-mask-image:linear-gradient(90deg,transparent 34%,#000 82%);mask-image:linear-gradient(90deg,transparent 34%,#000 82%);opacity:.9}
.page-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.page-hero .muted-word{color:#9aa4c4}
.fw-trio{display:grid;gap:18px}
@media(min-width:900px){.fw-trio{grid-template-columns:1.05fr 1fr 1fr}}
.fw-card{position:relative;overflow:hidden;border-radius:var(--r-lg);min-height:330px;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;border:1px solid var(--line);background:#fff;box-shadow:var(--sh-1)}
.fw-card small{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.fw-card h2,.fw-card h3{margin:0;font-size:clamp(1.35rem,2.4vw,1.8rem);letter-spacing:-.025em}
.fw-card p{margin:0;color:var(--muted)}
.fw-card--art{padding:0;background:radial-gradient(70% 70% at 50% 40%,#e3ecff,#fff 78%)}
.fw-card--art .ribbons{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 25%);mask-image:linear-gradient(180deg,transparent 0,#000 25%)}
.fw-card--art figcaption{position:relative;z-index:1;margin:auto 0 0;padding:16px 22px;background:linear-gradient(0deg,#fff 40%,transparent);font-weight:700;color:var(--ink)}
.fw-card--dark{background:radial-gradient(70% 90% at 95% 0%,rgba(76,110,255,.55),transparent 62%),radial-gradient(60% 80% at 0% 100%,rgba(209,1,248,.3),transparent 60%),var(--navy);border:0;color:#fff;box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.fw-card--dark h2,.fw-card--dark h3{color:#fff}
.fw-card--dark small{color:#9db8ff}
.fw-facts{list-style:none;display:grid;gap:10px;margin-top:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}
.fw-facts li{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;color:#cdd6fb}
.fw-facts b{color:#fff;font-weight:700;text-align:right}
a.fw-card:hover{border-color:#b9ccff;box-shadow:var(--sh-2);transform:translateY(-5px);transition:.35s var(--ease)}
.fw-card--link .icon-tile{position:absolute;top:26px;left:28px;margin:0}
.phases{display:grid;gap:18px;counter-reset:ph}
@media(min-width:900px){.phases{grid-template-columns:repeat(3,1fr)}}
.phase{position:relative;display:flex;flex-direction:column;gap:12px;padding:30px 28px 28px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1);overflow:hidden;transition:.35s var(--ease)}
.phase:hover{transform:translateY(-6px);border-color:#b9ccff;box-shadow:var(--sh-2)}
.phase::before{content:attr(data-n);position:absolute;right:16px;top:-6px;font-size:7.5rem;font-weight:800;letter-spacing:-.06em;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(44,96,255,.16);pointer-events:none}
.phase__tag{align-self:flex-start;display:inline-flex;height:28px;align-items:center;padding:0 14px;border-radius:999px;background:var(--grad-blue);color:#fff;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 8px 18px -8px rgba(44,96,255,.8)}
.phase h3{margin:4px 0 0;position:relative}
.phase p{margin:0;color:var(--muted);position:relative}
.phase ul{list-style:none;display:grid;gap:10px;margin-top:6px;position:relative}
.phase li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2);font-size:.96rem}
.phase li .ico{color:var(--blue);margin-top:.2em}
.timeline{list-style:none;display:grid;gap:22px;position:relative}
@media(min-width:900px){.timeline{grid-template-columns:repeat(3,1fr);gap:28px}.timeline::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:linear-gradient(90deg,#d101f8,#7b3dff,#2c60ff);opacity:.35}}
.timeline li{position:relative;padding-top:38px}
.timeline li::before{content:"";position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:#fff;border:6px solid var(--blue);box-shadow:0 0 0 6px rgba(44,96,255,.14)}
.timeline small{display:block;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.74rem;color:var(--blue);margin-bottom:6px}
.timeline h3{margin:0 0 6px}
.timeline p{margin:0;color:var(--muted);font-size:.96rem}
.timeline em{display:inline-block;margin-top:10px;font-style:normal;font-size:.82rem;font-weight:700;color:var(--ink-2);background:var(--blue-l);border-radius:999px;padding:4px 12px}
@media(max-width:899px){.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,#d101f8,#2c60ff);opacity:.3}.timeline li{padding:0 0 0 46px}}
.faq{display:grid;gap:12px;max-width:860px;margin-inline:auto}
.faq details{border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--sh-1);transition:.3s var(--ease)}
.faq details[open]{border-color:#b9ccff;box-shadow:var(--sh-2)}
.faq summary{cursor:pointer;list-style:none;padding:20px 24px;font-weight:700;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:1.04rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--blue-l);color:var(--blue);font-size:1.3rem;line-height:1;transition:.3s var(--ease)}
.faq details[open] summary::after{content:"–";background:var(--blue);color:#fff}
.faq .faq__a{padding:0 24px 22px;color:var(--muted)}
.faq .faq__a p:last-child{margin-bottom:0}
.faq .faq__a ul{list-style:disc;padding-left:20px;display:grid;gap:6px;margin:.6em 0}
.kv{display:grid;gap:10px;margin:14px 0 0;padding:16px 18px;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.kv div{display:grid;gap:2px}
.kv dt{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.kv dd{margin:0;color:var(--ink-2);font-size:.98rem;line-height:1.6}
.week-list{list-style:none;display:grid;gap:8px;margin-top:10px}
.checklist{display:grid;gap:24px}
@media(min-width:1000px){.checklist{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}
.ck-groups{display:grid;gap:18px}
.ck-group{border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 26px 18px;background:#fff;box-shadow:var(--sh-1);margin:0;min-width:0}
.ck-group legend{padding:0 10px;margin-left:-10px;font-weight:800;font-size:1.12rem;color:var(--ink);display:flex;gap:10px;align-items:center}
.ck-group legend span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--grad-blue);color:#fff;font-size:.82rem}
.ck{display:flex;gap:14px;align-items:flex-start;padding:13px 6px;border-top:1px solid var(--line);cursor:pointer;color:var(--ink-2);line-height:1.55}
.ck:first-of-type{border-top:0}
.ck input{appearance:none;-webkit-appearance:none;flex:none;width:24px;height:24px;margin-top:2px;border-radius:8px;border:2px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s}
.ck input::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.4px 2.4px 0;transform:rotate(45deg) scale(0);transition:transform .2s var(--ease);margin-top:-2px}
.ck input:checked{background:var(--grad-blue);border-color:transparent}
.ck input:checked::after{transform:rotate(45deg) scale(1)}
.ck input:checked+span{color:var(--ink)}
.ck:hover input{border-color:var(--blue)}
.ck-score{position:sticky;top:calc(var(--hh) + 22px);padding:26px;border-radius:var(--r-lg);background:radial-gradient(80% 80% at 100% 0%,rgba(76,110,255,.5),transparent 60%),var(--navy);color:#fff;box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.ck-score h2{font-size:1.1rem;color:#fff;margin:0 0 6px}
.ck-score__num{font-size:3.4rem;font-weight:800;letter-spacing:-.05em;line-height:1;margin:6px 0 12px}
.ck-score__num small{font-size:1.1rem;font-weight:600;color:#9db8ff;letter-spacing:0}
.ck-score__bar{height:10px;border-radius:10px;background:rgba(255,255,255,.14);overflow:hidden;margin-bottom:16px}
.ck-score__bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#d101f8,#7b3dff,#4ad0ff);transition:width .5s var(--ease)}
.ck-score p{color:#cdd6fb;font-size:.96rem;margin:0 0 18px}
.ck-score .btn{width:100%;background:#fff;color:var(--navy);box-shadow:none}
.ck-score .btn+.btn{margin-top:10px;background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
@media(max-width:999px){.ck-score{position:static}}
@media print{.ck-score .btn,.annbar{display:none!important}}

/* ───────── 13c. about page ───────── */
.about-top{position:relative;overflow:clip;margin-top:calc(var(--hh) * -1);padding:calc(var(--hh) + clamp(40px,6vw,80px)) 0 clamp(60px,8vw,100px);background:
  radial-gradient(50% 120% at 90% 0%,rgba(44,96,255,.16),transparent 65%),
  radial-gradient(40% 100% at 0% 0%,rgba(209,1,248,.09),transparent 65%),
  linear-gradient(180deg,#f4f7ff,#fff)}
.about-top::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(44,96,255,.2) 1.2px,transparent 1.4px);background-size:28px 28px;-webkit-mask:radial-gradient(60% 100% at 85% 0%,#000,transparent 75%);mask:radial-gradient(60% 100% at 85% 0%,#000,transparent 75%)}
.about-top .wrap{position:relative;z-index:1}
.about-top h1{font-size:clamp(2.2rem,4.8vw,3.6rem);margin-bottom:.45em}
.story__tag{display:inline-flex;align-items:center;gap:12px;font-weight:800;font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin-bottom:18px}
.story__tag b{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--grad-blue);color:#fff;letter-spacing:0;font-size:.82rem;box-shadow:0 10px 20px -8px rgba(44,96,255,.7)}
.story h2{font-size:clamp(1.7rem,3.2vw,2.5rem);margin-bottom:.55em}
.story p{color:var(--muted)}
.story strong{color:var(--ink)}
.story__grid{display:grid;gap:clamp(30px,4.5vw,70px)}
@media(min-width:1000px){.story__grid{grid-template-columns:.85fr 1.15fr;align-items:start}.story__intro{position:sticky;top:calc(var(--hh) + 30px)}}
.index__title{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 16px}
.index{list-style:none;display:grid;border-top:2px solid var(--ink)}
@media(min-width:700px){.index{grid-template-columns:1fr 1fr;column-gap:36px}}
.index li{padding:26px 0 28px;border-bottom:1px solid var(--line-2);transition:.3s var(--ease)}
.index .n{display:block;font-size:3.1rem;font-weight:800;letter-spacing:-.06em;line-height:1;color:transparent;-webkit-text-stroke:1.6px rgba(44,96,255,.4);margin-bottom:12px;transition:.35s var(--ease)}
.index li:hover .n{color:var(--blue);-webkit-text-stroke:1.6px var(--blue);transform:translateX(6px)}
.index h3{font-size:1.1rem;margin:0 0 .4em}
.index p{margin:0;color:var(--muted);font-size:.96rem;line-height:1.65}
.story__head{max-width:1100px;margin:0 auto clamp(26px,4vw,44px)}
.story__head.center{text-align:center}
.story__head h2{margin:0}
.t-small{display:block;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:700;letter-spacing:-.01em;color:var(--muted);margin-bottom:10px}
.trio-words{display:flex;flex-wrap:wrap;justify-content:center;gap:0 clamp(12px,2.4vw,28px);font-size:clamp(2.2rem,5.6vw,4.3rem);font-weight:800;letter-spacing:-.05em;line-height:1.04}
.trio-words span{color:var(--ink)}
.trio-words span:nth-child(2){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.trio-words span:nth-child(3){color:transparent;-webkit-text-stroke:2px var(--blue)}
.story__cols{display:grid;gap:18px 44px;max-width:1040px;margin-inline:auto}
@media(min-width:800px){.story__cols{grid-template-columns:1fr 1fr}}
.story__cols p{margin:0}
.panels{display:grid;gap:20px}
@media(min-width:960px){.panels{grid-template-columns:1.15fr .85fr}}
.panel{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(26px,3.6vw,44px)}
.panel__tag{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.panel h3{margin:0 0 .3em;font-size:clamp(1.35rem,2.4vw,1.8rem)}
.panel>p{margin:0 0 6px}
.panel ul{list-style:none;display:grid;margin-top:14px}
.panel li{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.panel li:first-child{border-top:0}
.panel li b{display:block;font-size:1.02rem;margin-bottom:2px}
.panel li span:not(.ib){display:block;font-size:.94rem;line-height:1.6}
.ib{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;font-size:1.25rem;flex:none;background:var(--blue-l);color:var(--blue);border:1px solid #d7e3ff}
.panel--dark{background:radial-gradient(70% 90% at 100% 0%,rgba(76,110,255,.5),transparent 62%),radial-gradient(60% 80% at 0% 100%,rgba(209,1,248,.28),transparent 60%),var(--navy);color:#fff;box-shadow:0 40px 70px -40px rgba(10,17,48,.7)}
.panel--dark h3{color:#fff}
.panel--dark .panel__tag{color:#9db8ff}
.panel--dark>p{color:#cdd6fb}
.panel--dark li{border-top-color:rgba(255,255,255,.12)}
.panel--dark li b{color:#fff}
.panel--dark li span:not(.ib){color:#b9c4f2}
.panel--dark .ib{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.14);color:#9db8ff}
.panel--light{background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.panel--light .panel__tag{color:var(--blue)}
.panel--light>p{color:var(--muted)}
.panel--light li b{color:var(--ink)}
.panel--light li span:not(.ib){color:var(--muted)}
.panel--light .link-arrow{margin-top:14px}
.panel__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.panel--dark .btn--primary{background:#fff;color:var(--navy);box-shadow:none}
.panel--dark .btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35);color:#fff}
.story__top{display:grid;gap:22px 56px}
@media(min-width:900px){.story__top{grid-template-columns:1fr 1fr;align-items:start}}
.story__top>div>p:first-child{margin-top:0}
.zig{list-style:none;position:relative;display:grid;gap:22px}
.zig::before{content:"";position:absolute;left:25px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,#d101f8,#7b3dff,#2c60ff);opacity:.35}
.zig li{position:relative;padding-left:76px}
.zig .dot{position:absolute;left:0;top:4px;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:1.3rem;color:#fff;background:var(--grad-blue);box-shadow:0 12px 24px -8px rgba(44,96,255,.7);z-index:1}
.zig .box{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;box-shadow:var(--sh-1);transition:.3s var(--ease)}
.zig .box:hover{border-color:#b9ccff;box-shadow:var(--sh-2);transform:translateY(-3px)}
.zig small{display:block;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.zig h3{margin:0 0 .3em;font-size:1.15rem}
.zig p{margin:0;font-size:.96rem;color:var(--muted)}
@media(min-width:900px){
  .zig{gap:0}
  .zig::before{left:50%;margin-left:-1px}
  .zig li{width:calc(50% - 56px);padding:0 0 26px}
  .zig li:nth-child(even){margin-left:auto}
  .zig li:nth-child(odd) .dot{left:auto;right:-82px}
  .zig li:nth-child(even) .dot{left:-82px}
  .zig li:nth-child(odd) .box{text-align:right}
}
.about-duo{display:grid;gap:20px}
@media(min-width:960px){.about-duo{grid-template-columns:1fr 1fr;align-items:stretch}}
.ind-list{list-style:none;display:grid;gap:8px;margin-top:20px}
.about-duo .panel--dark{display:flex;flex-direction:column;justify-content:center}
.mini-steps{list-style:none;display:grid;gap:10px;margin:22px 0 4px;counter-reset:ms}
.mini-steps li{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.mini-steps span{display:inline-flex;height:26px;align-items:center;padding:0 12px;border-radius:999px;background:var(--grad-blue);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;flex:none}
.mini-steps b{color:#fff;font-size:.98rem}
.ind-list a{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 10px;border-radius:16px;border:1px solid var(--line);font-weight:700;color:var(--ink);transition:.3s var(--ease)}
.ind-list a span:nth-child(2){flex:1}
.ind-list a>.ico{color:var(--faint);transition:.3s}
.ind-list a:hover{border-color:#b9ccff;background:var(--soft);color:var(--blue)}
.ind-list a:hover>.ico{transform:translateX(4px);color:var(--blue)}

.ind-list small{display:block;font-weight:500;font-size:.88rem;color:var(--muted);margin-top:1px}
.ind-list a b{display:block}
.ind-list a>span:nth-child(2){min-width:0}

.card .link-arrow{white-space:normal}

@media(max-width:520px){.btn{white-space:normal;height:auto;min-height:var(--bh);padding-block:10px;text-align:center;line-height:1.3}}

/* ───────── 14. motion ───────── */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.rv.is-in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(20,184,122,.18)}50%{box-shadow:0 0 0 8px rgba(20,184,122,.05)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes grow{from{transform:scaleY(.1)}to{transform:scaleY(1)}}
@keyframes ripple{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes shine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@keyframes morph{0%,100%{border-radius:44% 56% 52% 48%/48% 42% 58% 52%}50%{border-radius:56% 44% 42% 58%/54% 56% 44% 46%}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
@media print{.site-header,.wa-float,.to-top,.nav,.cta-band,.foot-news,.progress{display:none!important}body{background:#fff;color:#000}.prose{color:#000}}
.nb{white-space:nowrap}
