/* ===== Design tokens ===== */
:root{
  --navy-950:#060b18;--navy-900:#0a1128;--navy-800:#0f1a3a;--navy-700:#172449;
  --white:#fff;--gray-50:#f6f8fb;--gray-100:#eef1f6;--gray-200:#e1e6ef;--gray-300:#c9d1de;--gray-500:#66728b;--gray-600:#4d5b75;--gray-700:#36435b;--ink:#0b1226;
  --blue:#2f6bff;--cyan:#22d3ee;--violet:#7c5cff;--accent-ink:#2350d6;--ok:#12a36b;--warn:#b45309;
  --grad:linear-gradient(120deg,#2f6bff,#7c5cff 60%,#22d3ee);
  --font:'Plus Jakarta Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --fs-display:clamp(2.4rem,5.4vw,4.4rem);--fs-h1:clamp(2.1rem,4.4vw,3.4rem);--fs-h2:clamp(1.65rem,3.1vw,2.5rem);--fs-h3:1.2rem;--fs-body:1rem;--fs-small:.875rem;--fs-caption:.75rem;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--s9:104px;
  --r-sm:8px;--r:14px;--r-lg:22px;
  --sh-sm:0 1px 2px rgba(11,18,38,.06),0 1px 3px rgba(11,18,38,.05);--sh:0 8px 24px rgba(11,18,38,.08);--sh-lg:0 24px 60px rgba(11,18,38,.16);
  --container:1200px;--hdr:76px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.65;color:var(--gray-700);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;height:auto;display:block}
h1,h2,h3{color:var(--ink);line-height:1.15;margin:0 0 var(--s4);letter-spacing:-.02em;font-weight:800}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);letter-spacing:-.01em}
p{margin:0 0 var(--s4)}a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:3px}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
main:focus{outline:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:var(--ink);padding:10px 16px;border-radius:8px;z-index:200;font-weight:700}
.skip:focus{left:8px}
.container{width:100%;max-width:calc(var(--container) + 48px);margin:0 auto;padding:0 24px}
.narrow{max-width:800px;margin-inline:auto}
.center{text-align:center;margin-top:var(--s6)}
.muted{color:var(--gray-500)}.small{font-size:var(--fs-small)}
.icon{width:1.25em;height:1.25em;flex:none}
.reveal{}
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
}

