/* 图标渲染：纯 CSS mask，不依赖 JS / DOM 顺序。由 _gen/icons_css.py 生成 */
:root{
--ico-web:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4' width='19' height='16' rx='2.2'/%3E%3Cpath d='M2.5 8.6h19'/%3E%3Ccircle cx='5.6' cy='6.3' r='.75' fill='%23000' stroke='none'/%3E%3Ccircle cx='8.1' cy='6.3' r='.75' fill='%23000' stroke='none'/%3E%3Ccircle cx='10.6' cy='6.3' r='.75' fill='%23000' stroke='none'/%3E%3Cpath d='M6 12.4h6.4M6 16h9.6'/%3E%3C/svg%3E");
--ico-globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cellipse cx='12' cy='12' rx='4' ry='9'/%3E%3Cpath d='M5.2 5.6c1.9 1.9 4.2 2.9 6.8 2.9s4.9-1 6.8-2.9M5.2 18.4c1.9-1.9 4.2-2.9 6.8-2.9s4.9 1 6.8 2.9'/%3E%3C/svg%3E");
--ico-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.4' cy='10.4' r='6.6'/%3E%3Cpath d='M15.4 15.4 21 21'/%3E%3Cpath d='M7.4 12.2l2-2.4 1.9 1.5 2.3-3.1'/%3E%3C/svg%3E");
--ico-ai:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6l1.9 4.9 4.9 1.9-4.9 1.9-1.9 4.9-1.9-4.9L5.2 9.4l4.9-1.9z'/%3E%3Cpath d='M17.8 15.6l.9 2.3 2.3.9-2.3.9-.9 2.3-.9-2.3-2.3-.9 2.3-.9z'/%3E%3Cpath d='M5 16.4l.6 1.6 1.6.6-1.6.6L5 20.8l-.6-1.6-1.6-.6 1.6-.6z'/%3E%3C/svg%3E");
--ico-code:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.4 7.6 3.4 12l5 4.4M15.6 7.6l5 4.4-5 4.4'/%3E%3Cpath d='M13.6 4.2 10.4 19.8'/%3E%3C/svg%3E");
--ico-case-web:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.6' y='3.6' width='18.8' height='14' rx='2'/%3E%3Cpath d='M2.6 7.8h18.8M8 21h8M12 17.6V21'/%3E%3Cpath d='M6.2 11.6h5.2M6.2 14.6h8'/%3E%3C/svg%3E");
--ico-case-out:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.6 3.4h7v7M20.6 3.4l-8.4 8.4'/%3E%3Cpath d='M18.4 14v5.2a1.8 1.8 0 0 1-1.8 1.8H4.8A1.8 1.8 0 0 1 3 19.2V7.4a1.8 1.8 0 0 1 1.8-1.8H10'/%3E%3C/svg%3E");
--ico-case-geo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.4V14M9.4 19.4V9.2M14.8 19.4v-6.4M20.2 19.4V4.6'/%3E%3Cpath d='M4 19.4h16.2'/%3E%3C/svg%3E");
--ico-cat-site:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.6' y='3.4' width='18.8' height='13.4' rx='2.2'/%3E%3Cpath d='M2.6 7.6h18.8'/%3E%3Cpath d='M6.4 11.4h5.6M6.4 14.4h8.6'/%3E%3Cpath d='M8.8 20.6h6.4M12 16.8v3.8'/%3E%3C/svg%3E");
--ico-cat-mkt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.4 10v4a1.6 1.6 0 0 0 1.6 1.6h2.2L13 19.4V4.6L7.2 8.4H5A1.6 1.6 0 0 0 3.4 10z'/%3E%3Cpath d='M16.4 8.6a4.8 4.8 0 0 1 0 6.8M19.2 5.8a8.8 8.8 0 0 1 0 12.4'/%3E%3C/svg%3E");
--ico-cat-kit:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6 20 6v6c0 4.6-3.3 8.3-8 9.4-4.7-1.1-8-4.8-8-9.4V6z'/%3E%3Cpath d='M8.9 12.1l2.1 2.1 4.2-4.3'/%3E%3C/svg%3E");
--ico-cat-dev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3.4' width='18' height='17.2' rx='2.2'/%3E%3Cpath d='M3 8.2h18M7.6 12.2 5.4 14.4l2.2 2.2M12.4 12.2l2.2 2.2-2.2 2.2M15.2 12.6h3.2'/%3E%3C/svg%3E");
--ico-tel:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 2.5a1.6 1.6 0 0 1 1.5 1l1 2.4a1.6 1.6 0 0 1-.4 1.8l-1.3 1.1a13 13 0 0 0 6.8 6.8l1.1-1.3a1.6 1.6 0 0 1 1.8-.4l2.4 1a1.6 1.6 0 0 1 1 1.5v2.4a1.7 1.7 0 0 1-1.9 1.7A17.6 17.6 0 0 1 4.9 4.4 1.7 1.7 0 0 1 6.6 2.5z' fill='%23000'/%3E%3C/svg%3E");
--ico-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2'/%3E%3Cpath d='M3.4 6.4 12 12.6l8.6-6.2'/%3E%3C/svg%3E");
--ico-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M12.5 5.5 19 12l-6.5 6.5'/%3E%3C/svg%3E");
--ico-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V4M5 11l7-7 7 7'/%3E%3C/svg%3E");
--ico-qr:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h2.6v2.6H14zM18.4 14H21v2.6h-2.6zM14 18.4h2.6V21H14zM17.6 17.6H21V21h-3.4z' fill='%23000'/%3E%3C/svg%3E");
--ico-medal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='14.6' r='5.4'/%3E%3Cpath d='M8.4 9.6 6.2 2.8h11.6l-2.2 6.8'/%3E%3Cpath d='M12 12.4l.9 1.9 2.1.3-1.5 1.5.4 2.1-1.9-1-1.9 1 .4-2.1-1.5-1.5 2.1-.3z'/%3E%3C/svg%3E");
--ico-seo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.6' cy='10.6' r='6.8'/%3E%3Cpath d='M15.6 15.6 21 21'/%3E%3Cpath d='M7.6 12.6V8.8M10.6 12.6V6.6M13.6 12.6v-2.4'/%3E%3C/svg%3E");
--ico-local:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21.4s7-6.2 7-11.2a7 7 0 1 0-14 0c0 5 7 11.2 7 11.2z'/%3E%3Ccircle cx='12' cy='10.2' r='2.6'/%3E%3C/svg%3E");
--ico-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.6 20.4V4.6M3.6 20.4h17'/%3E%3Cpath d='M7.4 20.4v-6.2M11.6 20.4V9.8M15.8 20.4v-4.2M20 20.4V7.6'/%3E%3Cpath d='M6 8.4l4.4-3 4 2.4L20 3.6'/%3E%3C/svg%3E");
--ico-shop:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.2 7.6h11.6l1.4 11.6a1.6 1.6 0 0 1-1.6 1.8H6.4a1.6 1.6 0 0 1-1.6-1.8z'/%3E%3Cpath d='M9 7.6V5.8a3 3 0 0 1 6 0v1.8'/%3E%3C/svg%3E");
--ico-cloud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.2 19.4h10a4.4 4.4 0 0 0 .6-8.8 6.4 6.4 0 0 0-12.3-1.4A4.1 4.1 0 0 0 7.2 19.4z'/%3E%3Cpath d='M12 12.4v4.6M9.8 14.6 12 12.4l2.2 2.2'/%3E%3C/svg%3E");
--ico-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6 20 6v6c0 4.6-3.3 8.3-8 9.4-4.7-1.1-8-4.8-8-9.4V6z'/%3E%3Cpath d='M8.9 12.1l2.1 2.1 4.2-4.3'/%3E%3C/svg%3E");
--ico-team:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9.4' cy='8.4' r='3.4'/%3E%3Cpath d='M3 20.2a6.4 6.4 0 0 1 12.8 0'/%3E%3Cpath d='M16.4 5.6a3.4 3.4 0 0 1 0 6.6M18 13.6a6.4 6.4 0 0 1 3 5.4'/%3E%3C/svg%3E");
--ico-growth:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.6 20.4h16.8'/%3E%3Cpath d='M4.4 16.2 9.6 11l3.6 3.2 6.4-6.6'/%3E%3Cpath d='M15.4 7.6h4.2v4.2'/%3E%3C/svg%3E");
--ico-rocket:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.6c3.4 2 5.2 5.6 5.2 9.6L15.4 15H8.6L6.8 12.2c0-4 1.8-7.6 5.2-9.6z'/%3E%3Ccircle cx='12' cy='9.6' r='1.8'/%3E%3Cpath d='M8.6 15.8 6.4 21l3.4-1.8h4.4l3.4 1.8-2.2-5.2'/%3E%3C/svg%3E");
--ico-support:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.4 14.6v-2.8a7.6 7.6 0 0 1 15.2 0v2.8'/%3E%3Cpath d='M4.4 13.4h1.8a1.4 1.4 0 0 1 1.4 1.4v3.4a1.4 1.4 0 0 1-1.4 1.4H4.4zM19.6 13.4h-1.8a1.4 1.4 0 0 0-1.4 1.4v3.4a1.4 1.4 0 0 0 1.4 1.4h1.8z'/%3E%3C/svg%3E");
}

.ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;line-height:0;}
.ico::before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;}
.svc-ico .ico{width:30px;height:30px;}
.why-ico .ico{width:26px;height:26px;}
.about-ai-ico .ico{width:26px;height:26px;}
.mhd-tel .ico{width:18px;height:18px;}
.side-btn .ico{width:21px;height:21px;}
.side-btn .ico{margin-bottom:0;}
.ico-web::before{-webkit-mask-image:var(--ico-web);mask-image:var(--ico-web);}
.ico-globe::before{-webkit-mask-image:var(--ico-globe);mask-image:var(--ico-globe);}
.ico-search::before{-webkit-mask-image:var(--ico-search);mask-image:var(--ico-search);}
.ico-ai::before{-webkit-mask-image:var(--ico-ai);mask-image:var(--ico-ai);}
.ico-code::before{-webkit-mask-image:var(--ico-code);mask-image:var(--ico-code);}
.ico-case-web::before{-webkit-mask-image:var(--ico-case-web);mask-image:var(--ico-case-web);}
.ico-case-out::before{-webkit-mask-image:var(--ico-case-out);mask-image:var(--ico-case-out);}
.ico-case-geo::before{-webkit-mask-image:var(--ico-case-geo);mask-image:var(--ico-case-geo);}
.ico-cat-site::before{-webkit-mask-image:var(--ico-cat-site);mask-image:var(--ico-cat-site);}
.ico-cat-mkt::before{-webkit-mask-image:var(--ico-cat-mkt);mask-image:var(--ico-cat-mkt);}
.ico-cat-kit::before{-webkit-mask-image:var(--ico-cat-kit);mask-image:var(--ico-cat-kit);}
.ico-cat-dev::before{-webkit-mask-image:var(--ico-cat-dev);mask-image:var(--ico-cat-dev);}
.ico-tel::before{-webkit-mask-image:var(--ico-tel);mask-image:var(--ico-tel);}
.ico-mail::before{-webkit-mask-image:var(--ico-mail);mask-image:var(--ico-mail);}
.ico-arrow::before{-webkit-mask-image:var(--ico-arrow);mask-image:var(--ico-arrow);}
.ico-up::before{-webkit-mask-image:var(--ico-up);mask-image:var(--ico-up);}
.ico-qr::before{-webkit-mask-image:var(--ico-qr);mask-image:var(--ico-qr);}
.ico-medal::before{-webkit-mask-image:var(--ico-medal);mask-image:var(--ico-medal);}
.ico-seo::before{-webkit-mask-image:var(--ico-seo);mask-image:var(--ico-seo);}
.ico-local::before{-webkit-mask-image:var(--ico-local);mask-image:var(--ico-local);}
.ico-chart::before{-webkit-mask-image:var(--ico-chart);mask-image:var(--ico-chart);}
.ico-shop::before{-webkit-mask-image:var(--ico-shop);mask-image:var(--ico-shop);}
.ico-cloud::before{-webkit-mask-image:var(--ico-cloud);mask-image:var(--ico-cloud);}
.ico-shield::before{-webkit-mask-image:var(--ico-shield);mask-image:var(--ico-shield);}
.ico-team::before{-webkit-mask-image:var(--ico-team);mask-image:var(--ico-team);}
.ico-growth::before{-webkit-mask-image:var(--ico-growth);mask-image:var(--ico-growth);}
.ico-rocket::before{-webkit-mask-image:var(--ico-rocket);mask-image:var(--ico-rocket);}
.ico-support::before{-webkit-mask-image:var(--ico-support);mask-image:var(--ico-support);}
