html:not(.jyd-ready) body>*{visibility:hidden}
html:not(.jyd-ready) #jyd-boot-screen{visibility:visible!important}
#jyd-boot-screen{position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;background:#fff;color:#16283b;font:600 13px/1.5 Arial,sans-serif;letter-spacing:.08em}
#jyd-boot-screen span{opacity:0;transition:opacity .2s ease}
#jyd-boot-screen.is-visible span{opacity:.62}
:root{--bg:#f5f7fa;--panel:#ffffff;--line:#e3e9f0;--cyan:#1668d8;--blue:#1256c9;--text:#16283b;--muted:#5d7387;--max:1200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
/* 移动端兜底：禁止页面横向滚动（内容溢出不产生横向滚动条） */
html,body{overflow-x:hidden;max-width:100%}
/* 桌面宽屏放大 10%（原 zoom:1.1 效果）；手机端不放大，避免横向溢出 */
@media(min-width:701px){html{zoom:1.1}}
body{margin:0;background:var(--bg);color:var(--text);font:15px "Microsoft YaHei","PingFang SC",Arial,sans-serif}
button,input,select,textarea{font:inherit}
button,a{cursor:pointer}
a{color:inherit;text-decoration:none}
.wrap{width:min(var(--max),calc(100% - 44px));margin:auto}
/* 深蓝导航栏 + 浅色内容：白色品牌图标在深蓝导航上清晰可见；顶部半透明，滚动后变不透明（nav-scroll.js 控制 --nav-bg） */
header{position:sticky;top:0;z-index:20;height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding-left:max(8px,calc((100vw - 1180px)/3));padding-right:max(14px,calc((100vw - 1180px)/3));border-bottom:1px solid #1d4a8a;background:var(--nav-bg,linear-gradient(135deg,rgba(14,61,125,.40),rgba(18,86,201,.40)));backdrop-filter:blur(15px);box-shadow:0 4px 20px rgba(14,61,125,.2)}
.brand{display:flex;align-items:center;gap:8px;white-space:nowrap;padding-left:2px}
.brand>b{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:0;background:none}
.brand span strong,.brand span small{display:block}
.brand span strong{font-family:Georgia,'Times New Roman',serif;font-size:15px;color:#fff;font-weight:700;letter-spacing:.01em;line-height:1.2;white-space:nowrap}
.brand span small{position:relative;display:flex;justify-content:space-between;width:100%;margin-top:6px;color:#eaf2fb;font-size:10px;letter-spacing:0;line-height:1.2;white-space:nowrap}
.brand span small span:first-child{flex:0 0 auto}
.navbox{display:grid;grid-template-columns:0 minmax(0,max-content) 0;align-items:center;justify-content:flex-start;gap:4px;min-width:0;margin-right:6px;margin-left:-40px}
.navbox nav{justify-content:flex-start}
.navbox>button{width:18px;height:29px;padding:0;border:1px solid #3d6cb8;border-radius:4px;background:rgba(255,255,255,.06);color:#c8dcf2;opacity:0;pointer-events:none;transition:opacity .25s ease}
.navbox.overflow .navbox>button{opacity:1;pointer-events:auto}
nav{display:flex;gap:clamp(14px,1.6vw,24px);overflow:auto;scrollbar-width:none;white-space:nowrap}
nav a{position:relative;padding:24px 0 21px;color:#cfe0f4;font-size:12px;font-weight:700;text-shadow:0 1px 3px rgba(10,40,80,.55)}
nav a:hover,nav a.active{color:#fff}
nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:2px;background:#7fc0ff;transition:.25s}
nav a.active:after{left:0;right:0}
.langs{display:flex;padding:3px;border:1px solid #3d6cb8;border-radius:6px;background:rgba(255,255,255,.06);flex:none}
.langs button{height:26px;min-width:36px;border:0;border-radius:4px;background:none;color:#c8dcf2;font-size:10px;font-weight:800}
.langs button.active{background:#7fc0ff;color:#0e3d7d}
.langs{position:relative;display:block;padding:0;border:0;background:none}
.langs .language-trigger{display:grid;width:36px;min-width:36px;height:32px;place-items:center;border:1px solid rgba(127,192,255,.62);border-radius:6px;background:rgba(4,30,58,.38);color:#eaf4ff;transition:background .18s ease,border-color .18s ease}
.langs .language-trigger:hover,.langs.open .language-trigger{background:rgba(18,86,201,.78);border-color:#7fc0ff}
.langs .language-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.langs .language-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:100;display:none;min-width:116px;padding:4px;border:1px solid rgba(127,192,255,.42);border-radius:6px;background:#0b315b;box-shadow:0 12px 28px rgba(2,20,42,.32)}
.langs.open .language-menu{display:grid;gap:2px}
.langs .language-menu button{display:flex;width:100%;min-width:0;height:34px;padding:0 10px;align-items:center;border:0;border-radius:4px;background:transparent;color:#dcecff;font-size:11px;font-weight:800;text-align:left}
.langs .language-menu button:hover{background:rgba(127,192,255,.2);color:#fff}.langs .language-menu button.active,.langs .language-menu button.active:hover{background:#7fc0ff;color:#0e3d7d}
@media(min-width:901px){header{overflow:visible!important}}
/* 2026-09-19 七轮：页面上下内边距再收 30/34 → 22/26 */
.page{display:none;min-height:calc(100vh - 66px);padding:22px 0 26px}
.page.active{display:block;animation:in .48s ease both}
@keyframes in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* 2026-09-19 七轮：hero 最小高度 440→380，配合容器压扁进一步减上下留白 */
/* 2026-09-19 九轮：业主试过「图标左置、文字右置」，看完结论「还是放右边好看」，
   已按业主决定撤回 —— 保持「文字左 / 图标右」。
   那次试验只加了两行（一是把列宽镜像是 .95fr 在前，二是给 .orbit 加 order:-1），
   现已全部删除，版式与试验前完全一致。若日后还要再试，把那两行加回即可。 */
.hero{min-height:380px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:60px}
.eyebrow{margin:0 0 12px;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
h1{max-width:650px;margin:0 0 18px;font-size:clamp(36px,4.2vw,56px);line-height:1.12;letter-spacing:-.01em;color:#16283b}
h2{margin:0 0 14px;font-size:clamp(28px,3.4vw,43px);line-height:1.2;color:#16283b}
h3,p{margin-top:0}
.lead,.heading>p:not(.eyebrow),.detail p,.detail li,.steps p,.manifesto p,.cards p,.process p{color:var(--muted);line-height:1.8}
.lead{max-width:700px}
/* 首屏引导段落：继承 body 的 15px（桌面）太小，独立放大到 17px（+13%）；
   用 .hero 限定作用域，避免影响「关于我们」等内页的 .lead。 */
.hero .lead{font-size:19px}
.actions{display:flex;gap:10px;margin-top:25px}
.actions button,.detail button{min-height:41px;padding:0 20px;border:0;border-radius:5px;background:var(--blue);color:#fff;font-size:12px;font-weight:800;transition:.2s}
.actions button:hover,.detail button:hover{background:var(--cyan)}
.actions .outline{border:1px solid var(--line);background:#fff;color:#16283b}
.actions .outline:hover{background:#eef3f8;border-color:var(--cyan)}
.stats{display:flex;gap:20px;margin-top:40px}
.stats span{display:grid;gap:3px}
.stats b{font-size:24px;color:#16283b}
/* 说明小字 9→11px（+22%）；配合 .stats gap 34→20px，保证三组在手机上仍是单行、不挤爆 */
.stats small{color:#7a8da0;font-size:13px}
/* 首页圆形标识：深蓝底衬托白色图标。
   第二轮（业主授权"连轨道一起调"）：标签 9→11px 后，零重叠所需环半径随字号变大，
   故圆盘/轨道整体放大 420→620px（40vw → 43vw，保留 min 兜底）。
   620 是「HINGES & RIM-LOCKS」@11px 环行零重叠所需直径：φ618 实测 96 个相位 0 重叠、
   最差相位最小间隙 9.3px；而 1440 视口下 38vw 只有 547，实测还有 7.3% 相位轻微压住，
   所以比例取 43vw（1440→619px，1600 以上受 min 上限 620 约束）。 */
/* 2026-09-19 六轮：业主「整个大圈在小一点与文字对齐」。
   原来可见的大圈是 .orbit 容器自身的 border（半径 0.5），而标签环在 0.36，
   两者差 0.14×容器 ≈ 73px，外圈看着空出一截。
   处置：去掉容器 border（容器只作定位与裁切），大圈改由 .orbit-arcs::before
   绘制于 80%（半径 0.40），紧贴标签环外侧 —— 外圈变小且与文字对齐。
   注：容器 background 保持 #fff，与页面同色，不再产生额外可见轮廓。 */
/* 2026-09-19 七轮修正：先前把容器压成 aspect-ratio:1/0.84 来减上下留白，
   但 border-radius:50% 在非正方形上会变成椭圆 —— 大圈、内圈全跟着变椭圆，业主反馈「丑爆了」。
   改为：**容器保持正方形**（圆仍是圆），改用负外边距把布局高度收掉 76px。
   这样标签环（本来就是椭圆）与结构圆环（真正的圆）都不变形，
   而容器上下那圈本身为空的区域不再占布局高度。 */
/* 2026-09-19 十二轮：业主决定回退背景改动，恢复「上白下灰」原始两段式。
   轨道容器底色一并还原为 #fff（此前为配合渐变临时改成 transparent）。
   视觉上两者无差别（hero 本就是白底），还原只为与线上状态一致。 */
.orbit{position:relative;display:grid;place-items:center;width:min(520px,38vw);aspect-ratio:1;margin:-38px auto;border-radius:50%;background:#fff}
/* 第四轮（2026-09-19 晚，业主看本地预览后追加）：「字全大一点、圆盘再缩小、减少上下留白」
   蓝盘 31%→24%（520×0.24≈125px）；标签 13→15px（见 orbit-3d.css）；容器 540→520。
   几何校验（英文档为最严）：相邻标签最小中心距 ≈ 1.10×0.42×520 ≈ 240px，
   最长标签「HINGES & RIM-LOCKS」15px 约 182px，余量约 58px，零重叠成立。 */
/* 2026-09-19 八轮：业主「外圈、文字不变，内圈和公司图标都可以再大点」
   蓝盘 34% → 40%（半径 88px → 104px）。
   可行性：标签环水平半径 0.36（=187px），蓝盘半径 104px，中间仍留 83px 空隙，
   不会碰到标签文字，外圈与文字完全不受影响。
   注意：蓝盘不能无限放大 —— 标签环在 0.36，蓝盘半径超过约 0.28 就会贴上标签。 */
/* 2026-09-19 十轮：尺寸改由工作台参数驱动（见 site-motion.js 的 ORBIT_DEFS）。
   --orbit-disc / --orbit-logo 由 site-motion.js 写到 <html> 上，这里用 var(..., 默认值) 兜底：
   即使脚本没跑到（或 API 挂了），也仍然用默认值正常显示，不会变成 0 尺寸。
   默认值就是业主调定的：蓝盘 40%、标志 130%。 */
.orbit>.orbit-disc{position:relative;display:grid;place-content:center;width:var(--orbit-disc,40%);height:var(--orbit-disc,40%);text-align:center;border:1px solid #3d6cb8;border-radius:50%;background:linear-gradient(135deg,#0e3d7d,#1256c9);box-shadow:0 10px 30px rgba(14,61,125,.3);overflow:hidden}
/* 标志容器：填满蓝盘，内部居中；SVG 与兜底 PNG 都放这里 */
.orbit-logo{display:grid;place-items:center;width:100%;height:100%}
/* 2026-09-19 八轮：业主「公司图标也可以再大点」——124% → 130%。
   安全上限说明：viewBox 已加留白（标志占 62% 宽），124% 时标志约占盘径 77%；
   130% 时约 81%。蓝盘是圆形裁切，标志是 1.55:1 的长条 ——
   当标志宽达盘径的 85% 时，两端会被圆周切掉。130% 留了约 4% 余量，是安全上限，
   再往上就会切掉 J 和 D 的边角。 */
/* 2026-09-19 十轮：标志宽度也改由工作台参数驱动，--orbit-logo 由 site-motion.js 下发。
   130% 是业主调定的默认值，也是安全上限附近（再大 J 和 D 的边角会被圆盘圆周切掉）。 */
.orbit-logo svg{display:block;width:var(--orbit-logo,130%);height:auto}
.orbit-logo #jydLetters{transform-box:fill-box;transform-origin:center}
.orbit-logo #jydCheck{transform-box:fill-box;transform-origin:center}
.orbit-mark{width:68%;margin:0 auto;object-fit:contain}
.orbit>.orbit-disc small{color:#c8dcf2;font-size:12px;letter-spacing:.14em}
/* 窄屏：品牌盘仅 φ175，盘内小字相应收一点，避免撑破圆盘 */
@media(max-width:560px){.orbit>.orbit-disc small{font-size:8px}}
.orbit em{position:absolute;padding:6px 9px;border:1px solid var(--line);border-radius:4px;background:#fff;color:#5d7387;font-size:8px;font-style:normal}
.orbit em:nth-of-type(1){top:8%;left:17%}
.orbit em:nth-of-type(2){top:29%;right:1%}
.orbit em:nth-of-type(3){bottom:27%;left:0}
.orbit em:nth-of-type(4){right:17%;bottom:5%}
.heading{max-width:830px;margin-bottom:32px}
.heading.compact{margin-bottom:20px}
.heading.center{text-align:center;margin-left:auto;margin-right:auto}
.aboutgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:25px}
.steps{display:grid;gap:9px}
.steps article{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:18px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
.steps article>b{color:var(--cyan);font-size:11px}
.steps h3{margin-bottom:6px;font-size:16px;color:#16283b}
.steps p{margin:0}
.manifesto{padding:28px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
.manifesto>b{display:block;color:var(--cyan);font-size:55px;line-height:.8}
.manifesto p{font-size:17px;color:#2c4258}
.manifesto small{display:block;margin-top:22px;color:#7a8da0;font-size:9px}
.productarea{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:20px;align-items:start}
.productgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.product{min-height:121px;padding:12px 6px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:#16283b;transition:.22s}
.product:hover,.product.active{transform:translateY(-3px);border-color:var(--cyan);background:#eef4fb}
.product i{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 10px;border:1px solid #c9d6e2;border-radius:11px;background:#f0f5fa;color:var(--cyan);font-size:22px;font-style:normal;overflow:hidden}
.product i img{width:100%;height:100%;object-fit:cover}
.product b{font-size:11px;color:#16283b}
.detail{position:sticky;top:86px;min-height:378px;padding:22px;border:1px solid #c9d6e2;border-radius:7px;background:var(--panel)}
.detail h3{margin-bottom:9px;font-size:24px;color:#16283b}
.detail ul{min-height:115px;margin:15px 0 21px;padding-left:17px;color:var(--muted)}
.detail button{width:100%}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.process article{min-height:198px;padding:19px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
.process article>b{display:block;margin-bottom:43px;color:var(--cyan);font-size:25px}
.process h3{font-size:14px;color:#16283b}
.process p{margin:0}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}
.chips span{padding:7px 13px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#5d7387;font-size:10px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.cards article{padding:22px;border:1px solid var(--line);border-radius:7px;background:var(--panel);transition:.22s}
.cards article:hover{transform:translateY(-3px);border-color:var(--cyan)}
.cards small{display:block;margin-bottom:25px;color:var(--cyan);font-size:8px;letter-spacing:.1em}
.cards h3{font-size:16px;color:#16283b}
.cards button{padding:0;border:0;background:none;color:var(--cyan);font-size:10px}
.stories article>b{display:block;margin-bottom:29px;color:#1668d833;font-size:34px}
.contactgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:47px;align-items:start}
.contactgrid .heading>a{display:inline-block;margin-top:20px;color:var(--cyan);font-weight:800}
form{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:23px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
form label{display:grid;gap:6px}
form label:nth-child(3),form label:nth-child(4),form>button,form>small{grid-column:1/-1}
form label span{color:#2c4258;font-size:10px;font-weight:800}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:5px;outline:0;background:#f8fafc;color:#16283b}
input,select{height:38px;padding:0 10px}
textarea{min-height:100px;padding:10px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);background:#fff}
form>button{height:41px;border:0;border-radius:5px;background:var(--blue);color:#fff;font-weight:800;transition:.2s}
form>button:hover{background:var(--cyan)}
form>small{color:#7a8da0;font-size:9px}
footer{border-top:1px solid var(--line);color:#7a8da0;font-size:9px;background:#fff}
footer .wrap{display:flex;justify-content:space-between;padding:17px 0}
footer i{font-style:normal}
@media(max-width:980px){.brand span{display:none}.hero{grid-template-columns:1fr;min-height:auto}
/* 平板：单列后圆盘可以用到 580px（实测 9.5px 标签零重叠、出圆仅 1.7%、最差 5.9px） */
.orbit{width:min(580px,86vw)}.aboutgrid,.contactgrid{grid-template-columns:1fr}.productgrid{grid-template-columns:repeat(3,1fr)}.process{grid-template-columns:repeat(2,1fr)}}
@media(max-width:690px){header{height:auto;min-height:60px;padding:7px 12px;gap:7px}.brand>b{width:34px;height:34px;font-size:11px}.navbox{grid-template-columns:17px minmax(0,1fr) 17px}.navbox>button{width:17px}.langs button{min-width:30px}nav{gap:18px}nav a{padding:15px 0;font-size:11px}.wrap{width:calc(100% - 28px)}.page{padding:41px 0 50px}.hero{min-height:calc(100vh - 105px);gap:25px}h1{font-size:33px}.stats{gap:18px}/* 手机：圆盘放大到 φ370（390 视口实测 φ366；7px 标签 + 3px 5px 内边距时按 144 相位实测零重叠） */.orbit{width:min(370px,95vw)}.productarea{grid-template-columns:1fr}.productgrid{grid-template-columns:repeat(2,1fr)}.product{min-height:108px}.detail{position:static;min-height:auto}.process,.cards{grid-template-columns:1fr}form{grid-template-columns:1fr}form label{grid-column:1/-1}}
.company-sections{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:16px}
.company-sections>article{padding:23px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
.company-sections small{color:var(--cyan);font-size:9px;letter-spacing:.14em}
.company-sections h3{margin:9px 0 19px;font-size:19px;color:#16283b}
.history{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.history span,.culture span{display:grid;gap:6px;padding:12px;border-left:1px solid #1668d866}
.history b,.culture b{font-size:11px;color:#2c4258}
.history i,.culture i{color:var(--muted);font-size:10px;line-height:1.7;font-style:normal}
.culture{display:grid;gap:8px}
.product small{display:block;margin-top:8px;color:#7a8da0;font-size:8px}
@media(max-width:980px){.company-sections{grid-template-columns:1fr}}
@media(max-width:690px){.history{grid-template-columns:1fr}}