/* ===== Buttons / badges ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border-radius:999px;font:700 .95rem/1 var(--font);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}
.btn .arrow{width:1.1em;height:1.1em;transition:transform .2s}
.btn:hover .arrow,.link-arrow:hover .arrow{transform:translateX(4px)}
.btn--primary{background:var(--grad);color:#fff;box-shadow:0 6px 20px rgba(47,107,255,.35)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(47,107,255,.45)}
.btn--secondary{background:transparent;color:var(--ink);border-color:var(--gray-300)}
.btn--secondary:hover{border-color:var(--blue);color:var(--accent-ink);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:inherit}.btn--ghost:hover{background:rgba(127,140,170,.16)}
.btn--sm{min-height:40px;padding:0 18px;font-size:.88rem}.btn--lg{min-height:54px;padding:0 30px;font-size:1rem}
.btn:disabled{opacity:.7;cursor:progress}
.btn__spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
.is-loading .btn__spinner{display:inline-block}.is-loading .arrow{display:none}
@keyframes spin{to{transform:rotate(360deg)}}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--gray-100);color:var(--gray-700);font-size:var(--fs-caption);font-weight:700}
.badge--accent{background:#e6edff;color:var(--accent-ink)}.badge--warn{background:#fff3e0;color:var(--warn)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:var(--accent-ink)}
.link-arrow .arrow{width:1.05em;height:1.05em;transition:transform .2s}
.eyebrow{font-size:var(--fs-caption);letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--accent-ink);margin-bottom:var(--s3)}
.eyebrow--light{color:var(--cyan)}
.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--gray-600);max-width:62ch}
.lead--light{color:#b9c4dd}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:var(--s5)}.actions--center{justify-content:center}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--s4)}
.chips li{padding:5px 12px;border:1px solid var(--gray-200);border-radius:999px;font-size:var(--fs-small);font-weight:600;background:#fff;color:var(--gray-700)}
.chips li a{color:inherit;text-decoration:none}
.chips--lg li{padding:8px 16px;font-size:.95rem}
.check-list{display:grid;gap:10px;margin-bottom:var(--s4)}
.check-list li{display:flex;gap:10px;align-items:flex-start}
.check-list .icon{color:var(--ok);margin-top:3px;stroke-width:2.4}
.check-list--lg li{font-size:1.05rem}
.note{font-size:var(--fs-small);color:var(--gray-500);margin-top:var(--s5)}
.note--block{background:#fffbf1;border:1px solid #f5dfae;border-radius:var(--r);padding:14px 18px;color:var(--gray-700);margin:0 0 var(--s5)}

/* ===== Icon tiles ===== */
.icon-tile{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#e8efff,#efeaff);color:var(--accent-ink)}
.icon-tile .icon{width:26px;height:26px}
.icon-tile--sm{width:44px;height:44px}.icon-tile--sm .icon{width:22px;height:22px}
.icon-tile--xs{width:34px;height:34px;border-radius:10px}.icon-tile--xs .icon{width:18px;height:18px}
.icon-tile--lg{width:72px;height:72px;border-radius:20px;background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(8px)}.icon-tile--lg .icon{width:34px;height:34px}
.icon-tile--ok{background:#e0f7ee;color:var(--ok)}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:100;background:rgba(10,17,40,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(255,255,255,.08);color:#fff;transition:background .3s}
.header__inner{display:flex;align-items:center;gap:24px;height:var(--hdr);transition:height .3s}
.site-header.is-scrolled{background:rgba(6,11,24,.92)}.site-header.is-scrolled .header__inner{height:62px}
.logo{white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:1.1rem;text-decoration:none;letter-spacing:-.01em}
.nav{margin-left:auto}.nav__list{display:flex;align-items:center;gap:2px}
.nav__item{position:relative}
.nav__link{white-space:nowrap;display:inline-flex;align-items:center;gap:4px;padding:10px 10px;border-radius:10px;color:#d6def0;text-decoration:none;font-weight:600;font-size:.92rem;background:none;border:0;cursor:pointer;font-family:inherit}
.nav__link:hover,.nav__link.is-active,.nav__link[aria-current=page]{color:#fff;background:rgba(255,255,255,.08)}
.nav__chev{width:16px;height:16px;transition:transform .2s}
[data-open=true]>.nav__btn .nav__chev{transform:rotate(180deg)}
.dd{position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 8px;min-width:240px;background:#fff;color:var(--ink);border-radius:var(--r);box-shadow:var(--sh-lg);padding:12px;opacity:0;visibility:hidden;transition:opacity .2s,translate .2s,visibility .2s}
[data-open=true]>.dd{opacity:1;visibility:visible;translate:-50% 0}
.dd--wide{width:min(620px,90vw)}
.dd__grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.dd__grid a,.dd__list a{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:.9rem}
.dd__grid a:hover,.dd__list a:hover{background:var(--gray-100)}
.dd__list a{padding:9px 12px;font-weight:600}
.dd__all{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 8px 2px;border-top:1px solid var(--gray-200);font-weight:700;text-decoration:none}
.dd__all .arrow{width:1em;height:1em}
.header__cta{flex:none;white-space:nowrap;display:flex;align-items:center;gap:8px}
.header__cta .btn--ghost{color:#fff;display:none}
.menu-btn{display:none;width:46px;height:46px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;border-radius:12px;cursor:pointer;place-items:center}
.menu-btn .icon{margin:auto}
.mnav{border-top:1px solid rgba(255,255,255,.1);max-height:calc(100dvh - 62px);overflow:auto;background:var(--navy-900)}
.mnav[hidden]{display:none}
.mnav__list a,.mnav__group summary{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;color:#fff;text-decoration:none;font-weight:700;border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;list-style:none;min-height:52px}
.mnav__group summary::-webkit-details-marker{display:none}
.mnav__group[open] summary .icon{transform:rotate(180deg)}
.mnav__group ul a{font-weight:500;color:#c3cde4;padding:12px 16px;min-height:46px}
.mnav__cta{display:grid;gap:12px;padding:20px 0 28px}
.mnav__cta .btn--secondary{color:#fff;border-color:rgba(255,255,255,.3)}
@media(min-width:1500px){.header__cta .btn--ghost{display:inline-flex}}
@media(max-width:1020px){.nav,.header__cta .btn:not(.menu-btn){display:none}.menu-btn{display:grid}.header__inner{justify-content:space-between}}
@media(min-width:1021px){.mnav{display:none!important}}
body.menu-open{overflow:hidden}

/* ===== Hero ===== */
.hero,.page-hero,.nf,.final-cta,.section--dark{background:var(--navy-900);color:#fff;position:relative;overflow:hidden}
.hero{padding:clamp(56px,9vw,120px) 0 clamp(64px,9vw,120px)}
.hero__bg,.page-hero::before,.final-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 85% 10%,rgba(47,107,255,.35),transparent 60%),radial-gradient(45% 50% at 0% 100%,rgba(124,92,255,.28),transparent 60%);pointer-events:none}
.page-hero::before,.final-cta::before{opacity:.9}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;position:relative}
.hero h1,.page-hero h1,.nf h1,.final-cta h2,.section--dark h2,.section--dark h3{color:#fff}
.hero h1{font-size:var(--fs-display);letter-spacing:-.035em}
.hero__trust{display:flex;align-items:center;gap:10px;margin-top:var(--s6);color:#a9b6d3;font-size:var(--fs-small);font-weight:600}
.hero__trust .icon{color:var(--cyan)}
.hero .btn--secondary,.page-hero .btn--secondary,.cta-band .btn--secondary,.final-cta .btn--secondary,.section--dark .btn--secondary{color:#fff;border-color:rgba(255,255,255,.3)}
.hero .btn--secondary:hover,.page-hero .btn--secondary:hover,.cta-band .btn--secondary:hover,.section--dark .btn--secondary:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08)}
.hero-visual{position:relative;border-radius:var(--r-lg);overflow:visible}
.hero-visual>img{border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.12);box-shadow:var(--sh-lg);width:100%}
.glass{position:absolute;background:rgba(10,17,40,.72);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:14px 16px;color:#fff;font-size:.85rem;box-shadow:var(--sh-lg)}
.glass strong{display:block;font-size:.85rem}.glass small{display:block;color:#a9b6d3;font-size:.72rem;margin-top:4px}
.glass ul{display:flex;gap:10px;margin-top:8px;color:#b9f5d9}.glass li{display:flex;align-items:center;gap:3px}.glass li .icon{width:14px;height:14px;color:#4ade80}
.glass__dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4ade80;margin-right:6px}
.glass--a{left:-24px;top:12%}.glass--b{right:-16px;bottom:14%;width:170px}.glass--c{left:8%;bottom:-22px;display:flex;gap:10px;align-items:center}
.glass--c .icon{color:var(--cyan);width:24px;height:24px}
.bars{display:flex;align-items:flex-end;gap:5px;height:40px;margin-top:8px}.bars i{flex:1;background:var(--grad);border-radius:3px;height:40%}
.bars i:nth-child(2){height:70%}.bars i:nth-child(3){height:55%}.bars i:nth-child(4){height:90%}.bars i:nth-child(5){height:65%}.bars i:nth-child(6){height:100%}
@media(prefers-reduced-motion:no-preference){.glass--a{animation:float 7s ease-in-out infinite}.glass--b{animation:float 8s ease-in-out -2s infinite}.glass--c{animation:float 9s ease-in-out -4s infinite}}
@keyframes float{50%{transform:translateY(-8px)}}
@media(max-width:960px){.hero__grid{grid-template-columns:1fr}.hero-visual{max-width:560px}.glass--a{left:-4px}.glass--b{right:-4px}}
@media(max-width:520px){.glass--a,.glass--b{display:none}}

.page-hero{padding:clamp(40px,6vw,88px) 0 clamp(48px,6vw,88px)}
.page-hero__grid{position:relative;display:grid;gap:48px;align-items:center}
.page-hero__grid.has-visual{grid-template-columns:1.1fr .9fr}
.page-hero__art{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.page-hero__art .icon-tile{position:absolute;right:18px;bottom:18px}
.page-hero--article .container{position:relative}
.article-meta{color:#a9b6d3;font-size:var(--fs-small)}
@media(max-width:860px){.page-hero__grid.has-visual{grid-template-columns:1fr}}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s5);font-size:var(--fs-small);color:#a9b6d3}
.breadcrumbs li+li::before{content:"/";margin-right:8px;opacity:.5}
.breadcrumbs a{color:#c8d3ee}
.nf{padding:clamp(80px,14vw,180px) 0}.nf__code{font-size:clamp(5rem,20vw,11rem);font-weight:800;line-height:1;margin:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nf .lead{margin-inline:auto}

/* ===== Sections ===== */
.section{padding:clamp(56px,8vw,104px) 0;position:relative}
.section--tight{padding:clamp(40px,5vw,64px) 0}
.section--alt{background:var(--gray-50)}
.section--dark .lead,.section--dark p{color:#b9c4dd}
.section-header{margin-bottom:var(--s7);max-width:760px}
.section-header--center{margin-inline:auto;text-align:center}
.section-header .lead{margin-top:var(--s3)}
.stack{display:grid;gap:24px}
.grid{display:grid;gap:24px}
.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}.grid--5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){.grid--4{grid-template-columns:repeat(2,1fr)}.grid--5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){.grid--3{grid-template-columns:repeat(2,1fr)}.grid--5{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid--2,.grid--3,.grid--4,.grid--5{grid-template-columns:1fr}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}.split--top{align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.split__media img{border-radius:var(--r-lg);box-shadow:var(--sh)}
.prose h2{font-size:1.5rem;margin-top:var(--s6)}

/* ===== Cards ===== */
.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);padding:var(--s5);box-shadow:var(--sh-sm);transition:transform .25s,box-shadow .25s,border-color .25s}
.card--link{display:block;text-decoration:none;color:inherit}
.card--link:hover,.case-card:hover,.blog-card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:#c5d4ff}
.card h3{margin-top:var(--s4)}.card p{color:var(--gray-600)}
.svc-card{position:relative;display:flex;flex-direction:column}
.svc-card p{flex:1}.svc-card__num{position:absolute;right:20px;top:18px;font-weight:800;color:var(--gray-300);font-size:.9rem}
.svc-detail{display:flex;flex-direction:column}.svc-detail__head{display:flex;justify-content:space-between;align-items:center}
.svc-detail .link-arrow{margin-top:auto}
.feature .icon-tile{margin-bottom:var(--s2)}.feature h3{margin-top:var(--s3)}
.mini{display:flex;align-items:center;gap:12px;padding:16px}.mini strong{color:var(--ink);font-size:.95rem}
.feature-list li{display:flex;gap:12px;align-items:flex-start;padding:18px 20px}.feature-list .icon{color:var(--ok);margin-top:3px}
.ind-card p{font-size:var(--fs-small);min-height:4.5em}.ind-card h3{font-size:1.05rem}
.problem-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.problem{display:flex;gap:16px}
.problem h3{margin:0 0 4px;font-size:1.05rem}.problem p{margin:0;color:var(--gray-600);font-size:var(--fs-small)}
@media(max-width:860px){.problem-row{grid-template-columns:1fr}}
.related{margin-top:var(--s5)}
.empty{display:flex;gap:16px;align-items:center;padding:24px;border:1px dashed var(--gray-300);border-radius:var(--r);background:#fff}.empty p{margin:0;color:var(--gray-600)}
.empty[hidden]{display:none}
.narrow-section .container{max-width:800px}

/* Trust */
.trust{border-bottom:1px solid var(--gray-200)}
.trust__title{text-align:center;font-size:clamp(1.1rem,2vw,1.4rem);color:var(--gray-600);font-weight:700;margin-bottom:var(--s5)}
.logo-cloud{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 40px;margin-bottom:var(--s7)}
.logo-cloud li{font-weight:800;letter-spacing:.12em;font-size:.85rem;color:var(--gray-300)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0}
.stat{text-align:center;padding:12px}.stat dd{margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:800;color:var(--ink);letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat dt{order:2;color:var(--gray-600);font-weight:600;font-size:var(--fs-small)}.stat{display:flex;flex-direction:column}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}

/* Case + blog */
.case-card,.blog-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.case-card__media img,.blog-card__media img{width:100%;aspect-ratio:8/5;object-fit:cover;transition:transform .5s}
.case-card__media,.blog-card__media{display:block;overflow:hidden}
.case-card:hover img,.blog-card:hover img{transform:scale(1.04)}
.case-card__body,.blog-card__body{padding:var(--s5);display:flex;flex-direction:column;flex:1}
.case-card__meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s3)}
.case-card h3,.blog-card h3{margin:0 0 var(--s3);font-size:1.15rem}.case-card h3 a,.blog-card h3 a{color:var(--ink);text-decoration:none}
.case-card__facts{margin:0 0 var(--s4);display:grid;gap:8px;font-size:var(--fs-small)}
.case-card__facts dt{font-weight:800;color:var(--ink);font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.08em}.case-card__facts dd{margin:0}
.case-card .link-arrow{margin-top:auto}
.blog-card__meta{font-size:var(--fs-caption);color:var(--gray-500);margin:auto 0 0}
.blog-card p{font-size:var(--fs-small)}
.filterbar{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;padding:20px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--r);margin-bottom:var(--s4)}
.field--inline{margin:0;min-width:170px}.field--grow{flex:1;min-width:220px}
.search{position:relative}.search .icon{position:absolute;left:14px;top:50%;translate:0 -50%;color:var(--gray-500);pointer-events:none}.search input{padding-left:42px}
.filter-count{font-size:var(--fs-small);color:var(--gray-500);margin-bottom:var(--s4)}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s4)}
.pill{padding:8px 16px;border-radius:999px;border:1px solid var(--gray-300);background:#fff;font:600 .88rem var(--font);color:var(--gray-700);cursor:pointer;min-height:40px}
.pill:hover{border-color:var(--blue)}.pill.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
[data-item][hidden]{display:none}
.arch{display:grid;gap:10px;counter-reset:a}
.arch li{counter-increment:a;padding:14px 18px 14px 52px;background:#fff;border:1px solid var(--gray-200);border-radius:12px;font-weight:700;color:var(--ink);position:relative}
.arch li::before{content:counter(a);position:absolute;left:14px;top:50%;translate:0 -50%;width:26px;height:26px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:.8rem}
.arch li+li::after{content:"";position:absolute;left:26px;top:-10px;height:10px;width:2px;background:var(--gray-300)}
.shot img{border-radius:var(--r);border:1px solid var(--gray-200)}.shot figcaption{font-size:var(--fs-caption);color:var(--gray-500);margin-top:8px}
.shot{margin:0}

/* Quotes / avatar / team */
.quote{margin:0;display:flex;flex-direction:column;gap:12px}.quote blockquote{margin:0;flex:1}.quote blockquote p{font-size:1.02rem;color:var(--ink)}
.quote figcaption{display:flex;gap:12px;align-items:center;font-size:var(--fs-small)}
.avatar{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--grad);color:#fff;font-weight:800;font-size:.9rem;flex:none}
.avatar--lg{width:72px;height:72px;font-size:1.3rem}
.team{text-align:center}.team .avatar{margin-bottom:var(--s3)}.team h3{margin-top:0}
.milestones{display:grid;gap:14px;border-left:2px solid var(--gray-200);padding-left:20px}.milestones li{display:grid;gap:2px}.milestones strong{color:var(--accent-ink)}

/* Timeline */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;position:relative;counter-reset:t}
.timeline--4{grid-template-columns:repeat(4,1fr)}
.timeline::before{content:"";position:absolute;left:24px;right:24px;top:24px;height:2px;background:linear-gradient(90deg,var(--blue),var(--violet),var(--cyan));opacity:.6}
.timeline__step p{color:#b9c4dd;font-size:var(--fs-small)}
.timeline__n{position:relative;display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--navy-900);border:2px solid var(--blue);color:#fff;font-weight:800;margin-bottom:var(--s4);flex:none}
.section:not(.section--dark) .timeline__n{color:var(--accent-ink);background:#fff}
@media(max-width:900px){.timeline,.timeline--4{grid-template-columns:1fr}.timeline::before{left:23px;right:auto;top:24px;bottom:24px;width:2px;height:auto;background:linear-gradient(var(--blue),var(--cyan))}
.timeline__step{padding-left:68px;position:relative}.timeline__step .timeline__n{position:absolute;left:0;top:0}}
.step-detail{display:grid;grid-template-columns:auto 1.4fr 1fr;gap:24px;align-items:start}.step-detail .timeline__n{margin:0}
@media(max-width:760px){.step-detail{grid-template-columns:1fr}}
.steps-list{display:grid;gap:18px}.steps-list li{display:flex;gap:16px;align-items:flex-start}.steps-list .timeline__n{margin:0;width:44px;height:44px}.steps-list p{margin:0;color:var(--gray-600)}

/* Tech */
.tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.tech-cat h3{display:flex;align-items:center;gap:10px;margin:0 0 var(--s3);font-size:1.05rem}.tech-cat h3 .icon{color:var(--accent-ink)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s5)}
.tabs [role=tab]{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--gray-300);background:#fff;font:600 .9rem var(--font);color:var(--gray-700);cursor:pointer;min-height:44px}
.tabs [role=tab] .icon{width:18px;height:18px}
.tabs [role=tab][aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
[role=tabpanel][hidden]{display:none}
.tech-item__top{display:flex;justify-content:space-between;align-items:center;gap:8px}.tech-item h3{margin:0}
.best{font-weight:700;color:var(--accent-ink)}
.ind-detail__head{display:flex;align-items:center;gap:16px;margin-bottom:var(--s4)}.ind-detail__head h2{margin:0;font-size:1.6rem}
.ind-detail__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 32px;margin-bottom:var(--s4)}.ind-detail h3{margin:0 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-500)}
@media(max-width:700px){.ind-detail__grid{grid-template-columns:1fr}}
.jobs{display:grid;gap:14px}.job{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.job h3{margin:0 0 4px}.job p{margin:0}

/* CTA */
.cta-band{padding:clamp(40px,6vw,72px) 0}
.cta-band__inner{background:linear-gradient(120deg,var(--navy-900),var(--navy-700));color:#fff;border-radius:var(--r-lg);padding:clamp(28px,5vw,56px);display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-band__inner::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;background:radial-gradient(circle,rgba(34,211,238,.35),transparent 65%)}
.cta-band__inner>*{position:relative;z-index:1}.cta-band h2{color:#fff;margin-bottom:8px;font-size:clamp(1.5rem,3vw,2.2rem)}.cta-band p{color:#b9c4dd;margin:0;max-width:52ch}
.cta-band .actions{margin:0}
.final-cta{padding:clamp(64px,9vw,120px) 0}.final-cta .container{position:relative}.final-cta .lead{margin-inline:auto}
.newsletter-box{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding:clamp(24px,4vw,40px);background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-lg)}.newsletter-box h2{font-size:1.5rem}
.newsletter{display:flex;flex-wrap:wrap;gap:10px;flex:1;min-width:280px;max-width:480px;position:relative}
.newsletter input[type=email]{flex:1;min-width:180px}
.newsletter .field__error{flex-basis:100%}

/* Accordion */
.acc{display:grid;gap:12px}
.acc__item{border:1px solid var(--gray-200);border-radius:var(--r);background:#fff;overflow:hidden;transition:border-color .2s}
.acc__item[data-open=true]{border-color:#bfd0ff}
.acc__h{margin:0;font-size:1rem}
.acc__btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:none;border:0;font:700 1rem/1.4 var(--font);color:var(--ink);text-align:left;cursor:pointer;min-height:56px}
.acc__icon{transition:transform .25s;color:var(--accent-ink)}
.acc__item[data-open=true] .acc__icon{transform:rotate(45deg)}
.acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;visibility:hidden}
.acc__item[data-open=true] .acc__panel{grid-template-rows:1fr;visibility:visible}
.acc__panel>div{overflow:hidden}.acc__panel p{padding:0 20px 20px;margin:0;color:var(--gray-600)}

/* Article */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:56px;max-width:1100px}
.article{max-width:720px;font-size:1.06rem}.article h2{margin-top:var(--s7);font-size:1.7rem;scroll-margin-top:96px}
.article__hero{margin:0 0 var(--s6)}.article__hero img{border-radius:var(--r-lg)}
.toc{position:sticky;top:100px;align-self:start;font-size:var(--fs-small);border-left:2px solid var(--gray-200);padding-left:18px}
.toc__h{font-weight:800;color:var(--ink);margin-bottom:10px}.toc ol{display:grid;gap:10px}.toc a{color:var(--gray-600);text-decoration:none}.toc a:hover,.toc a.is-on{color:var(--accent-ink);font-weight:700}
.share{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--gray-200);font-size:var(--fs-small);font-weight:700}
.link-btn{display:inline-flex;gap:6px;align-items:center;background:none;border:0;color:var(--accent-ink);font:700 var(--fs-small) var(--font);cursor:pointer;padding:0}
@media(max-width:960px){.article-layout{grid-template-columns:1fr}.toc{position:static;order:-1;border-left:0;padding:16px;background:var(--gray-50);border-radius:var(--r)}}

/* Forms */
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media(max-width:640px){.form__grid{grid-template-columns:1fr}}
.field{margin-bottom:var(--s4)}
.field label{display:block;font-weight:700;font-size:.9rem;color:var(--ink);margin-bottom:6px}
.opt{font-weight:500;color:var(--gray-500)}.req{color:#c0392b}
input[type=text],input[type=email],input[type=tel],input[type=search],textarea,select{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--gray-300);border-radius:12px;background:#fff;font:inherit;color:var(--ink);transition:border-color .2s,box-shadow .2s}
textarea{resize:vertical;min-height:130px}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(47,107,255,.18)}
[aria-invalid=true]{border-color:#c0392b!important;box-shadow:0 0 0 3px rgba(192,57,43,.12)}
.select{position:relative}.select select{appearance:none;padding-right:40px}.select .icon{position:absolute;right:14px;top:50%;translate:0 -50%;pointer-events:none;color:var(--gray-500)}
.field__error{color:#b3261e;font-size:var(--fs-small);margin:6px 0 0;min-height:0}.field__error:empty{display:none}
.field__hint{font-size:var(--fs-caption);color:var(--gray-500);margin:6px 0 0}
.check{display:flex;gap:12px;align-items:flex-start;font-weight:500!important;font-size:var(--fs-small)!important;cursor:pointer}
.check input{width:22px;height:22px;margin-top:2px;accent-color:var(--blue);flex:none}
.form__error{background:#fdecea;color:#8a1c14;border-radius:12px;padding:12px 16px;font-size:var(--fs-small)}.form__error[hidden]{display:none}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-card{padding:clamp(20px,4vw,40px)}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-list{display:grid;gap:20px;margin:var(--s5) 0}.contact-list li{display:flex;gap:14px}.contact-list .icon{color:var(--accent-ink);margin-top:2px}.contact-list div{display:grid}
.map{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--gray-200)}.map iframe{display:block;width:100%;height:280px;border:0}.map span{display:block;padding:10px 14px;font-size:var(--fs-small);background:#fff}
.success{text-align:center;padding:clamp(24px,5vw,56px) 16px}.success h2{margin-top:var(--s5);font-size:1.8rem}.success:focus{outline:none}
.success .actions{justify-content:center}
.form-wrap-hidden{display:none}

/* Modal + toast */
.modal{border:0;padding:0;border-radius:var(--r-lg);width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-shadow:var(--sh-lg);color:var(--gray-700)}
.modal::backdrop{background:rgba(6,11,24,.65);backdrop-filter:blur(3px)}
.modal[open]{animation:pop .25s ease}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}}
.modal__panel{padding:clamp(20px,4vw,36px);position:relative}
.modal__close{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;border:0;background:var(--gray-100);cursor:pointer;display:grid;place-items:center;color:var(--ink)}
.modal h2{font-size:1.6rem;padding-right:48px}
.toasts{position:fixed;right:16px;bottom:16px;z-index:300;display:grid;gap:10px;max-width:calc(100vw - 32px)}
.toast{background:var(--navy-900);color:#fff;padding:14px 18px;border-radius:12px;box-shadow:var(--sh-lg);font-size:.92rem;font-weight:600;border-left:4px solid var(--ok);animation:pop .3s ease}
.toast--error{border-left-color:#ef4444}

/* Footer */
.site-footer{background:var(--navy-950);color:#a9b6d3;padding:var(--s8) 0 var(--s5);font-size:.92rem}
.footer__grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr) 1.6fr;gap:32px}
.footer__h{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#fff;margin:0 0 var(--s4)}
.footer__col ul{display:grid;gap:10px}.footer__col a{color:#a9b6d3;text-decoration:none}.footer__col a:hover{color:#fff;text-decoration:underline}
.footer__brand p{margin-top:var(--s4);max-width:34ch}
.footer__contact li{display:flex;gap:10px;align-items:flex-start}.footer__contact .icon{margin-top:3px;color:var(--cyan);width:1.1em}
.footer__note{font-size:var(--fs-caption);margin-top:12px;opacity:.7}
.social{display:flex;gap:10px;margin-top:var(--s4)}.social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:#fff}.social a:hover{background:rgba(255,255,255,.1)}
.footer__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid rgba(255,255,255,.1);font-size:var(--fs-small)}.footer__bottom p{margin:0}.footer__bottom a{color:#a9b6d3}
@media(max-width:1100px){.footer__grid{grid-template-columns:repeat(3,1fr)}.footer__brand{grid-column:1/-1}}
@media(max-width:600px){.footer__grid{grid-template-columns:1fr 1fr}.footer__contact{grid-column:1/-1}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
