@font-face{font-family:BVP;src:url('../assets/fonts/BeVietnamPro-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:BVP;src:url('../assets/fonts/BeVietnamPro-Medium.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:BVP;src:url('../assets/fonts/BeVietnamPro-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:BVP;src:url('../assets/fonts/BeVietnamPro-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--navy:#0b1b3b;--blue:#1e5bf0;--teal:#10d3c4;--text:#34435d;--muted:#586a88;--line:#dce4ef;--cloud:#f4f7fc;--max:1200px;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--text);background:#fff;font:400 16px/1.75 BVP,Arial,sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--navy);font-weight:600;line-height:1.25;letter-spacing:-.045em}h1{font-size:clamp(38px,4.7vw,64px)}h2{font-size:clamp(28px,3vw,42px)}h3{font-size:21px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button{color:inherit}img{max-width:100%;display:block}svg{flex:none}.icon{width:24px;height:24px;display:block}button{border:0}em{font-style:normal;color:var(--blue)}[hidden]{display:none!important}.wrap{max-width:var(--max);padding:0 32px;margin:auto}.section{padding:96px 0}.tinted{background:var(--cloud)}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.narrow{max-width:780px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--blue);line-height:1.6;text-transform:uppercase;margin-bottom:20px}.section-heading{max-width:760px;margin-bottom:48px}.section-heading .intro,.intro{font-size:17px;line-height:1.8;margin-top:22px;max-width:65ch}.lead{font-size:18px;line-height:1.85;max-width:60ch;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:50px;padding:13px 22px;background:var(--blue);border:1px solid var(--blue);border-radius:7px;color:white;font-size:13px;font-weight:500;transition:background .2s,transform .2s}.button .icon{width:18px;height:18px}.button:hover{background:#1548c8;transform:translateY(-2px)}.button.secondary{background:transparent;color:var(--navy);border-color:#bcc9dc}.button.secondary:hover{border-color:var(--blue);background:#eaf0ff}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.text-link{display:inline-flex;align-items:center;gap:14px;color:var(--blue);font-size:13px;font-weight:500;padding:8px 0;background:none}.text-link .icon{width:17px;height:17px}.text-link:hover{text-decoration:underline}.index{font-size:12px;letter-spacing:.08em;color:var(--blue)}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(220,228,239,.75);backdrop-filter:blur(14px)}.nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{flex:none}.logo img{width:180px;height:auto}.desktop-nav{display:flex;gap:26px;align-items:center}.desktop-nav a{font-size:12px;white-space:nowrap;padding:10px 0;position:relative}.desktop-nav a[aria-current],.desktop-nav a:hover{color:var(--blue)}.desktop-nav a[aria-current]::after{content:'';position:absolute;bottom:1px;left:0;right:0;height:2px;background:var(--blue)}.nav-tools{display:flex;align-items:center;gap:20px}.lang{font-size:12px;font-weight:600;background:none;padding:10px}.nav-cta{border-left:1px solid var(--line);padding-left:22px;color:var(--blue);font-size:12px;white-space:nowrap}.menu-toggle{display:none;background:none;padding:9px}.mobile-nav{padding:14px 24px 24px;border-top:1px solid var(--line);max-height:75vh;overflow:auto}.mobile-nav a{display:block;padding:12px;border-bottom:1px solid var(--line)}.hero{background:linear-gradient(145deg,#fff 45%,#f0f6ff);overflow:hidden;position:relative}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:28px;align-items:center;min-height:650px;padding-top:56px;padding-bottom:36px}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(38px,4.4vw,61px);line-height:1.17;font-weight:600;letter-spacing:-.055em}.hero .lead{max-width:49ch;font-size:16px}.hero .eyebrow{margin-bottom:25px}.hero-note{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin-top:31px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(16,211,196,.12)}.hero-bottom{padding-top:25px;padding-bottom:25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.hero-bottom>span:last-child{font-size:9px;letter-spacing:.07em}
/* Code-native 3D illustration. No remote libraries or model downloads. */
.scene{height:500px;width:100%;position:relative;isolation:isolate;perspective:1000px;--mx:0deg;--my:0deg}.scene::before{content:'';position:absolute;inset:10%;border-radius:50%;background:radial-gradient(ellipse,#b5f1ec80,transparent 65%);filter:blur(25px)}.scene-grid{position:absolute;inset:12% 0 0;background-image:linear-gradient(#1e5bf00a 1px,transparent 1px),linear-gradient(90deg,#1e5bf00a 1px,transparent 1px);background-size:28px 28px;transform:rotateX(65deg) rotateZ(-30deg);mask-image:radial-gradient(ellipse,black,transparent 68%)}.scene-orbit{position:absolute;width:390px;height:390px;max-width:90%;border:1px dashed #1e5bf025;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);animation:orbit 80s linear infinite}.system-model{position:absolute;width:280px;height:300px;left:50%;top:50%;transform:translate(-50%,-50%) rotateX(var(--mx)) rotateY(var(--my));transform-style:preserve-3d;transition:transform .3s}.model-layer{position:absolute;left:17px;width:240px;height:140px;transform:rotateX(55deg) rotateZ(-34deg);transform-style:preserve-3d;animation:float 7s ease-in-out infinite;filter:drop-shadow(14px 28px 15px #0b1b3b18);transition:filter .5s,opacity .5s}.layer-cloud{top:155px;z-index:1;animation-delay:-2s}.layer-data{top:65px;z-index:2;animation-delay:-1s}.layer-app{top:-25px;z-index:3}.layer-top{position:absolute;inset:0;border-radius:13px;border:1px solid #ffffffc0;display:flex;align-items:center;padding:22px;gap:18px;background:linear-gradient(125deg,#fff,#e6efff);box-shadow:inset 0 0 0 1px #1e5bf020,0 1px 0 #ffffff}.layer-top>.icon{width:38px;height:38px;stroke:var(--blue)}.layer-top>span{font-size:12px;letter-spacing:.1em;font-weight:600;color:var(--navy);white-space:nowrap}.layer-data .layer-top{background:linear-gradient(125deg,#1e5bf0,#2b77ff);border-color:#8ab9ff}.layer-data .layer-top>.icon,.layer-data .layer-top>span{color:white;stroke:white}.layer-app .layer-top{background:linear-gradient(125deg,#d6fff9,#90e9dc);border-color:#e8fffd}.layer-side{position:absolute;inset:9px 0 -9px;border-radius:13px;background:#a8bde8;transform:translateZ(-8px);box-shadow:0 8px 0 #bbccec}.layer-data .layer-side{background:#0e3bb7;box-shadow:0 8px 0 #0a329f}.layer-app .layer-side{background:#53bdae;box-shadow:0 8px 0 #43a99c}.layer-top i{position:absolute;width:5px;height:5px;border-radius:50%;bottom:18px;right:20px;background:var(--teal);animation:blink 3s ease-in-out infinite}.layer-top i:nth-last-child(2){right:30px;animation-delay:.5s}.layer-top i:nth-last-child(3){right:40px;animation-delay:1s}.model-core{position:absolute;left:108px;top:240px;font-size:25px;font-weight:600;letter-spacing:-.08em;color:var(--blue);background:#ffffffc0;border:1px solid #d6e2ff;border-radius:12px;width:55px;height:55px;display:grid;place-items:center;box-shadow:0 8px 28px #1e5bf020}.scene-label{position:absolute;font-size:9px;letter-spacing:.1em;color:var(--muted);padding:5px 0;border-bottom:1px solid #9eb2d0}.label-one{bottom:99px;left:6px}.label-two{right:0;top:235px}.label-three{top:68px;left:12px}.scene-caption{position:absolute;bottom:15px;left:0;right:0;font-size:9px;text-align:center;color:var(--muted)}.scene[data-mode=data-ai] .layer-data,.scene[data-mode=software] .layer-app,.scene[data-mode=cloud] .layer-cloud{filter:drop-shadow(0 10px 20px #1e5bf03b)}.motion-paused .model-layer,.motion-paused .scene-orbit,.motion-paused .layer-top i{animation-play-state:paused}.scene.small{height:340px}.scene.small .system-model{scale:.8}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes blink{0%,100%{opacity:.35}50%{opacity:1}}@keyframes orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
.service-list{border-top:1px solid var(--line)}.service-link{display:grid;grid-template-columns:72px 1fr 30px;gap:28px;padding:32px 0;border-bottom:1px solid var(--line);align-items:center;transition:padding .25s}.service-link:hover{padding-left:10px}.service-link h3{font-size:24px}.service-link p{margin-top:10px;font-size:14px;max-width:83ch}.service-link>.icon{color:var(--blue)}.service-icon{width:64px;height:64px;border:1px solid var(--line);border-radius:15px;display:grid;place-items:center;background:linear-gradient(140deg,#f8fbff,#eef6fc)}.service-icon .icon{width:31px;height:31px;color:var(--blue)}.problem-grid,.editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.problem-grid article{border-top:1px solid #b6c7e4;padding-top:20px}.problem-grid h3{margin-top:30px;font-size:23px}.problem-grid p,.editorial-grid p{margin-top:16px;font-size:14px}.problem-grid .text-link{margin-top:24px}.dark{background:var(--navy);color:#c1cee4;position:relative;overflow:hidden}.dark::after{content:'';position:absolute;right:-120px;bottom:-100px;width:350px;height:350px;border-radius:50%;background:radial-gradient(circle,#10d3c41c,transparent 70%);pointer-events:none}.dark h2,.dark h3{color:white}.dark .eyebrow{color:#4ee4d6}.dark .button.secondary{color:white;border-color:#536586}.dark .button.secondary:hover{background:#ffffff0d}.principles article{border-top:1px solid #ffffff26;padding:23px 0}.principles h3{font-size:21px}.principles p{font-size:14px;margin-top:10px}.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:22px}.steps li{border-top:1px solid var(--line);padding-top:20px}.steps li>span{font-size:12px;color:var(--blue)}.steps h3{font-size:17px;margin-top:27px}.steps p{font-size:12px;margin-top:12px}.featured-insight{border-left:1px solid #b6c7e4;padding:35px 0 35px 45px}.featured-insight h3{font-size:32px;margin:20px 0}.featured-insight p:not(.eyebrow){font-size:15px}.featured-insight>.icon{margin-top:30px;color:var(--blue)}.cta{padding:70px 0;background:#eaf2ff;border-top:1px solid #d2e0f5}.cta-inner{display:flex;gap:40px;align-items:center;justify-content:space-between}.cta h2{font-size:32px}.cta p:not(.eyebrow){font-size:14px;margin-top:14px;max-width:65ch}.cta .button{flex:none}footer{background:#08152e;color:#a6b6d1;padding:64px 0 24px;font-size:12px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:85px}.footer-logo{width:190px;height:auto;margin-bottom:18px}.tagline{color:white;margin-bottom:14px}.footer-grid h3{font-size:14px;color:white;margin-bottom:20px;letter-spacing:0}.footer-grid a{display:block;margin:10px 0}.footer-grid a:hover{color:white}.footer-grid p{max-width:39ch}.footer-bottom{margin-top:50px;border-top:1px solid #ffffff1f;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:10px}.footer-bottom>div{display:flex;gap:22px}.subhero{padding:60px 0 64px;background:linear-gradient(120deg,#f4f7fc,#f8fbff);border-bottom:1px solid var(--line)}.breadcrumb{display:flex;gap:12px;color:var(--muted);font-size:11px;margin-bottom:28px}.subhero h1{max-width:19ch}.subhero .lead{max-width:70ch;font-size:16px}.anchor-nav{display:flex;gap:30px;padding-top:26px;padding-bottom:26px;border-bottom:1px solid var(--line);font-size:12px}.anchor-nav a:hover{color:var(--blue)}.service-section:nth-of-type(even){background:#fafcff}.service-overview h2{font-size:36px}.large-icon{color:var(--blue);margin-bottom:25px}.large-icon .icon{width:40px;height:40px}.deliverable{margin:30px 0;padding:20px 0;border-top:1px solid var(--line)}.deliverable h3{font-size:10px;letter-spacing:.1em;color:var(--blue)}.deliverable p{font-size:13px;margin-top:12px}.detail-row{display:flex;gap:22px;padding:24px 0;border-top:1px solid var(--line)}.detail-row h3{font-size:18px}.detail-row p{font-size:13px;margin-top:10px}.row-num{font-size:11px;color:var(--blue);padding-top:3px}.editorial-grid article{padding-top:20px;border-top:1px solid var(--line)}.editorial-grid .icon{color:var(--blue);margin-bottom:26px}.prose p{margin-bottom:24px;font-size:16px}.leader{padding:35px;border:1px solid var(--line);display:flex;align-items:flex-start;gap:26px}.leader p{font-size:13px;margin-top:12px}.monogram{background:#e9f0ff;color:var(--blue);font-size:15px;width:65px;height:65px;display:grid;place-items:center;flex:none;border-radius:50%}.legal-table{margin:0}.legal-table>div{display:grid;grid-template-columns:260px 1fr;gap:30px;padding:20px 0;border-top:1px solid var(--line);font-size:13px}.legal-table dt{font-weight:500;color:var(--navy)}.legal-table dd{margin:0}.context-note{max-width:85ch;padding-left:20px;border-left:2px solid var(--teal);font-size:13px;margin-bottom:50px}.platform-list article,.industry-list article{display:grid;grid-template-columns:45px 1fr 1fr;gap:35px;border-top:1px solid var(--line);padding:32px 0}.platform-list h2,.industry-list h2{font-size:24px}.platform-list p,.industry-list p{font-size:14px;margin-top:12px}.platform-list .tech-names{font-size:15px;line-height:2;color:var(--navy)}.industry-list .eyebrow{font-size:10px;margin-top:0;margin-bottom:14px}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.insight-art{height:210px;background:#edf3ff;position:relative;display:grid;place-items:center;overflow:hidden;margin-bottom:26px}.insight-art::before{content:'';position:absolute;width:180px;height:180px;border:1px solid #1e5bf025;transform:rotate(35deg);border-radius:25px}.insight-art>.icon{width:70px;height:70px;color:var(--blue);transform:rotate(-12deg);filter:drop-shadow(15px 18px 1px #1e5bf01f)}.insight-art>span{position:absolute;bottom:15px;right:20px;color:#1e5bf050;font-size:12px}.art-1{background:#e9f8f5}.art-2{background:#e9edf5}.insight h2{font-size:25px}.insight p:not(.eyebrow){margin-top:15px;font-size:13px}.insight .text-link{margin-top:22px}.article{max-width:810px;padding-top:64px;padding-bottom:90px}.article h2{font-size:26px;margin:42px 0 18px}.article p{font-size:16px;line-height:1.95;margin-bottom:24px}.article .eyebrow{font-size:11px}.studio-tabs{display:flex;flex-direction:column;gap:8px;margin-bottom:30px}.studio-tabs button{display:flex;align-items:center;gap:16px;text-align:left;padding:18px 20px;background:#f4f7fc;border:1px solid transparent;border-radius:5px}.studio-tabs button[aria-pressed=true]{border-color:#a6bdf4;background:#eaf0ff;color:var(--blue)}#layer-copy h3{margin-bottom:16px}#layer-copy p{font-size:14px}#layer-copy{min-height:150px}.motion-toggle{margin-top:20px}.contact-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:85px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:24px}.field label{display:block;font-size:12px;font-weight:500;color:var(--navy);margin-bottom:10px}input,select,textarea{border:1px solid #bac8db;background:#fff;padding:12px 13px;border-radius:5px;color:var(--navy);width:100%;font-size:15px;line-height:1.6}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue)}.hint{font-size:11px;color:var(--muted);margin-top:9px}.hint a{color:var(--blue);text-decoration:underline}.consent{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.7}.consent input{width:18px;height:18px;flex:none;margin:3px 0}.field input:user-invalid,.field textarea:user-invalid{border-color:#ae3535}.form-status{font-size:13px;margin:20px 0;white-space:pre-line}.contact-aside{padding:32px;background:var(--cloud);border-top:2px solid var(--blue)}.contact-aside h2{font-size:25px;margin-bottom:30px}.contact-aside>a,.contact-aside>div{display:flex;gap:14px;align-items:flex-start;font-size:13px;margin:23px 0}.contact-aside .icon{color:var(--blue);width:19px;height:19px;margin-top:2px}.contact-aside>p{font-size:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:25px}.contact-layout .button{margin-top:25px}#email-fallback textarea{font-size:12px}#email-fallback .text-link{margin-right:20px}.button:disabled{opacity:.6;cursor:wait}
@media(min-width:1450px){:root{--max:1280px}.hero-grid{min-height:720px}.scene{height:560px}}
@media(max-width:1100px){.desktop-nav{gap:18px}.desktop-nav a{font-size:11px}.nav-tools{gap:10px}.logo img{width:155px}.nav-cta{padding-left:15px;font-size:11px}.split{gap:45px}.contact-layout{gap:45px}.footer-grid{gap:45px}.hero h1{font-size:48px}.scene-label{display:none}}
@media(max-width:900px){.desktop-nav,.nav-cta{display:none}.menu-toggle{display:block}.nav{height:76px}.hero-grid{grid-template-columns:1fr;gap:0;padding-top:55px;padding-bottom:20px}.hero-copy{max-width:680px}.hero h1{font-size:54px}.hero .lead{max-width:60ch}.scene{height:420px;max-width:550px;margin:0 auto}.hero-bottom{font-size:10px}.hero-bottom>span:last-child{display:none}.section{padding:70px 0}.split{grid-template-columns:1fr;gap:38px}.problem-grid,.editorial-grid{gap:24px}.steps{grid-template-columns:repeat(3,1fr);gap:30px}.footer-grid{grid-template-columns:1.3fr 1fr;gap:40px}.footer-grid>div:first-child{grid-column:1/-1}.cta-inner{align-items:flex-start}.contact-layout{grid-template-columns:1fr;gap:45px}.insight-grid{gap:20px}.insight h2{font-size:21px}.insight-art{height:170px}.platform-list article,.industry-list article{grid-template-columns:30px 1fr;gap:20px}.platform-list .tech-names,.industry-list article>div:last-child{grid-column:2}.service-overview h2{max-width:25ch}.featured-insight{padding:15px 0 15px 30px}}
@media(max-width:600px){body{font-size:15px}.wrap{padding-left:22px;padding-right:22px}.nav{height:70px;gap:10px}.logo img{width:155px}.nav-tools{gap:8px}.hero-grid{padding-top:45px}.hero h1{font-size:40px;line-height:1.25}.hero .eyebrow{font-size:9px}.hero .lead,.lead{font-size:15px}.actions{gap:10px}.button{font-size:12px;padding:12px 16px;gap:12px;min-height:48px}.hero-note{font-size:8px}.scene{height:355px}.system-model{scale:.82;transform-origin:center}.scene-orbit{width:290px;height:290px}.scene-caption{font-size:8px;bottom:5px}.section{padding:56px 0}.section-heading{margin-bottom:32px}.section-heading h2{font-size:30px}.intro{font-size:15px}.eyebrow{font-size:10px;margin-bottom:16px}.service-link{grid-template-columns:42px 1fr;gap:18px;padding:26px 0}.service-link>.icon{display:none}.service-icon{width:42px;height:42px;border-radius:10px}.service-icon .icon{width:23px;height:23px}.service-link h3{font-size:20px}.service-link p{font-size:13px}.problem-grid,.editorial-grid,.insight-grid{grid-template-columns:1fr;gap:35px}.problem-grid h3{margin-top:18px}.steps{grid-template-columns:1fr 1fr;gap:24px}.steps h3{margin-top:16px}.steps p{font-size:11px}.cta{padding:48px 0}.cta-inner{display:block}.cta h2{font-size:29px}.cta .button{margin-top:26px}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{display:block;font-size:10px}.footer-bottom>div{margin-top:16px}.subhero{padding:36px 0 42px}.subhero h1{font-size:36px;line-height:1.3}.subhero .lead{font-size:14px}.breadcrumb{font-size:10px;margin-bottom:24px}.anchor-nav{gap:12px;flex-wrap:wrap;font-size:11px}.service-overview h2{font-size:30px}.detail-row{gap:16px}.detail-row h3{font-size:17px}.legal-table>div{grid-template-columns:1fr;gap:8px}.leader{padding:24px;gap:18px;flex-wrap:wrap}.platform-list h2,.industry-list h2{font-size:22px}.platform-list p,.industry-list p{font-size:13px}.insight-art{height:220px}.insight h2{font-size:26px}.article{padding-top:38px;padding-bottom:60px}.article h2{font-size:24px}.article p{font-size:15px}.form-grid{grid-template-columns:1fr;gap:0}.contact-aside{padding:25px}.studio-tabs button{padding:15px}.studio-section .scene{height:355px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.system-model{--mx:0deg!important;--my:0deg!important}}
/* Final reading balance and selected-layer emphasis */
h1,h2{text-wrap:balance}.subhero h1{font-size:clamp(36px,4vw,54px);max-width:24ch}.studio-section .scene[data-mode=cloud] .layer-data,.studio-section .scene[data-mode=cloud] .layer-app,.studio-section .scene[data-mode=data-ai] .layer-cloud,.studio-section .scene[data-mode=data-ai] .layer-app,.studio-section .scene[data-mode=software] .layer-cloud,.studio-section .scene[data-mode=software] .layer-data{opacity:.45}
.scene{overflow:clip}

/* V2: service-specific illustrations, one coherent blue/teal visual language. */
.service-visual{height:280px;position:relative;overflow:clip;isolation:isolate;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 55%,#e8f2ff,transparent 67%);margin-top:26px;perspective:950px}.visual-note{position:absolute;bottom:4px;text-align:center;font-size:9px;color:var(--muted);letter-spacing:.03em}.cloud-platform{width:340px;height:220px;position:relative;transform:rotateX(9deg) rotateY(-12deg);transform-style:preserve-3d}.cloud-floor{position:absolute;left:36px;bottom:20px;width:250px;height:135px;border:1px solid #b4caee;border-radius:16px;background:linear-gradient(130deg,#edf5ff,#d3e3fb);transform:rotateX(64deg) rotateZ(-30deg);box-shadow:0 14px 0 #b5ccec,0 24px 25px #0b1b3b18}.server-block{position:absolute;width:68px;height:105px;border:1px solid #fff8;border-radius:10px;background:linear-gradient(110deg,#2563eb,#143b9e);box-shadow:9px 9px 0 #12378b,18px 28px 18px #0b1b3b20;z-index:2;top:65px;left:53px;animation:serverfloat 7s ease-in-out infinite}.server-1{left:132px;top:43px;background:linear-gradient(110deg,#1cd9c6,#079f98);box-shadow:9px 9px 0 #087b82,18px 28px 18px #0b1b3b20;animation-delay:-2s}.server-2{left:210px;top:21px;animation-delay:-4s}.server-block i{display:block;height:4px;width:40px;background:#c8e1ff95;margin:14px 10px 0;border-radius:3px}.server-block span{position:absolute;right:12px;bottom:9px;color:#fff9;font-size:9px}.cloud-center{position:absolute;right:12px;top:0;color:var(--blue);z-index:4}.cloud-center .icon{width:42px;height:42px;filter:drop-shadow(0 7px 5px #1e5bf020)}.cloud-halo{position:absolute;inset:0;border:1px dashed #1e5bf020;border-radius:50%;transform:rotate(-25deg)}@keyframes serverfloat{0%,100%{translate:0 0}50%{translate:0 -7px}}
.data-viz{position:relative;width:350px;height:220px}.data-hub{position:absolute;left:125px;top:65px;width:90px;height:90px;display:grid;place-items:center;background:linear-gradient(135deg,#1e5bf0,#4488ff);border:1px solid #c8dcff;border-radius:20px;box-shadow:8px 10px 0 #123fba,15px 26px 25px #1e5bf025;transform:rotate(-15deg) skewY(5deg);z-index:3;animation:serverfloat 7s ease-in-out infinite}.data-hub .icon{width:42px;height:42px;stroke:white}.data-node{position:absolute;width:47px;height:38px;background:#e6f1ff;border:1px solid #bad0ee;border-radius:6px;box-shadow:4px 5px 0 #c6d7ef;display:grid;place-items:center;font-size:10px;color:var(--blue);z-index:2}.dn-0{left:10px;top:28px}.dn-1{left:2px;bottom:35px}.dn-2{left:75px;top:1px}.dn-3{right:5px;top:21px}.data-result{position:absolute;right:8px;bottom:18px;width:85px;height:70px;border:1px solid #71d5c8;border-radius:9px;background:linear-gradient(120deg,#c9fff4,#8ce4d8);box-shadow:5px 6px 0 #6ac6b7;z-index:3;padding:10px}.data-result .icon{width:30px;height:30px;color:#08746e}.data-result i{display:inline-block;width:8px;background:#1d8a81;margin:3px;height:9px}.data-result i:nth-last-child(2){height:16px}.data-result i:last-child{height:22px}.data-flow{position:absolute;height:1px;background:#9dbce8;transform-origin:left;z-index:1}.flow-1{left:48px;top:55px;width:130px;rotate:28deg}.flow-2{left:45px;top:162px;width:145px;rotate:-23deg}.flow-3{left:195px;top:128px;width:110px;rotate:22deg}.data-flow::after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:var(--teal);top:-2px;animation:datatravel 4s linear infinite;box-shadow:0 0 7px #10d3c450}.flow-2::after{animation-delay:-1s}.flow-3::after{animation-delay:-2s}@keyframes datatravel{0%{left:0;opacity:0}15%,80%{opacity:1}100%{left:100%;opacity:0}}
.software-viz{width:350px;height:230px;position:relative}.app-window{position:absolute;top:25px;left:18px;width:200px;height:145px;border:1px solid #a8c3ef;border-radius:12px;background:linear-gradient(140deg,#fff,#e0edff);box-shadow:8px 11px 0 #b5cdf0,12px 30px 22px #0b1b3b16;transform:rotateY(-20deg) rotateZ(-7deg);z-index:3;animation:serverfloat 7s ease-in-out infinite}.window-bar{border-bottom:1px solid #c9d9f1;height:25px;padding:5px 9px}.window-bar i{display:inline-block;width:4px;height:4px;margin:3px;background:#98b4dd;border-radius:50%}.app-lines{padding:14px}.app-lines i{display:block;height:4px;background:#aac3ec;border-radius:3px;width:75px;margin:10px 0}.app-lines i:nth-child(2){width:53px;background:#75d7cb}.app-window>.icon{position:absolute;right:20px;top:62px;width:43px;height:43px;color:var(--blue)}.api-hub{position:absolute;left:198px;top:137px;background:var(--blue);color:white;border:1px solid #7da5ff;box-shadow:4px 6px 0 #123b9c;width:60px;height:48px;display:grid;place-items:center;border-radius:10px;font-size:11px;letter-spacing:.08em;z-index:4}.app-module{position:absolute;right:3px;top:30px;width:58px;height:54px;background:#bff4eb;border:1px solid #a0e0d3;border-radius:10px;box-shadow:5px 7px 0 #7fc4b7;display:grid;place-items:center;color:#0a8179;z-index:2}.mod-2{top:157px;right:8px;background:#eef3ff;border-color:#c1d2ee;box-shadow:5px 7px 0 #b2c9ed;color:var(--blue)}.app-wire{position:absolute;height:1px;width:90px;background:#91b2df;left:225px;top:151px;transform:rotate(-57deg);transform-origin:left}.wire-2{top:172px;transform:rotate(20deg);width:85px}.app-wire::after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--teal);top:-2px;animation:datatravel 4s linear infinite}.solution-index{border-top:1px solid var(--line)}.solution-index>a{display:grid;grid-template-columns:50px 1fr 25px;gap:22px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line)}.solution-index h3{font-size:23px}.solution-index p{font-size:13px;margin-top:8px}.solution-index>a:hover h3{color:var(--blue)}.solution-index>a>.icon{color:var(--blue)}@media(max-width:600px){.service-visual{height:250px;margin-top:20px}.cloud-platform,.data-viz,.software-viz{scale:.78}.solution-index>a{grid-template-columns:30px 1fr 20px;gap:12px}.solution-index h3{font-size:19px}}

/* Allow fixed-size illustration internals to shrink inside grid tracks. */
.split>*{min-width:0}.service-visual{min-width:0;width:100%;grid-template-columns:minmax(0,1fr)}

/* V3: industry-specific content with three parallel technology workstreams. */
.industry-intro{padding:32px 0}.industry-sector h2{font-size:clamp(28px,3vw,38px);line-height:1.35;margin-bottom:28px}.industry-sector .button{margin-top:12px}.industry-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px}.industry-links>a{padding:24px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:18px;font-weight:500}.industry-links>a:hover{color:var(--blue)}.industry-links .icon{width:20px;flex-shrink:0}.desktop-nav{gap:22px}.desktop-nav a{white-space:nowrap}@media(max-width:1100px){.desktop-nav{gap:14px}}@media(max-width:600px){.industry-links{grid-template-columns:1fr}.industry-links>a{font-size:18px;padding:20px 0}.industry-intro{padding:24px 0}.industry-sector h2{font-size:28px}}

/* V4: compact company details, visible company navigation, restored activity gallery. */
.profile-card{max-width:1040px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 30px;box-shadow:0 16px 48px #0b1b3b06;position:relative;overflow:hidden}.profile-card:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--teal))}.profile-heading{display:flex;align-items:center;gap:16px;margin-bottom:20px}.profile-heading .eyebrow{margin-bottom:3px;font-size:10px}.profile-heading>div>p:last-child{font-size:14px}.profile-card .legal-table>div{grid-template-columns:170px minmax(0,1fr);gap:22px;padding:13px 0;font-size:13px;line-height:1.65}.profile-card .legal-table dd{overflow-wrap:anywhere}.address-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:7px}.address-card{display:flex;align-items:flex-start;gap:12px;padding:17px;background:#f5f8fd;border-radius:10px}.address-card>.icon{color:var(--blue);flex:0 0 20px;width:20px;margin-top:2px}.address-card h3{font-size:13px;margin-bottom:8px}.address-card p{font-size:12px;line-height:1.8}.company-menu{position:relative;font-size:12px}.company-menu summary{list-style:none;cursor:pointer;display:flex;gap:7px;align-items:center;white-space:nowrap;color:var(--muted);padding:20px 0}.company-menu summary::-webkit-details-marker{display:none}.nav-chevron{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.4}.company-menu[open] summary{color:var(--blue)}.company-menu[open] .nav-chevron{transform:rotate(180deg)}.company-dropdown{position:absolute;top:calc(100% - 2px);left:-24px;width:240px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 45px #0b1b3b16}.desktop-nav .company-dropdown a{display:block;padding:12px;font-size:12px;border-radius:6px;white-space:normal}.desktop-nav .company-dropdown a:hover{background:#f0f5ff}.company-menu summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.mobile-nav .mobile-group{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:15px 0 0}.mobile-nav{max-height:calc(100dvh - 70px);overflow-y:auto}.brand-showcase{min-height:280px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at 75% 25%,#d9f8f3,transparent 65%),linear-gradient(135deg,#f6f9ff,#e8effb);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:24px}.brand-showcase img{max-width:100%;height:auto}.brand-showcase>p{font-size:13px;letter-spacing:.06em;color:var(--navy)}.brand-swatches{display:flex;gap:7px}.brand-swatches i{display:block;width:28px;height:6px;border-radius:3px;background:var(--navy)}.brand-swatches i:nth-child(2){background:var(--blue)}.brand-swatches i:nth-child(3){background:var(--teal)}.activity-empty{border-left:3px solid var(--teal);padding:12px 0 12px 27px}.activity-empty>.icon{color:var(--blue);width:32px;height:32px;margin-bottom:18px}.activity-empty h3{font-size:22px;line-height:1.4;margin-bottom:14px}.activity-empty p{font-size:14px}.activity-pathways{display:grid;gap:15px}.activity-pathways a{display:flex;gap:20px;align-items:center;padding:24px;border:1px solid var(--line);border-radius:12px;box-shadow:7px 7px 0 #e8effb;background:#fff;font-size:18px;color:var(--navy);transition:transform .2s}.activity-pathways a:hover{transform:translateY(-3px)}.activity-pathways .icon{color:var(--blue)}.sitemap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.sitemap-grid h2{font-size:24px;margin-bottom:24px}.sitemap-grid a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}.sitemap-grid .icon{flex:0 0 18px;width:18px}@media(max-width:1100px){.company-menu{font-size:11px}}@media(max-width:900px){.sitemap-grid{grid-template-columns:1fr;gap:38px}}@media(max-width:600px){.profile-card{padding:21px 18px;border-radius:13px}.profile-card .legal-table>div{grid-template-columns:1fr;gap:5px;padding:12px 0;font-size:12px}.address-grid{grid-template-columns:1fr;gap:12px;padding-top:16px}.profile-heading{gap:12px}.profile-heading>img{width:38px;height:38px}.address-card{padding:14px}.brand-showcase{padding:30px 24px;min-height:240px}.brand-showcase>p{font-size:11px}.activity-empty{padding-left:20px}.activity-pathways a{font-size:16px}}

/* V5: independent publisher feed and INNOVIX editorial content. */
.news-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.news-filters{display:flex;gap:8px;flex-wrap:wrap}.news-filters button,.news-refresh{font:inherit;font-size:12px;padding:10px 16px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--navy);cursor:pointer}.news-filters button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.news-refresh{color:var(--blue)}.news-refresh:disabled{opacity:.6;cursor:wait}.news-filters button:focus-visible,.news-refresh:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.news-status{font-size:11px;color:var(--muted);margin:19px 0 8px}.news-count{font-size:11px;color:var(--muted);margin-bottom:26px}.feed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.feed-card{border:1px solid var(--line);border-radius:13px;padding:24px;display:flex;flex-direction:column;min-width:0;background:#fff;position:relative;transition:box-shadow .2s,transform .2s}.feed-card:hover{box-shadow:0 12px 30px #0b1b3b0c;transform:translateY(-3px)}.feed-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;color:var(--muted);margin-bottom:20px}.feed-category{color:var(--blue);font-size:9px;letter-spacing:.04em}.feed-publisher{font-size:10px;color:var(--muted);margin-bottom:8px}.feed-card h3{font-size:20px;line-height:1.5;margin-bottom:14px;overflow-wrap:anywhere}.feed-card h3 a:hover{color:var(--blue)}.feed-summary{font-size:13px;line-height:1.8;margin-bottom:24px}.feed-original{font-size:12px;font-weight:500;color:var(--blue);margin-top:auto;align-self:flex-start}.news-more-wrap{text-align:center;margin-top:30px}.news-attribution{border-top:1px solid var(--line);padding-top:26px;margin-top:38px}.news-attribution>p:last-child{font-size:11px;max-width:90ch;margin-top:15px}.news-sources{display:flex;gap:8px;flex-wrap:wrap}.source-chip{font-size:10px;border:1px solid var(--line);padding:6px 10px;border-radius:5px}.source-chip:hover{border-color:var(--blue);color:var(--blue)}.feed-empty{grid-column:1/-1;padding:30px;background:#f5f8fd;border-radius:10px;font-size:14px}@media(max-width:900px){.feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}@media(max-width:600px){.feed-grid{grid-template-columns:1fr}.feed-card{padding:22px}.feed-card h3{font-size:20px}.news-filters button{font-size:11px;padding:10px 12px}.news-toolbar{gap:14px}.news-status{line-height:1.8}.news-attribution{margin-top:28px}}

/* V6: a restrained type hierarchy and varied, content-led illustration. */
h1,h2,h3{letter-spacing:-.022em}h1{font-size:38px;line-height:1.3}h2,.section-heading h2{font-size:30px;line-height:1.35}h3{font-size:21px;line-height:1.45;font-weight:500}.hero h1{font-size:48px;line-height:1.22;letter-spacing:-.025em}.subhero{padding:42px 0 46px}.subhero h1{font-size:38px;line-height:1.3;max-width:34ch;letter-spacing:-.022em}.subhero .lead{margin-top:20px;font-size:16px;line-height:1.8}.breadcrumb{margin-bottom:24px;font-size:12px}.intro{font-size:16px;line-height:1.8;margin-top:20px}.service-overview h2,.industry-sector h2{font-size:29px;line-height:1.4}.cta h2{font-size:30px}.featured-insight h3{font-size:25px}.service-link h3{font-size:22px}.solution-index h3{font-size:22px}.concept-art{margin:26px 0 0;min-width:0}.concept-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:15px;border:1px solid #e2e9f2;background:#f7f9fc}.concept-art figcaption,.solution-art figcaption{font-size:10px;color:var(--muted);margin-top:10px;line-height:1.6}.solution-art{position:relative;margin:26px 0 0;padding:26px 24px 18px;border:1px solid var(--line);border-radius:16px;min-width:0;overflow:hidden;background:linear-gradient(145deg,#f8fbff,#edf5fb)}.solution-art-heading{font-size:13px;color:var(--navy);font-weight:500;margin-bottom:24px;line-height:1.6}.delivery-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;position:relative}.delivery-track:before{content:'';position:absolute;height:2px;left:0;right:0;top:50%;background:#b5cdef}.delivery-track>div{position:relative;min-height:112px;border:1px solid #ccdbee;border-radius:10px;background:#fff;box-shadow:0 6px 0 #d8e6f7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:10px 5px;text-align:center}.delivery-track .icon{width:24px;color:var(--blue)}.delivery-track span{font-size:11px}.delivery-track i{position:absolute;right:7px;top:6px;font-size:8px;color:var(--muted);font-style:normal}.platform-foundation{margin-top:23px;padding:16px;background:var(--navy);border-radius:9px;color:#fff;display:flex;flex-direction:column;gap:6px;font-size:12px}.platform-foundation>span:last-child{color:#aeeae7;font-size:10px}.integration-map{height:238px;position:relative;width:100%;max-width:420px;margin:auto}.integration-lines{position:absolute;inset:0;width:100%;height:100%;stroke:#9bbada;stroke-width:1.5;fill:none;z-index:0}.integration-spoke{position:absolute;border:1px solid #bcd2ec;padding:12px 8px;border-radius:9px;background:#fff;z-index:2;font-size:11px;min-width:76px;text-align:center}.s1{left:0;top:26px}.s2{right:0;top:26px}.s3{left:0;bottom:20px}.s4{right:0;bottom:20px}.integration-core{position:absolute;top:50%;left:50%;translate:-50% -50%;width:82px;height:82px;background:var(--blue);box-shadow:0 0 0 12px #1e5bf00a;border-radius:50%;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#fff;font-size:10px}.integration-core .icon{width:26px;height:26px}.art-roadmap{background:linear-gradient(150deg,#f5fbfa,#edf3fb)}.roadmap-visual{display:flex;align-items:flex-end;gap:12px;min-height:195px;padding-bottom:8px}.roadmap-visual>div{flex:1;min-width:0;min-height:calc(76px + var(--stage)*29px);border-radius:10px 10px 4px 4px;background:linear-gradient(150deg,#326feb,#1445a7);box-shadow:4px 5px 0 #c7d8ef;display:flex;flex-direction:column;justify-content:space-between;padding:15px 8px;color:#fff}.roadmap-visual>div:nth-child(3){background:linear-gradient(150deg,#25bcb1,#137f81)}.roadmap-visual>div:nth-child(4){background:var(--navy)}.roadmap-visual>div>span{font-size:10px;color:#ffffffa0}.roadmap-visual strong{font-size:11px;font-weight:500;overflow-wrap:anywhere}@media(max-width:900px){.hero h1{font-size:44px}.concept-art{max-width:650px}}@media(max-width:600px){h1,.subhero h1{font-size:29px;line-height:1.35}.hero h1{font-size:33px;line-height:1.25}h2,.section-heading h2{font-size:25px;line-height:1.4}.service-overview h2,.industry-sector h2{font-size:25px}.subhero{padding:30px 0 34px}.subhero .lead,.intro{font-size:15px;line-height:1.8}.subhero .lead{margin-top:18px}.breadcrumb{font-size:12px;margin-bottom:20px}.service-link h3,.solution-index h3{font-size:20px}.cta h2{font-size:25px}.featured-insight h3{font-size:23px}.concept-art img{border-radius:11px}.solution-art{padding:20px 16px 16px}.delivery-track{gap:8px}.delivery-track span{font-size:10px}.roadmap-visual{gap:8px}.roadmap-visual strong{font-size:10px}.roadmap-visual>div{padding:12px 6px}}

/* V7: captions removed from service concept images; keep figure spacing intentional. */
.concept-art{margin-bottom:0}.service-overview>.concept-art+.deliverable{margin-top:24px}.service-overview>.eyebrow{overflow-wrap:anywhere}

/* ===== INNOVIX refinements (footer + legal typography + page transition) ===== */
/* -- Footer: về navy thương hiệu, nhẹ hơn, điểm nhấn teal -- */
footer{background:var(--navy);color:#b9c6de;padding:14px 0 12px}
.footer-grid h3{color:#fff}
.footer-grid a{color:#b9c6de}
.footer-grid a:hover{color:var(--teal)}
.footer-bottom{margin-top:14px;border-top:1px solid #ffffff22;color:#8fa0bf;padding-top:15px}
.footer-bottom a:hover{color:var(--teal)}
/* -- Eyebrow (tiêu đề con) nâng nhẹ cho đỡ nhỏ -- */
.eyebrow{font-size:12px}
/* -- Typography trang Chính sách & Điều khoản: nén bậc, chuyên nghiệp hơn -- */
.article{max-width:768px}
.article .eyebrow{font-size:12px;margin-bottom:22px}
.article h2{font-size:19px;line-height:1.45;font-weight:600;color:var(--navy);letter-spacing:-.01em;margin:34px 0 12px;padding-top:4px}
.article h2+p{margin-top:0}
.article p{font-size:16px;line-height:1.75;color:var(--text);margin-bottom:18px}
/* đoạn mở đầu (ngay sau eyebrow) thành dòng dẫn nổi bật */
.article .eyebrow+p{font-size:17px;line-height:1.7;color:var(--navy);padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid var(--line)}
@media(max-width:600px){
  .article h2{font-size:18px;margin:28px 0 10px}
  .article p{font-size:15px;line-height:1.7}
  .article .eyebrow+p{font-size:16px}
  footer{padding:11px 0 10px}
}
/* -- Hiệu ứng chuyển trang: fade + trượt lên nhẹ khi vào trang -- */
@media(prefers-reduced-motion:no-preference){
  #main{animation:ixPageIn .55s var(--ease) both}
  .subhero h1{animation:ixRise .6s .04s var(--ease) both}
  .subhero .lead{animation:ixRise .6s .12s var(--ease) both}
}
@keyframes ixPageIn{from{opacity:0}to{opacity:1}}
@keyframes ixRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* Footer col-1: bỏ dòng mô tả dưới slogan; slogan in nghiêng, canh giữa theo logo */
.footer-grid>div:first-child p:not(.tagline){display:none}
.footer-grid .tagline{font-style:italic;text-align:center;width:200px;margin-top:14px}
