/* v7 - Cinematic Motion. body.v7 */
body.v7 { --bg:#08090d; --bg2:#0e1016; --fg:#f2f0ea; --mut:#8e93a3; --line:rgba(242,240,234,.14); --vi:#7a5cff; --vi2:#c4b8ff; --disp:'Syne','Inter',sans-serif;
  background: var(--bg); color: var(--fg); font-family: 'Inter', sans-serif; }
.v7 *::selection { background: var(--vi); color:#fff; }
.v7 .m-wrap { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
.v7 h1, .v7 h2 { font-family: var(--disp); color: var(--fg); font-weight: 800; letter-spacing: -.035em; line-height: .98; }
.v7 .site-header { background: rgba(8,9,13,.55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.v7 .header-inner { height: 68px; max-width: 1320px; padding: 0 32px; }
.v7 .logo { color: #fff; font-family: var(--disp); font-weight: 800; } .v7 .logo em { color: var(--vi2); }
.v7 .logo svg circle, .v7 .logo svg path { stroke: var(--vi2); }
.v7 .nav a:not(.btn), .v7 .nav .nav-link { color: #d7d9e2; font-weight: 500; font-size: .92rem; } .v7 .nav a:not(.btn):hover { color:#fff; }
.v7 .mega-toggle, .v7 .nav-toggle { color:#fff; }
.v7 .nav .btn--primary { background: var(--vi); color:#fff; border-radius: 999px; padding: 11px 22px; } .v7 .nav .btn--primary:hover { background:#fff; color: var(--bg); }
.v7 .mega { background:#fff; } .v7 .nav .mega a:not(.btn) { color:#0e1016; }
@media (max-width:760px){ .v7 .nav{background:var(--bg2);border-top:1px solid var(--line)} .v7 .nav a:not(.btn){border-bottom-color:var(--line)} .v7 .nav-item{border-bottom-color:var(--line)} .v7 .nav .mega a:not(.btn),.v7 .mp-items .mi-t,.v7 .mp-title span{color:#fff} .v7 .mega{background:#151822} .v7 .mg-foot-label{color:var(--mut)} .v7 .nav .mega .mg-chips a:not(.btn){background:transparent;color:#fff;border-color:var(--line)} }
.m-bar { position: fixed; left:0; top:0; height: 3px; width: 100%; z-index: 200; background: linear-gradient(90deg, var(--vi), var(--vi2)); transform-origin: 0 50%; transform: scaleX(0); }
.m-label { font: 500 .8rem 'Inter'; letter-spacing: .04em; color: var(--vi2); margin: 0 0 18px; }
.m-btn { display:inline-flex; align-items:center; gap:12px; padding: 17px 30px; border: 1.5px solid rgba(255,255,255,.3); border-radius: 999px; color:#fff; font: 600 1rem var(--disp); text-decoration:none; background: transparent; cursor:pointer; transition: background .25s, color .25s, border-color .25s; will-change: transform; }
.m-btn i { font-style: normal; transition: transform .25s; } .m-btn:hover i { transform: translateX(5px); }
.m-btn:hover { background:#fff; color: var(--bg); border-color:#fff; }
.m-btn--p { background: var(--vi); border-color: var(--vi); } .m-btn--p:hover { background:#fff; border-color:#fff; }
.m-link { font: 600 1rem var(--disp); color:#fff; text-decoration:none; border-bottom: 2px solid var(--vi); padding-bottom: 3px; white-space: nowrap; }
.m-p { font-size: 1.15rem; line-height: 1.65; color: #b9bdca; max-width: 560px; margin: 0; }

/* stage (globe + chapters) */
.m-stage { position: relative; height: 100vh; min-height: 640px; overflow: hidden; background: radial-gradient(1100px 700px at 72% 50%, #151a33 0%, var(--bg) 62%); }
.m-globe { position:absolute; inset:0; width:100%; height:100%; display:block; }
.m-vig { position:absolute; inset:0; background: linear-gradient(90deg, rgba(8,9,13,.92) 0%, rgba(8,9,13,.55) 38%, rgba(8,9,13,0) 64%), linear-gradient(0deg, var(--bg) 0%, transparent 22%); pointer-events:none; }
.m-stage-in { position:relative; height:100%; display:flex; align-items:center; }
.m-chaps { position: relative; width: min(700px, 100%); min-height: 420px; }
.m-chap { position:absolute; left:0; right:0; top:50%; transform: translateY(-50%); opacity:0; visibility:hidden; transition: opacity .55s, visibility .55s; pointer-events:none; }
.m-chap.on { opacity:1; visibility:visible; pointer-events:auto; }
.m-chap > * { transform: translateY(26px); opacity:0; transition: transform .8s cubic-bezier(.2,.8,.2,1), opacity .8s; }
.m-chap.on > * { transform:none; opacity:1; } .m-chap.on > *:nth-child(2) { transition-delay:.08s } .m-chap.on > *:nth-child(3) { transition-delay:.16s } .m-chap.on > *:nth-child(4) { transition-delay:.24s }
.m-eyebrow { display:inline-flex; align-items:center; gap:10px; font: 500 .84rem 'Inter'; color: var(--vi2); margin: 0 0 22px; padding: 8px 16px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.04); }
.m-eyebrow span { width:8px; height:8px; border-radius:50%; background:#3be08a; box-shadow: 0 0 0 0 rgba(59,224,138,.6); animation: mp 2s infinite; } @keyframes mp { 70% { box-shadow: 0 0 0 9px rgba(59,224,138,0); } 100% { box-shadow: 0 0 0 0 rgba(59,224,138,0); } }
.m-chap h1 { font-size: clamp(2.4rem, 4.6vw, 4.4rem); margin: 0 0 22px; } .m-chap h2 { font-size: clamp(3.4rem, 8vw, 7rem); margin: 0 0 22px; }
.m-chap h1 .ln { display:inline-block; overflow:hidden; vertical-align: bottom; padding-bottom:.08em; } .m-chap h1 .ln i { display:inline-block; font-style: normal; }
.acc { background: linear-gradient(100deg, var(--vi2), var(--vi)); -webkit-background-clip:text; background-clip:text; color: transparent; }
.m-cta { display:flex; flex-wrap:wrap; gap: 14px; margin-top: 32px; }
.m-rail { position:absolute; right: 32px; bottom: 30px; display:flex; align-items:center; gap:14px; font: 600 .8rem var(--disp); color: var(--mut); }
.m-rail b { color:#fff; } .m-rail-line { width:160px; height: 2px; background: var(--line); position:relative; overflow:hidden; } .m-rail-line i { position:absolute; left:0; top:0; height:100%; width:0; background: var(--vi2); }
.m-scroll { position:absolute; left: 32px; bottom: 28px; display:flex; align-items:center; gap: 12px; font: 500 .78rem 'Inter'; letter-spacing:.14em; text-transform:uppercase; color: var(--mut); margin:0; }
.m-scroll span { width:1px; height: 40px; background: linear-gradient(var(--vi2), transparent); animation: msc 1.8s ease-in-out infinite; transform-origin: top; } @keyframes msc { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity:0; } }

/* marquee + claim */
.m-marq { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding: 26px 0; background: var(--bg); }
.m-marq-t { display:flex; align-items:center; gap: 36px; width:max-content; font: 800 clamp(2rem, 5vw, 4.4rem) var(--disp); letter-spacing:-.03em; color: transparent; -webkit-text-stroke: 1.5px rgba(242,240,234,.55); white-space:nowrap; }
.m-marq-t i { width:16px; height:16px; border-radius:50%; background: var(--vi); flex:none; }
.m-sec { padding: 140px 0; } .m-alt { background: var(--bg2); }
.m-claim h2 { font-size: clamp(1.9rem, 4.4vw, 4rem); line-height: 1.12; max-width: 1150px; font-weight: 700; margin: 0; }
.m-split .w { display:inline-block; overflow:hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; } .m-split .w > span { display:inline-block; }
html.js .m-split .w > span { transform: translateY(110%); }
html.js .m-split.in .w > span { transform:none; transition: transform .9s cubic-bezier(.2,.8,.2,1); transition-delay: calc(var(--i) * 28ms); }
.m-split h2 { margin:0; }

/* horizontal services */
.m-hs { position:relative; padding: 110px 0 90px; background: var(--bg); overflow:hidden; }
.m-hs-head { display:flex; align-items:flex-end; justify-content:space-between; gap: 24px; flex-wrap:wrap; margin-bottom: 44px; } .m-hs-head h2 { font-size: clamp(2.6rem, 6.4vw, 5.6rem); margin: 0; }
.m-hs-hint { font: 500 .85rem 'Inter'; color: var(--mut); letter-spacing:.1em; text-transform:uppercase; }
.m-hs-track { display:flex; gap: 24px; padding: 0 32px; width: max-content; }
.m-card { position:relative; flex: 0 0 min(560px, 78vw); height: min(560px, 68vh); display:flex; flex-direction:column; justify-content:space-between; padding: 30px; border:1px solid var(--line); border-radius: 28px; overflow:hidden; color:#fff; text-decoration:none; background: var(--bg2); transition: border-color .3s; }
.m-card-img { position:absolute; inset: -8% -8%; z-index:0; } .m-card-img img { width:100%; height:100%; object-fit:cover; display:block; opacity:.32; filter: saturate(.6); will-change: transform; transition: opacity .4s; }
.m-card::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(8,9,13,.1) 0%, rgba(8,9,13,.9) 72%); z-index:0; }
.m-card > * { position:relative; z-index:1; } .m-card:hover { border-color: var(--vi2); } .m-card:hover .m-card-img img { opacity:.5; }
.m-card-n { font: 800 5.4rem/.8 var(--disp); color: var(--vi2); letter-spacing:-.05em; }
.m-card-b { display:grid; gap: 10px; } .m-card small { font: 500 .86rem 'Inter'; color: var(--vi2); text-transform: uppercase; letter-spacing:.1em; }
.m-card b { font: 800 clamp(2.2rem, 3.6vw, 3.4rem)/.96 var(--disp); letter-spacing:-.04em; } .m-card-t { color:#c5c8d4; line-height:1.55; max-width: 400px; }
.m-card ul { list-style:none; margin: 4px 0 0; padding:0; display:flex; flex-wrap:wrap; gap: 8px; } .m-card li { padding: 6px 14px; border:1px solid rgba(255,255,255,.28); border-radius: 999px; font-size:.84rem; }
.m-card-go { font: 600 .95rem var(--disp); margin-top:6px; } .m-card-go i { font-style:normal; display:inline-block; transition: transform .25s; } .m-card:hover .m-card-go i { transform: translateX(6px); }
.m-hs-prog { height:3px; background: var(--line); margin: 36px 32px 0; border-radius:3px; overflow:hidden; } .m-hs-prog i { display:block; height:100%; width:0; background: var(--vi2); }

/* stats */
.m-stats { background: var(--vi); color:#fff; padding: 100px 0; } .m-stats-g { display:grid; grid-template-columns: repeat(4,1fr); gap: 28px; }
.m-stats b { display:block; font: 800 clamp(3rem, 6.4vw, 5.6rem)/1 var(--disp); letter-spacing:-.05em; } .m-stats small { font-size:.34em; margin-left:6px; letter-spacing:0; font-weight:700; }
.m-stats-g > div > span { display:block; margin-top: 12px; max-width: 240px; line-height:1.45; color: rgba(255,255,255,.86); } .m-stats .m-cnt { display:inline; margin:0; max-width:none; color:inherit; }

/* industries */
.m-rows { margin-top: 60px; display:grid; gap: 8px; overflow:hidden; }
.m-row > div { display:flex; align-items:center; gap: 34px; width:max-content; will-change: transform; }
.m-row a { font: 800 clamp(3.4rem, 9vw, 8.4rem)/1 var(--disp); letter-spacing:-.04em; color: transparent; -webkit-text-stroke: 1.5px rgba(242,240,234,.55); text-decoration:none; white-space:nowrap; transition: color .2s, -webkit-text-stroke-color .2s; } .m-row a:hover { color: var(--vi2); -webkit-text-stroke-color: var(--vi2); }
.m-row i { width: 18px; height: 18px; border-radius:50%; background: var(--vi); flex:none; }

/* posts + faq + contact */
.m-head-row { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom: 52px; } .m-head-row h2, .m-faq-g h2 { font-size: clamp(2.6rem, 6vw, 5rem); margin:0; }
.m-posts { display:grid; grid-template-columns: repeat(3,1fr); gap: 24px; } .m-post { display:flex; flex-direction:column; gap: 12px; color:#fff; text-decoration:none; }
.m-post .im { display:block; aspect-ratio: 4/3; border-radius: 22px; overflow:hidden; background:#000; } .m-post img { width:100%; height:100%; object-fit:cover; display:block; transition: transform .7s; } .m-post:hover img { transform: scale(1.07); }
.m-post small { font: 500 .8rem 'Inter'; color: var(--vi2); text-transform:uppercase; letter-spacing:.08em; margin-top:6px; } .m-post b { font: 700 1.45rem/1.15 var(--disp); letter-spacing:-.03em; } .m-post:hover b { text-decoration: underline; text-underline-offset:5px; text-decoration-color: var(--vi); }
.m-faq-g { display:grid; grid-template-columns: .8fr 1.4fr; gap: 72px; align-items:start; }
.m-faq details { border-top: 1px solid var(--line); } .m-faq details:last-child { border-bottom:1px solid var(--line); }
.m-faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; padding: 26px 0; font: 700 1.3rem/1.2 var(--disp); letter-spacing:-.02em; } .m-faq summary::-webkit-details-marker{display:none}
.m-faq summary::after { content:"+"; flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(255,255,255,.4); font-size:1.4rem; transition: background .25s, transform .3s; } .m-faq details[open] summary::after { content:"\2212"; background: var(--vi); border-color: var(--vi); }
.m-faq p { margin:0 0 26px; max-width: 640px; color: var(--mut); line-height:1.7; }
.m-contact { padding: 140px 0; background: radial-gradient(900px 500px at 15% 0%, #1a1440 0%, var(--bg) 60%); border-top:1px solid var(--line); }
.m-contact-g { display:grid; grid-template-columns: 1.1fr 1fr; gap: 72px; align-items:start; } .m-contact h2 { font-size: clamp(2.4rem, 5.6vw, 4.8rem); margin: 0 0 24px; } .m-contact .m-p { margin-bottom: 36px; }
.m-ci { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); } .m-ci li { display:grid; grid-template-columns: 90px 1fr; gap:20px; padding: 16px 0; border-bottom:1px solid var(--line); line-height:1.5; } .m-ci small { color: var(--vi2); font-weight:600; } .m-ci a { color:#fff; }
.m-form { display:grid; gap:18px; padding: 36px; border:1px solid var(--line); border-radius: 28px; background: rgba(255,255,255,.04); backdrop-filter: blur(10px); }
.m-form label { display:grid; gap:8px; } .m-form label span { font: 600 .9rem var(--disp); color:#d7d9e2; }
.m-form input, .m-form select, .m-form textarea { width:100%; padding: 15px 18px; border: 1.5px solid rgba(255,255,255,.2); border-radius: 16px; background: rgba(8,9,13,.6); color:#fff; font: 1rem 'Inter'; } .m-form select option { color:#0e1016; }
.m-form input:focus, .m-form select:focus, .m-form textarea:focus { outline:0; border-color: var(--vi2); box-shadow: 0 0 0 4px rgba(122,92,255,.28); }
.m-r2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; } .m-form .hp { position:absolute; left:-9999px; height:0; overflow:hidden; } .m-form .m-btn { justify-self:start; }
.m-al { padding:14px 16px; border-radius:14px; font-weight:500; } .m-al.ok { background: rgba(59,224,138,.18); color:#7df0b0; } .m-al.bad { background: rgba(255,90,90,.18); color:#ff9a9a; }
.v7 .ft { --f-bg:#08090d; --f-lime: var(--vi2); background-image:none; border-top:1px solid var(--line); } .v7 .ft .ft-btn { color:#0e1016 !important; } .v7 .ft-mark { -webkit-text-stroke:1.5px rgba(196,184,255,.4); font-family: var(--disp); }

/* desktop pinned mode and mobile static fallback */
@media (max-width: 899px) {
  .m-stage { height:auto; min-height: 0; padding: 120px 0 60px; } .m-vig { background: linear-gradient(180deg, rgba(8,9,13,.55), var(--bg)); } .m-globe { opacity:.55; }
  .m-stage-in { display:block; } .m-chaps { min-height:0; } .m-chap { position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto; margin-bottom: 52px; } .m-chap > * { opacity:1; transform:none; }
  .m-chap h2 { font-size: clamp(2.6rem, 11vw, 4rem); } .m-rail, .m-scroll { display:none; }
  .v7 .m-wrap, .v7 .header-inner { padding: 0 20px; } .m-sec, .m-contact { padding: 84px 0; } .m-stats-g { grid-template-columns: 1fr 1fr; row-gap:44px; }
  .m-hs { padding: 84px 0 60px; } .m-hs-track { width:auto; flex-direction:column; padding: 0 20px; } .m-card { flex: none; height: 440px; } .m-hs-prog, .m-hs-hint { display:none; }
  .m-posts { grid-template-columns:1fr; } .m-faq-g, .m-contact-g { grid-template-columns:1fr; gap:40px; } .m-r2 { grid-template-columns:1fr; } .m-head-row { flex-direction:column; align-items:flex-start; } .m-form { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) { .m-marq-t { animation:none; } html.js .m-split .w > span { transform:none; } .m-chap > * { transition:none; } }

@media (min-width: 900px) {
  .m-hs { height: 100vh; display: flex; flex-direction: column; padding: 92px 0 26px; }
  .m-hs-head { margin-bottom: 22px; } .m-hs-head h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); }
  .m-hs-track { flex: 1; min-height: 0; align-items: stretch; }
  .m-card { height: auto; flex: 0 0 min(520px, 40vw); }
  .m-hs-prog { margin-top: 20px; }
  .m-card-n { font-size: 4rem; } .m-card b { font-size: clamp(1.9rem, 3vw, 2.8rem); }
}
.m-stats b { font-size: clamp(2.6rem, 5vw, 4.6rem); white-space: nowrap; }
.m-contact h2 { font-size: clamp(2.2rem, 4vw, 3.6rem); }

@media (min-width: 900px) and (max-height: 900px) { .m-card li:nth-child(3) { display:none; } .m-card-t { font-size:.92rem; } .m-hs { padding-top: 104px; } }

@media (max-width: 899px) { .m-card b { font-size: clamp(1.7rem, 8vw, 2.3rem); } .m-card-n { font-size: 3.2rem; } .m-card-img { inset: 0; } .m-globe { opacity: .8; } }
