/* V3: readable typography, supplied school marks and restrained interaction. */
body{font-size:17px;line-height:1.85}
button,input,textarea,select{font-family:"Microsoft YaHei",sans-serif}
h2{font-size:clamp(32px,3.2vw,42px)}
.eyebrow{font-size:13px;letter-spacing:1.5px}
.section-intro{font-size:17px;max-width:400px;line-height:1.9}
.brand small{font-size:10px;letter-spacing:1px}
.nav-row nav{font-size:15px;gap:25px}
.nav-row nav a{position:relative;white-space:nowrap;transition:color .2s}
.nav-row nav a:not(.nav-contact):after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-row nav a[aria-current="location"]{color:var(--teal)}
.nav-row nav a[aria-current="location"]:after{transform:scaleX(1)}
.site-header:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#35838d;transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.hero-desc{font-size:19px;line-height:1.95}
.button,.text-link{font-size:16px}
.hero-bottom{font-size:13px}
.hero-side{font-size:12px}
.about-copy p{font-size:17px;line-height:1.95}
.about-copy .lead{font-size:22px}
.stats{grid-template-columns:.85fr 1.2fr 1.3fr 1.2fr;gap:24px}
.stats strong{font-size:45px}
.stats strong span{font-size:17px}
.stats p{font-size:15px;line-height:1.75}
.stat-note{font-size:15px;padding-left:23px;line-height:1.8}
.data-reference{font-size:18px;display:inline-block;padding:0 7px;vertical-align:super;line-height:1.5;color:var(--teal)}
.data-reference:hover{background:#eaf3f3}
.pill{font-size:13px;letter-spacing:.5px}
.service-panel h3{font-size:29px}
.service-panel>p{font-size:17px;line-height:1.85}
.service-question{font-size:19px!important}
.journey{font-size:15px;gap:12px}
.product-list{font-size:16px;gap:11px}
.underlink{font-size:15px;padding-top:20px}
.converge,.converge b{font-size:14px}
.consulting p{font-size:16px;line-height:1.9}
.consulting-products h4{font-size:21px}
.consulting-products span{font-size:13px}
.model-caption,.diagram-note{font-size:12px}
.model-dimensions h3{font-size:23px}
.model-dimensions h3 small{font-size:11px}
.model-dimensions p{font-size:16px;line-height:1.95}
.tags span{font-size:13px}
.model-bottom{grid-template-columns:1fr 2fr;gap:24px 40px}
.model-bottom strong{font-size:21px}
.model-bottom>p:nth-child(2){font-size:16px}
.model-bottom a{font-size:15px;grid-column:2;justify-self:start}
.research-platform{gap:54px}
.research-platform-copy .eyebrow{font-size:13px}
.research-platform-copy>p{font-size:17px;line-height:1.9}
.research-platform-copy .platform-lead{font-size:19px}
.capability-list b{font-size:17px}
.capability-list p{font-size:15px;line-height:1.8}
.capability-list li>span{font-size:13px}
.visual-id,.visual-id>span:last-child{font-size:11px;letter-spacing:.4px}
.art-caption{font-size:15px}
.intelligence-heading>p{font-size:16px}
.intelligence-copy>p{font-size:17px;line-height:1.95}
.deployment-state{font-size:13px!important}
.deployment-state>span{box-shadow:none;width:6px;height:6px}
.engine-name{font-size:14px}
.model-visual-label{gap:8px 16px}
.model-visual-label>span,.model-visual-label>b,.model-visual-label>small{font-size:12px;letter-spacing:.5px}
.model-visual-label>small{flex-basis:100%}
.domain-scope{font-size:13px;gap:18px}
.ai-workbench{grid-template-columns:.75fr 1.05fr 2fr;gap:28px}
.ai-workbench-title .eyebrow{font-size:13px}
.ai-workbench-title>p{font-size:20px}
.ai-tabs button{font-size:16px;padding:12px 15px;transition:background .2s,color .2s,border-color .2s}
.ai-panels{min-height:210px}
.ai-panels h4{font-size:20px}
.ai-panels p{font-size:16px;line-height:1.9}
.ai-panels span{font-size:13px}
.ai-panels [role="tabpanel"]:not([hidden]){animation:panel-in .24s ease-out}
@keyframes panel-in{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.expert-principle .eyebrow{font-size:12px}
.expert-principle h3{font-size:25px}
.expert-stages span{font-size:12px}
.expert-stages h4{font-size:18px}
.expert-stages p{font-size:14px;line-height:1.8}
.advantage-grid h3{font-size:22px}
.advantage-grid p{font-size:16px;line-height:1.95}
.advantage-grid article>span{font-size:12px}
.scenarios .eyebrow{font-size:14px}
.scenarios a{font-size:15px}
.scenarios>div{gap:15px 25px}
.project-metric p{font-size:17px}.project-metric small{font-size:14px}
.partner-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}
.partner{min-width:0;padding:25px 10px 20px;border:1px solid #e4ebed;gap:19px;font-size:14px;line-height:1.75;background:#fff;transition:transform .25s,border-color .25s,box-shadow .25s}
.partner img{width:88px;height:88px;object-fit:contain}
.partner>span{min-height:49px;display:flex;align-items:center;justify-content:center}
.partner-more{background:#f7f9f9;border-style:dashed;color:#62808a}
.more-dots{height:88px;display:flex;align-items:center;justify-content:center;font-size:43px;letter-spacing:8px;padding-left:8px;line-height:1}
footer .eyebrow{font-size:12px}
footer h2{font-size:38px}
footer p:not(.eyebrow){font-size:16px}
address h3{font-size:21px}
dl{font-size:16px;grid-template-columns:48px minmax(0,1fr)}
dd{overflow-wrap:anywhere}
.footer-bottom{font-size:13px;gap:20px;flex-wrap:wrap}
.footer-bottom .police-record{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto}
.footer-bottom .police-record img{display:inline-block;width:20px;height:22px;object-fit:contain;flex:0 0 auto;vertical-align:middle}
.police-record:hover{color:#e0eff2}
footer .data-note{font-size:13px!important;line-height:1.9;color:#a6bec9;margin:0 0 22px;max-width:980px;scroll-margin-top:110px}
.data-note:target{color:#e0eff2;background:#ffffff08;outline:1px solid #ffffff20;outline-offset:10px}
.service-panel,.advantage-grid article{transition:transform .3s,box-shadow .3s}
.underlink span,.button span,.text-link span{display:inline-block;transition:transform .25s}
.reveal-ready{transition:opacity .55s ease-out,transform .55s ease-out}
.reveal-pending{opacity:0;transform:translateY(16px)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .service-panel:hover{transform:translateY(-4px);box-shadow:0 14px 34px #173e4910}
  .partner:hover{transform:translateY(-3px);border-color:#adc6cc;box-shadow:0 6px 18px #163e4708}
  .advantage-grid article:hover{transform:translateY(-3px)}
  .underlink:hover span,.button:hover span,.text-link:hover span{transform:translate(3px,-2px)}
}
@media(max-width:1100px){
  .nav-row nav{gap:18px;font-size:14px}
  .stats{grid-template-columns:1fr 1.2fr 1.3fr}
  .stat-note{padding-left:0}
  .ai-workbench{grid-template-columns:.8fr 1.1fr 2fr;gap:20px}
  .ai-tabs button{font-size:15px;padding-left:10px;padding-right:10px}
  .research-platform{gap:36px}
  .visual-id{flex-direction:column;gap:5px}
  .partner-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .expert-principle{grid-template-columns:1fr 2.4fr;gap:32px}
}
@media(max-width:1000px){
  .site-header{height:76px}
  .menu-toggle{display:flex;gap:12px;align-items:center;background:none;border:1px solid var(--line);padding:7px 13px;font-size:15px;color:var(--ink)}
  .nav-row nav{display:none;position:absolute;top:76px;left:0;right:0;background:white;padding:18px 28px;box-shadow:0 14px 20px #102c3d13;flex-direction:column;align-items:stretch;gap:0}
  .nav-row nav.open{display:flex}
  .nav-row nav a{padding:13px 5px;font-size:16px;border-bottom:1px solid var(--line)}
  .nav-row nav a:not(.nav-contact):after{left:5px;right:auto;width:32px;bottom:7px}
  .nav-contact{border-left:0}
}
@media(max-width:900px){
  .research-platform,.education{grid-template-columns:1fr;gap:30px;margin-top:40px}
  .education .platform-art,.education .research-platform-copy{grid-column:auto;grid-row:auto}
  .platform-art{min-height:0;aspect-ratio:1.55;width:100%}
  .visual-id{flex-direction:row}
  .research-platform-copy h3 br{display:none}
  .research-platform-copy{padding:0}
  .intelligence-layout{grid-template-columns:1fr;gap:32px}
  .intelligence-visual{min-height:0;aspect-ratio:1.5}
  .intelligence-copy{max-width:none}
  .intelligence-copy h3 br{display:none}
  .expert-principle{grid-template-columns:1fr;gap:28px}
  .expert-principle h3 br{display:none}
}
@media(max-width:800px){
  .hero .eyebrow{font-size:12px}
  .hero-desc{font-size:17px}
  .hero-bottom{font-size:12px}
  .about-copy .lead{font-size:20px}
  .section-intro{max-width:100%;font-size:16px}
  .stats strong{font-size:37px}
  .stats strong span{font-size:15px}
  .stats p{font-size:14px}
  .service-panel{padding:28px}
  .service-panel h3{font-size:27px}
  .service-panel>p,.about-copy p{font-size:16px}
  .service-question{font-size:18px!important}
  .intelligence-heading>p{font-size:15px}
  .ai-workbench{grid-template-columns:1fr 2fr;gap:25px}
  .ai-workbench-title{grid-column:1/-1}
  .partner-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}
@media(max-width:740px){
  .service-matrix{grid-template-columns:1fr;gap:24px}
  .service-panel>p{max-width:none}
  .advantage-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  body{font-size:16px}
  .hero h1{font-size:clamp(28px,8.75vw,40px)}
  .hero-actions{gap:22px}
  .hero .button,.hero .text-link{font-size:15px}
  .hero-bottom{font-size:11px;letter-spacing:0;gap:14px}
  .hero-desc{font-size:16px;letter-spacing:0;line-height:1.95}
  .section-head h2,h2{font-size:30px;letter-spacing:-.6px}
  .eyebrow{font-size:12px;letter-spacing:1px}
  .stats{grid-template-columns:1fr 1fr;gap:26px 14px}
  .stats>div:nth-child(3){grid-column:1/-1}
  .stat-note{font-size:14px;grid-column:1/-1}
  .stats strong{font-size:38px}
  .journey{font-size:14px;gap:6px;padding:12px;justify-content:space-between}
  .service-panel{padding:25px 23px}
  .product-list{font-size:16px}
  .converge{font-size:12px;gap:7px}
  .converge b{font-size:13px;letter-spacing:0}
  .consulting{padding:27px 23px}
  .consulting h3{font-size:28px}
  .consulting h3 br,.about h2 br{display:block}
  .consulting-products h4{font-size:19px}
  .model-dimensions h3{font-size:22px}
  .model-dimensions h3 small{font-size:10px;display:block;margin:5px 0 0;letter-spacing:.5px}
  .model-caption{font-size:11px;letter-spacing:0}
  .model-bottom{grid-template-columns:1fr}
  .model-bottom a{grid-column:1}
  .research-platform-copy>p,.intelligence-copy>p{font-size:16px}
  .research-platform-copy h3{font-size:29px}
  .research-platform-copy .platform-lead{font-size:18px}
  .platform-art,.intelligence-visual{min-height:0;aspect-ratio:1.13}
  .visual-id{font-size:10px;letter-spacing:0;flex-direction:column;gap:2px}
  .visual-id>span:last-child{font-size:11px}
  .art-caption{font-size:14px;letter-spacing:0}
  .engine-name{font-size:13px}
  .model-visual-label>b{font-size:12px}
  .model-visual-label>small{font-size:11px}
  .intelligence-copy h3{font-size:28px}
  .intelligence-copy h3 br{display:block}
  .ai-workbench{grid-template-columns:1fr;gap:23px}
  .ai-workbench-title{grid-column:auto}
  .ai-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .ai-tabs button{font-size:14px;padding:10px 3px;white-space:normal;text-align:center}
  .ai-panels{min-height:250px}
  .expert-principle h3{font-size:25px}
  .expert-principle h3 br{display:block}
  .expert-stages{grid-template-columns:1fr 1fr}
  .expert-stages h4{font-size:18px}
  .expert-stages p{font-size:14px}
  .advantage-grid{gap:30px 22px}
  .advantage-grid h3{font-size:21px}
  .advantage-grid article>span{font-size:11px}
  .partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .partner{padding:23px 10px 18px;font-size:14px;gap:15px}
  .partner img{width:82px;height:82px}
  .more-dots{height:82px}
  footer h2{font-size:32px}
  .footer-bottom{font-size:12px;gap:15px}
  dl{font-size:15px;gap:13px 10px;grid-template-columns:35px minmax(0,1fr)}
}
@media(max-width:370px){
  .advantage-grid{grid-template-columns:1fr}
  .service-panel,.consulting{padding-left:20px;padding-right:20px}
  .journey{font-size:13px;padding:10px 8px}
  .model-dimensions article{gap:15px}
  .ai-tabs button{font-size:13px}
  .partner{padding-left:8px;padding-right:8px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition:none!important;animation:none!important}
  .reveal-pending{opacity:1;transform:none}
}
