@import url("../../style.css?v=20260814-4") layer(site-shell);
@import url("../../jy-css/style-jymodule.css") layer(site-shell);
@import url("../../jy-css/style-jychange.css?v=20261008-nav-edges") layer(site-shell);
@import url("../font-icons.css") layer(site-shell);

.visualization-page { --viz-blue:#0875ff; --viz-ink:#102039; --viz-muted:#5d6f85; --viz-line:#e0e9f3; --viz-surface:#fff; --viz-soft:#f5f8fc; --viz-demo:#edf5ff; --viz-night:#091f38; --viz-tint:var(--viz-soft); margin:0; color:var(--viz-ink); background:#fff; font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif; font-size:16px; line-height:1.75; -webkit-font-smoothing:antialiased; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
.viz-root,.viz-root * { box-sizing:border-box; }
.viz-root h1,.viz-root h2,.viz-root h3,.viz-root h4 { font-family:inherit; color:inherit; font-weight:700; margin:0; line-height:1.4; }
.viz-root h1 span,.viz-root h2 span { color:inherit; }
.viz-root p { margin:0; }
.viz-root button,.viz-root input,.viz-root select { font:inherit; }
.viz-root button,.viz-root a { -webkit-tap-highlight-color:transparent; }
.viz-root button { cursor:pointer; }
.viz-root a { text-decoration:none; }
.viz-root img { display:block; max-width:100%; }
.viz-root [hidden] { display:none !important; }
.viz-root :focus-visible { outline:3px solid #33a9ff; outline-offset:5px; }
.viz-root i[class^="bi-"] { font-style:normal; display:inline-block; line-height:1; }
.viz-shell { width:min(1440px,calc(100% - 96px)); margin-inline:auto; }
.viz-skip { position:absolute; left:16px; top:-100px; z-index:10000; background:#fff; padding:12px 20px; }
.viz-skip:focus { top:10px; }
.viz-sr { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.visualization-page #header { margin:0; height:80px; z-index:1000; }
.visualization-page #header-wrap { background:#fff; border-bottom:1px solid #edf1f6; }
.visualization-page #header .container { width:100%; max-width:1440px; padding-inline:48px; }
.visualization-page #header .header-row { min-height:80px; }
.visualization-page #logo img { width:190px !important; height:auto !important; padding:12px 0 !important; }
.visualization-page #header .menu-link { padding-top:28px; padding-bottom:28px; font-size:15px; }
.visualization-page #header .header-wrap-clone { height:80px; }
.visualization-page #jy-footer .jy-contact-section > .container,.visualization-page #jy-footer .jy-site-footer > .container { width:min(1440px,calc(100% - 64px)); max-width:none; padding-inline:0; }
.viz-eyebrow { font-size:15px; color:var(--viz-blue); font-weight:600; letter-spacing:.04em; margin-bottom:14px !important; }
.viz-hero { position:relative; height:820px; overflow:hidden; color:white; background:#081f3a; }
.viz-hero-art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 54%; }
.viz-hero-heading { position:relative; z-index:2; padding-top:58px; text-align:center; }
.viz-hero-heading .viz-eyebrow { color:#a9d5ff; font-size:14px; margin-bottom:10px !important; }
.viz-hero h1 { font-size:clamp(32px,3.6vw,56px); line-height:1.3; letter-spacing:.015em; text-shadow:0 2px 16px #071b32; }
.viz-hero-subtitle { font-size:20px; margin-top:16px !important; text-shadow:0 2px 8px #071b32; }
.viz-actions { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:28px; }
.viz-button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:16px; padding:12px 26px; border:1px solid var(--viz-blue); border-radius:6px; background:var(--viz-blue); color:#fff; font-size:15px; font-weight:600; line-height:1.5; transition:background .2s,box-shadow .2s,transform .2s; }
.viz-button:hover { color:white; background:#0061df; box-shadow:0 8px 24px #0072ff30; transform:translateY(-2px); }
.viz-button:disabled { cursor:wait; opacity:.7; transform:none; }
.viz-button-ghost { background:#091e35a8; border-color:#739ac3; }
.viz-button-ghost:hover { background:#183858; }
.viz-button-outline { color:var(--viz-blue); background:#fff; border-color:#bdd6f5; }
.viz-button-outline:hover { color:var(--viz-blue); background:#f0f7ff; }
.viz-scene-panel { position:absolute; inset:0; }
.viz-glass { position:absolute; border:1px solid #4d8aba8a; border-radius:8px; background:#092943dc; backdrop-filter:blur(12px); box-shadow:0 8px 30px #00000012; padding:20px; }
.viz-glass h2 { font-size:16px; font-weight:600; }
.viz-status { top:37%; left:max(3.5%,calc((100% - 1320px)/2)); width:206px; }
.viz-status dl { margin:16px 0 0; }
.viz-status dl > div { display:flex; justify-content:space-between; align-items:center; margin:10px 0; font-size:14px; }
.viz-status dt { display:flex; align-items:center; gap:12px; font-weight:400; }
.viz-status dd { margin:0; font-variant-numeric:tabular-nums; }
.viz-status i { color:#7ea4ca; }
.viz-green { color:#50dc8f !important; }.viz-amber { color:#ffd16b !important; }
.viz-trend { right:max(112px,calc((100% - 1220px)/2)); top:28%; width:310px; }
.viz-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.viz-panel-heading h2 { font-size:14px; }.viz-panel-heading small { font-size:11px; color:#c0d9ed; }
.viz-root select { border:1px solid #4f718f; background:#183951; color:#e2efff; border-radius:4px; padding:3px 7px; font-size:12px; }
.viz-mini-chart { position:relative; height:160px; margin-top:18px; }
.viz-hotspot { position:absolute; top:var(--y); left:var(--x); transform:translate(-50%,-50%); border:1px solid #7cd0ff; border-radius:6px; color:#fff; background:#0c3c61df; display:flex; gap:9px; align-items:center; padding:9px 14px; font-size:13px; box-shadow:0 0 20px #0783f43d; transition:background .2s; }
.viz-hotspot i { color:#78c7ff; font-size:20px; }
.viz-hotspot:hover,.viz-hotspot.is-active { background:#0566cce8; }
.viz-building-detail { position:absolute; top:61%; left:50%; transform:translateX(-50%); font-size:12px; background:#092943d9; border:1px solid #65a3d966; border-radius:4px; padding:6px 12px; white-space:nowrap; }
.viz-scene-nav { position:absolute; z-index:3; bottom:0; left:50%; transform:translateX(-50%); width:680px; background:#071e34dc; backdrop-filter:blur(12px); border:1px solid #86b8e44d; border-bottom:0; border-radius:16px 16px 0 0; padding:12px 26px 10px; }
.viz-scene-tabs { display:grid; grid-template-columns:repeat(3,1fr); }
.viz-scene-tabs button { display:flex; justify-content:center; align-items:center; gap:14px; padding:15px 8px; border:0; border-bottom:2px solid transparent; color:#c0d2e5; background:none; font-size:17px; font-weight:600; }
.viz-scene-tabs button i { font-size:26px; }
.viz-scene-tabs button[aria-selected="true"] { color:white; border-color:#48b6ff; }.viz-scene-tabs button[aria-selected="true"] i { color:#28a0ff; }
.viz-scene-tabs button:hover { color:#fff; background:#39709924; }
.viz-scene-nav > p { text-align:center; font-size:12px; color:#bed3e9; margin-top:8px; }
.viz-demo-label { position:absolute; right:40px; bottom:27px; color:#d2e0ed; font-size:12px; }
.viz-dashboard { inset:270px max(7%,calc((100% - 1240px)/2)) 128px; padding:24px 32px; background:#0a2945f5; border:1px solid #477dab; border-radius:8px; z-index:2; }
.viz-dashboard-head { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.viz-dashboard-head h2 { font-size:22px; }.viz-dashboard-head .viz-eyebrow { font-size:12px; color:#82c7ff; }.viz-dashboard-head label { font-size:13px; }
.viz-dashboard-head select { margin-left:12px; padding:7px; }
.viz-dashboard-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:36px; margin-top:18px; }
.viz-metrics { display:flex; gap:48px; font-size:12px; color:#bed3e9; }.viz-metrics strong { display:block; font-size:26px; color:white; }.viz-metrics small { font-size:12px; font-weight:400; }
.viz-data-chart { height:160px; position:relative; margin-top:8px; }
.viz-device-list h3 { font-size:15px; margin-bottom:12px; }.viz-device-list table { width:100%; border-collapse:collapse; font-size:12px; }.viz-device-list th { text-align:left; font-weight:400; color:#a4c0df; }.viz-device-list td,.viz-device-list th { padding:10px 5px; border-bottom:1px solid #32516d; }.viz-device-list td:nth-child(2) { color:#5adeab; }
.viz-hero-product { inset:270px max(7%,calc((100% - 1240px)/2)) 128px; background:#eff7ff; color:var(--viz-ink); border-radius:8px; display:grid; grid-template-columns:1.7fr 1fr; align-items:center; padding:25px; gap:20px; z-index:2; }.viz-hero-product img { width:100%; }.viz-hero-product h2 { font-size:24px; }.viz-hero-product p { color:var(--viz-muted); font-size:14px; margin:15px 0 20px; }
.viz-hero:not([data-scene="twin"]) .viz-hero-art { opacity:.4; }
.viz-section { padding:88px 0; }
.viz-section-heading { text-align:center; margin-bottom:48px; }
.viz-section h2 { font-size:34px; line-height:1.4; letter-spacing:.005em; }
.viz-section-heading > p:last-child { margin-top:16px; color:var(--viz-muted); font-size:16px; }
.viz-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.viz-service-grid article { padding:0 42px; border-right:1px solid var(--viz-line); display:flex; flex-direction:column; align-items:flex-start; }
.viz-service-grid article:first-child { padding-left:0; }.viz-service-grid article:last-child { border:0; padding-right:0; }
.viz-icon { font-size:38px; color:var(--viz-blue); margin-bottom:18px; }
.viz-root h3 { font-size:22px; }.viz-service-grid p { color:var(--viz-muted); font-size:15px; margin:12px 0 20px; line-height:1.85; }
.viz-text-button { display:inline-flex; align-items:center; gap:12px; border:0; background:none; padding:0; color:var(--viz-blue); font-size:15px; font-weight:600; line-height:1.6; margin-top:auto; }
.viz-text-button:hover { color:#0056cc; }.viz-text-button i { transition:transform .2s; }.viz-text-button:hover i { transform:translateX(4px); }
.viz-services { padding:64px 0; }
.viz-services .viz-section-heading > .viz-eyebrow { display:none; }
.viz-product { background:var(--viz-demo); padding:40px 0 24px; }
.viz-product-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:30px; align-items:center; }
.viz-product-copy h2 { font-size:29px; }.viz-product-copy h2 br { display:none; }.viz-product-copy > p:not(.viz-eyebrow) { color:var(--viz-muted); margin-top:18px; font-size:15px; }
.viz-feature-line { display:flex; align-items:center; gap:18px; margin-top:28px; }.viz-feature-line > i { font-size:30px; color:var(--viz-blue); }.viz-feature-line h3 { font-size:18px; }.viz-feature-line p { font-size:13px; color:var(--viz-muted); margin-top:5px; }
.viz-product-view { min-width:0; }.viz-part-tabs { display:flex; align-items:center; justify-content:space-around; gap:8px; }
.viz-part-tabs button { background:none; border:0; border-bottom:2px solid transparent; font-size:14px; padding:7px 12px; color:var(--viz-ink); }.viz-part-tabs button:hover,.viz-part-tabs button[aria-pressed="true"] { color:var(--viz-blue); border-color:var(--viz-blue); }
  .viz-pump-stage { overflow:hidden; position:relative; width:100%; height:300px; }.viz-pump-stage img { width:100%; height:100%; object-fit:cover; }
  .viz-pump-stage canvas { width:100%; height:100%; display:block; }
.viz-product-controls { display:flex; justify-content:space-between; align-items:center; border-top:1px solid #dce8f4; padding-top:14px; }
.viz-product-controls button { border:1px solid transparent; background:none; color:var(--viz-muted); padding:7px 12px; font-size:13px; border-radius:4px; }.viz-product-controls button[aria-pressed="true"] { background:#fff; color:var(--viz-blue); border-color:#d4e7ff; }.viz-product-controls button:hover { color:var(--viz-blue); }
  .viz-part-description { min-height:28px; font-size:13px; color:var(--viz-muted); margin-top:14px !important; }
  .viz-pump-actions { display:flex; align-items:center; gap:6px; }
  @media(min-width:768px) { .viz-product-view { padding-right:76px; } }
  .viz-product-controls #pump-play { display:inline-flex; align-items:center; gap:5px; background:var(--viz-blue); color:#fff; border-color:var(--viz-blue); min-width:100px; justify-content:center; }
  .viz-product-controls #pump-play:hover { background:#0567e3; }
  .viz-product-controls #pump-play:disabled { opacity:.5; cursor:default; }
  .viz-product-controls button { min-height:40px; white-space:nowrap; }
  .viz-pump-timeline { display:flex; align-items:center; gap:14px; margin-top:15px; color:var(--viz-muted); font-size:12px; }
  .viz-pump-timeline label { margin:0; white-space:nowrap; font-weight:400; }
  .viz-pump-timeline input { flex:1; min-width:0; height:24px; margin:0; padding:0; accent-color:var(--viz-blue); cursor:pointer; }
  .viz-pump-timeline output { width:38px; text-align:right; font-variant-numeric:tabular-nums; }
.viz-industry-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }.viz-industry img { width:100%; height:auto; aspect-ratio:2.4/1; object-fit:cover; border-radius:5px; margin-bottom:20px; }.viz-industry h3 { font-size:21px; }.viz-industry p { margin-top:12px; color:var(--viz-muted); font-size:15px; }.viz-industry > span { display:block; color:#3c638e; font-size:13px; margin-top:16px; }
.viz-industry-more { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; border-top:1px solid var(--viz-line); margin-top:40px; padding-top:32px; }.viz-industry-more article { display:flex; gap:16px; }.viz-industry-more i { color:var(--viz-blue); font-size:26px; margin-top:3px; }.viz-industry-more h3 { font-size:19px; }.viz-industry-more p { font-size:14px; color:var(--viz-muted); margin-top:10px; }
.viz-tint { background:var(--viz-soft); }
.viz-services,.viz-root #industries,.viz-root #cases,.viz-faq { background:var(--viz-surface); }
.viz-capability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 48px; }.viz-capability-grid article { padding-top:26px; border-top:1px solid #dae5f2; }.viz-capability-grid i { color:var(--viz-blue); font-size:28px; margin-bottom:20px; }.viz-capability-grid h3 { font-size:20px; }.viz-capability-grid p { font-size:15px; color:var(--viz-muted); margin-top:12px; }
.viz-filters { display:flex; gap:12px; justify-content:center; margin-bottom:32px; flex-wrap:wrap; }.viz-filters button { border:1px solid #e0e8f2; border-radius:5px; padding:9px 20px; background:#fff; color:#52647b; font-size:14px; }.viz-filters button[aria-pressed="true"] { color:#fff; background:var(--viz-blue); border-color:var(--viz-blue); }.viz-filters button:hover { border-color:var(--viz-blue); }
.viz-case-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px; }.viz-case { color:var(--viz-ink); }.viz-case > div { overflow:hidden; border-radius:5px; }.viz-case img { aspect-ratio:16/9; width:100%; height:auto; object-fit:cover; transition:transform .3s; background:#f1f5fa; }.viz-case:hover img { transform:scale(1.025); }.viz-case > span { display:block; color:var(--viz-blue); font-size:12px; margin:16px 0 6px; }.viz-case h3 { font-size:18px; }.viz-case p { font-size:13px; margin-top:12px; color:var(--viz-muted); display:flex; justify-content:space-between; }.viz-case:hover h3 { color:var(--viz-blue); }.viz-case-status { text-align:center; margin:32px 0 16px !important; color:var(--viz-muted); font-size:13px; }#more-cases { display:flex; margin-inline:auto; }
.viz-delivery { background:white; border:1px solid #dce6f0; border-radius:12px; padding:0 32px; }.viz-delivery-row { display:grid; grid-template-columns:200px 1fr; gap:30px; padding:36px 0; align-items:center; }.viz-delivery-row + .viz-delivery-row { border-top:1px solid #dce6f0; }.viz-delivery-row > h3 { font-size:22px; line-height:1.7; }.viz-delivery-row ol { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }.viz-delivery-row li { padding:12px 20px; border-left:1px solid #e7edf5; transition:background .2s,transform .2s; }.viz-delivery-row li:hover { background:#f3f8ff; transform:translateY(-3px); }.viz-delivery-row li > span { color:var(--viz-blue); font-size:13px; }.viz-delivery-row h4 { font-size:16px; margin:10px 0; }.viz-delivery-row p { color:var(--viz-muted); font-size:13px; }
.viz-faq-layout { display:grid; grid-template-columns:.9fr 1.3fr; gap:90px; align-items:start; }.viz-faq-layout > div:first-child > p:not(.viz-eyebrow) { margin:24px 0; color:var(--viz-muted); font-size:15px; max-width:370px; }.viz-faq-list details { border-bottom:1px solid var(--viz-line); }.viz-faq-list details:first-child { border-top:1px solid var(--viz-line); }.viz-faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:24px; font-size:16px; padding:22px 0; cursor:pointer; font-weight:600; list-style:none; }.viz-faq-list summary::-webkit-details-marker { display:none; }.viz-faq-list summary i { color:var(--viz-blue); transition:transform .2s; }.viz-faq-list details[open] summary { color:var(--viz-blue); }.viz-faq-list details[open] summary i { transform:rotate(45deg); }.viz-faq-list details > p { font-size:14px; color:var(--viz-muted); padding:0 28px 24px 0; line-height:1.9; }
.viz-consult { background:#082d52; color:#fff; }.viz-consult-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:64px; align-items:center; }.viz-consult .viz-eyebrow { color:#70bbff; }.viz-consult h2 { font-size:32px; }.viz-consult-layout > div > p:not(.viz-eyebrow) { margin-top:20px; color:#c0d3e7; font-size:15px; }.viz-consult-hints { display:flex; gap:28px; margin-top:28px; color:#c0d3e7; font-size:13px; }.viz-consult form { background:#163e64; border:1px solid #355c82; border-radius:8px; padding:30px; }.viz-consult label { display:block; margin-bottom:14px; color:#d8e8f6; font-size:14px; }.viz-consult label span { color:#66baff; }.viz-form-row { display:flex; gap:12px; }.viz-form-row input { flex:1; width:0; min-width:0; background:#092c4b; color:#fff; border:1px solid #456385; border-radius:5px; padding:12px 16px; font-size:14px; }.viz-form-row input::placeholder { color:#a6b9d2; }.viz-form-row .viz-button { flex-shrink:0; padding-inline:16px; font-size:14px; }.viz-consult form > p { color:#b4cbe0; font-size:12px; margin-top:14px; }.viz-consult form > a { color:#d8e8f6; font-size:13px; display:inline-block; margin-top:12px; }#consult-status:empty { display:none; }#consult-status { color:#d5edff; }

@media(min-width:1600px) { .viz-hero { height:900px; }.viz-hero-heading { padding-top:76px; }.viz-dashboard,.viz-hero-product { top:300px; bottom:140px; }.viz-data-chart { height:210px; } }
@media(max-width:1199px) { .viz-shell { width:calc(100% - 64px); }.viz-hero { height:760px; }.viz-hero-heading { padding-top:50px; }.viz-hero h1 { font-size:38px; }.viz-status { left:30px; width:180px; }.viz-trend { right:30px; width:255px; }.viz-scene-nav { width:590px; }.viz-service-grid article { padding-inline:26px; }.viz-section h2 { font-size:30px; }.viz-product-layout { grid-template-columns:1fr 1.4fr; gap:20px; }.viz-delivery-row { grid-template-columns:160px 1fr; gap:12px; }.viz-delivery-row li { padding-inline:12px; }.viz-delivery-row > h3 { font-size:20px; }.viz-dashboard { inset:265px 32px 120px; }.viz-data-chart { height:145px; }.viz-hero-product { inset:265px 32px 120px; }.viz-faq-layout { gap:40px; }.viz-consult-layout { gap:30px; }.viz-form-row { flex-wrap:wrap; }.viz-form-row input { flex-basis:100%; min-height:48px; }.viz-form-row .viz-button { width:100%; } }
@media(max-width:991px) { .visualization-page #header,.visualization-page #header .header-wrap-clone { height:74px; }.visualization-page #header .header-row { min-height:74px; }.visualization-page #header .container { padding-inline:24px; }.visualization-page #logo img { width:165px !important; }.visualization-page #header .menu-link { padding:14px 0; }.visualization-page #header .primary-menu { background:#fff; }.viz-hero { height:750px; }.viz-hero h1 { font-size:34px; }.viz-hero-subtitle { font-size:18px; }.viz-status { top:43%; }.viz-trend { top:41%; }.viz-hotspot { top:63%; }.viz-building-detail { top:72%; }.viz-hotspot[data-building="office"] { top:76%; left:77%; }.viz-section { padding:64px 0; }.viz-section-heading { margin-bottom:36px; }.viz-service-grid article { padding-inline:20px; }.viz-service-grid h3 { font-size:21px; }.viz-service-grid p { font-size:14px; }.viz-product-layout { grid-template-columns:1fr; gap:36px; }.viz-product-copy h2 br { display:none; }.viz-product-copy { display:grid; grid-template-columns:1fr 1fr; column-gap:30px; }.viz-product-copy > p,.viz-product-copy > h2 { grid-column:1/-1; }.viz-product-view { max-width:780px; margin-inline:auto; width:100%; }.viz-industry-grid { gap:20px; }.viz-industry h3 { font-size:18px; }.viz-industry p { font-size:14px; }.viz-industry-more { gap:20px; }.viz-industry-more article { display:block; }.viz-industry-more i { margin-bottom:14px; }.viz-capability-grid { gap:28px; }.viz-capability-grid h3 { font-size:18px; }.viz-case-grid { gap:24px; }.viz-case h3 { font-size:16px; }.viz-delivery-row { display:block; }.viz-delivery-row > h3 { margin-bottom:22px; }.viz-delivery-row > h3 br { display:none; }.viz-delivery-row li:first-child { border-left:0; padding-left:0; }.viz-faq-layout { grid-template-columns:1fr 1.2fr; gap:28px; }.viz-faq-layout h2 { font-size:27px; }.viz-consult-layout { grid-template-columns:1fr; }.viz-form-row { flex-wrap:nowrap; }.viz-form-row input { flex-basis:auto; }.viz-form-row .viz-button { width:auto; }.viz-dashboard-grid { gap:20px; }.viz-dashboard { padding:20px; }.viz-demo-label { right:18px; bottom:116px; } }
@media(max-width:767px) { html { scroll-padding-top:85px; }.viz-shell { width:calc(100% - 40px); }.viz-section { padding:56px 0; }.viz-section h2 { font-size:27px; }.viz-section-heading { text-align:left; }.viz-section-heading > p:last-child { font-size:14px; }.viz-eyebrow { font-size:13px; }.viz-hero { height:850px; }.viz-hero-art { object-position:52% center; }.viz-hero-heading { padding-top:36px; }.viz-hero-heading .viz-eyebrow { font-size:12px; }.viz-hero h1 { font-size:clamp(26px,6.7vw,38px); line-height:1.55; text-wrap:balance; }.viz-hero-subtitle { font-size:15px; line-height:1.8; max-width:280px; margin-inline:auto !important; }.viz-actions { gap:12px; margin-top:22px; }.viz-button { padding:11px 16px; gap:10px; font-size:14px; min-height:46px; }.viz-status { left:20px; top:38%; width:142px; padding:14px; }.viz-status h2 { font-size:14px; }.viz-status dl > div { font-size:12px; margin:8px 0; }.viz-status dt { gap:7px; }.viz-trend { right:20px; top:39%; width:calc(100% - 200px); min-width:150px; max-width:230px; padding:12px; }.viz-panel-heading { flex-wrap:wrap; }.viz-panel-heading h2 { font-size:12px; }.viz-panel-heading small { font-size:10px; }.viz-mini-chart { height:115px; margin-top:10px; }.viz-hotspot { left:48%; top:66%; font-size:11px; padding:7px 9px; }.viz-hotspot[data-building="office"] { left:75%; top:74%; }.viz-building-detail { top:80%; font-size:10px; }.viz-scene-nav { width:calc(100% - 24px); padding:8px 8px 10px; }.viz-scene-tabs button { font-size:13px; gap:7px; padding:12px 3px; }.viz-scene-tabs button i { font-size:19px; }.viz-scene-nav > p { font-size:10px; }.viz-demo-label { bottom:112px; right:16px; font-size:10px; }.viz-dashboard { inset:290px 16px 114px; padding:16px; overflow:auto; }.viz-dashboard-head { align-items:end; gap:10px; }.viz-dashboard-head h2 { font-size:18px; }.viz-dashboard-head label { font-size:11px; }.viz-dashboard-head select { display:block; margin:4px 0 0; }.viz-dashboard-grid { grid-template-columns:1fr; gap:18px; }.viz-metrics { gap:36px; }.viz-metrics strong { font-size:22px; }.viz-data-chart { height:120px; }.viz-device-list h3 { font-size:13px; margin-bottom:5px; }.viz-device-list td,.viz-device-list th { padding-block:7px; font-size:11px; }.viz-hero-product { inset:300px 16px 118px; padding:18px; grid-template-columns:1fr; gap:14px; align-content:center; }.viz-hero-product img { max-height:200px; object-fit:contain; }.viz-hero-product h2 { font-size:20px; }.viz-hero-product p { margin:10px 0 15px; }.viz-service-grid { grid-template-columns:1fr; gap:28px; }.viz-service-grid article,.viz-service-grid article:first-child,.viz-service-grid article:last-child { border:0; padding:0 0 26px; border-bottom:1px solid var(--viz-line); }.viz-service-grid article:last-child { padding-bottom:0; border:0; }.viz-icon { font-size:30px; margin-bottom:12px; }.viz-service-grid h3 { font-size:21px; }.viz-service-grid p { margin-block:10px 14px; }.viz-product-copy { display:block; }.viz-feature-line { margin-top:22px; }.viz-feature-line h3 { font-size:17px; }.viz-product-layout { gap:28px; }.viz-product-copy h2 br { display:initial; }.viz-part-tabs { gap:0; }.viz-part-tabs button { font-size:12px; padding:6px; }.viz-product-controls button { font-size:12px; padding:7px; }.viz-part-description { font-size:12px; }.viz-industry-grid,.viz-industry-more,.viz-capability-grid,.viz-case-grid { grid-template-columns:1fr; gap:30px; }.viz-industry img { aspect-ratio:2/1; margin-bottom:15px; }.viz-industry h3 { font-size:21px; }.viz-industry-more { margin-top:28px; padding-top:28px; }.viz-industry-more article { display:flex; }.viz-industry-more i { margin-top:5px; }.viz-capability-grid { gap:24px; }.viz-capability-grid article { padding-top:22px; }.viz-capability-grid i { margin-bottom:12px; }.viz-capability-grid h3 { font-size:20px; }.viz-filters { justify-content:flex-start; gap:8px; }.viz-filters button { padding:8px 12px; font-size:12px; }.viz-case h3 { font-size:19px; }.viz-case-grid { gap:30px; }.viz-delivery { padding:0 20px; }.viz-delivery-row { padding:28px 0; }.viz-delivery-row ol { grid-template-columns:1fr 1fr; gap:20px 0; }.viz-delivery-row li:nth-child(odd) { padding-left:0; border:0; }.viz-delivery-row h4 { font-size:15px; }.viz-delivery-row > h3 { font-size:20px; }.viz-faq-layout { grid-template-columns:1fr; gap:32px; }.viz-faq-list summary { font-size:14px; padding-block:20px; }.viz-faq-list details > p { font-size:13px; padding-right:0; }.viz-consult h2 { font-size:26px; }.viz-consult form { padding:22px; }.viz-form-row { flex-wrap:wrap; }.viz-form-row input { flex-basis:100%; }.viz-form-row .viz-button { width:100%; }.viz-consult-hints { gap:24px; }.visualization-page #jy-footer .jy-contact-section > .container,.visualization-page #jy-footer .jy-site-footer > .container { width:calc(100% - 40px); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.viz-root * { animation:none !important; transition:none !important; }.viz-button:hover,.viz-case:hover img,.viz-delivery-row li:hover { transform:none; } }
.viz-hero h1 > span { display:inline-block; white-space:nowrap; }
.viz-hotspot { white-space:nowrap; }
.viz-root #industries { padding-top:64px; }
.viz-root #industries .viz-section-heading > .viz-eyebrow { display:block; }
.viz-dashboard .viz-device-list h3 { font-size:15px; }
.viz-pump-stage img[data-view="assembled"] { object-fit:contain; }
@media(min-width:768px) and (max-width:1199px) { .viz-trend { right:110px; } }
@media(max-width:767px) {
  .viz-hero h1 { font-size:clamp(21px,6.66vw,26px); letter-spacing:0; }
  .viz-hero-subtitle { font-size:14px; max-width:340px; text-wrap:balance; }
    .viz-pump-stage { height:auto; aspect-ratio:2.3/1; min-height:150px; }
    .viz-pump-stage img { height:100%; object-fit:contain; }
    .viz-pump-stage canvas { position:absolute; inset:0; }
    .viz-pump-actions { gap:2px; }
    .viz-product-controls { gap:5px; }
    .viz-product-controls #pump-play { min-width:87px; }
    .viz-product-controls #pump-reset { font-size:0; padding:7px; }
    .viz-product-controls #pump-reset i { font-size:16px; }
  .viz-hotspot[data-building="office"] { left:72%; }
  .viz-demo-label { bottom:105px; }
}
@media(max-width:380px) {
  .visualization-page #header .container { padding-inline:16px; }
  .visualization-page #logo img { width:130px !important; }
  .visualization-page #logo .jy-logo-group { gap:8px; }
  .visualization-page #logo .jy-ai-service-entry { padding-inline:9px; margin-left:0; }
  .viz-actions { gap:10px; }
  .viz-actions .viz-button { white-space:nowrap; font-size:12px; padding-inline:12px; }
  .viz-status { left:12px; width:118px; padding:12px; }
  .viz-status h2 { font-size:12px; }
  .viz-status dl > div { font-size:11px; }
  .viz-trend { right:12px; width:calc(100% - 154px); min-width:0; }
  .viz-hotspot[data-building="office"] { left:69%; }
}

/* AI digital twin hero: viewport scene with an overlay site navigation. */
.visualization-page #header{position:fixed!important;inset:0 0 auto;width:100%;height:80px!important;margin:0!important}
.visualization-page #header-wrap{position:relative!important;inset:auto!important;width:100%;background:transparent!important;border-color:transparent;box-shadow:none!important;transition:background .22s,border-color .22s}
.visualization-page #header .header-wrap-clone{display:none!important;height:0!important}
.visualization-page #header .menu-container>.menu-item>.menu-link{color:#e5f2ff}
.visualization-page #header .menu-container>.menu-item>.menu-link:hover{color:#61d5ff}
.visualization-page #logo .logo-default{display:none!important}
.visualization-page #logo .logo-dark{display:block!important}
.visualization-page.viz-header-scrolled #header-wrap,.visualization-page.viz-menu-open #header-wrap,.visualization-page #header:has(.mega-menu:hover) #header-wrap{background:#fff!important;border-bottom:1px solid #e5edf5}
.visualization-page.viz-header-scrolled #header .menu-container>.menu-item>.menu-link,.visualization-page.viz-menu-open #header .menu-container>.menu-item>.menu-link,.visualization-page #header:has(.mega-menu:hover) .menu-container>.menu-item>.menu-link{color:#172a42}
.visualization-page.viz-header-scrolled #logo .logo-default,.visualization-page.viz-menu-open #logo .logo-default,.visualization-page #header:has(.mega-menu:hover) #logo .logo-default{display:block!important}
.visualization-page.viz-header-scrolled #logo .logo-dark,.visualization-page.viz-menu-open #logo .logo-dark,.visualization-page #header:has(.mega-menu:hover) #logo .logo-dark{display:none!important}
.viz-root .viz-hero{height:100vh;height:100svh;min-height:0;margin-top:0}
.viz-hero-art{object-position:center center}
.viz-hero-heading{padding-top:clamp(112px,14svh,150px)}
.viz-hero h1{font-size:clamp(32px,3.6vw,56px)}
.viz-hero-ai-line{font-size:14px;color:#b1daf1;margin-top:10px!important;letter-spacing:.03em}
.viz-hero .viz-actions{margin-top:22px}
.viz-glass{background:#0828408c;border:1px solid #7cccf560;border-radius:5px;backdrop-filter:blur(5px);box-shadow:0 10px 30px #00142533}
.viz-status{top:46%;left:max(3.5%,calc((100% - 1320px)/2));width:200px;transform:perspective(1100px) rotateY(8deg);transform-origin:left center}
.viz-trend{top:50%;right:max(104px,calc((100% - 1220px)/2));width:280px;transform:perspective(1100px) rotateY(-8deg);transform-origin:right center}
.viz-mini-chart{height:140px}
.viz-building-detail{top:70%;background:#092a43a8;border-color:#76d5ff70}
.viz-hotspot{background:#092c43b8;border-color:#68c9faaa;backdrop-filter:blur(4px)}
.viz-demo-label{bottom:26px;right:108px;font-size:11px;color:#b4d7ee}
.viz-data-demo{margin-top:48px;padding:32px;background:#0b2741;border:1px solid #325a79;border-radius:9px;color:#eef7ff;scroll-margin-top:105px}
.viz-data-demo .viz-eyebrow{color:#87cfff;font-size:12px}
.viz-data-demo .viz-dashboard-head h2{font-size:25px}
.viz-data-demo .viz-data-chart{height:190px}
.viz-data-demo .viz-metrics{margin-top:14px}
.viz-ai-query{border-top:1px solid #3e5d74;margin-top:28px;padding-top:26px}
.viz-ai-query h3{font-size:20px}.viz-ai-query>div>p{color:#bdd5e7;font-size:14px;margin-top:8px}
.viz-ai-questions{display:flex;gap:12px;flex-wrap:wrap;margin-block:18px}
.viz-ai-questions button{border:1px solid #3c718f;color:#bce2f5;background:#103750;border-radius:5px;padding:10px 16px;font-size:14px;min-height:44px;transition:background .2s,border-color .2s}
.viz-ai-questions button[aria-pressed="true"],.viz-ai-questions button:hover{border-color:#5fc9fb;background:#18577b;color:white}
#viz-ai-answer{font-size:15px;line-height:1.9;max-width:1100px;color:#e4f4ff;min-height:58px}
.viz-ai-query>small{display:block;margin-top:14px;font-size:12px;color:#afc9dd}
@media(max-width:1199px){.viz-status{width:180px;top:47%;left:30px}.viz-trend{width:240px;right:104px;top:52%}.viz-mini-chart{height:125px}}
@media(max-width:991px){
 .visualization-page #header .header-row{min-height:74px;flex-wrap:nowrap;justify-content:space-between;width:100%}
 .visualization-page #header .primary-menu-trigger{display:flex!important;opacity:1!important;visibility:visible!important;margin-left:auto;padding:10px}
 .visualization-page #header .cnvs-hamburger-inner,.visualization-page #header .cnvs-hamburger-inner::before,.visualization-page #header .cnvs-hamburger-inner::after{background:#e6f5ff}
 .visualization-page.viz-header-scrolled #header .cnvs-hamburger-inner,.visualization-page.viz-header-scrolled #header .cnvs-hamburger-inner::before,.visualization-page.viz-header-scrolled #header .cnvs-hamburger-inner::after,.visualization-page.viz-menu-open #header .cnvs-hamburger-inner,.visualization-page.viz-menu-open #header .cnvs-hamburger-inner::before,.visualization-page.viz-menu-open #header .cnvs-hamburger-inner::after{background:#19334a}
 .visualization-page #header .primary-menu{display:none!important;position:absolute;top:74px;left:0;width:100%;padding:12px 24px 20px;background:#fff;max-height:calc(100svh - 74px);overflow:auto}
 .visualization-page.viz-menu-open #header .primary-menu{display:block!important}
 .visualization-page #header .menu-container{display:block!important;width:100%;border:0}
 .visualization-page #header .menu-item{width:100%}
 .visualization-page #header .menu-link{padding:12px 5px;font-size:15px}
 .viz-hero-heading{padding-top:105px}
 .viz-hotspot[data-building="office"]{top:var(--y);left:var(--x)}
 .viz-data-demo{padding:24px}
}
@media(max-width:767px){
 .viz-hero-heading{padding-top:92px}.viz-hero h1{font-size:clamp(20px,6.2vw,28px);line-height:1.5;letter-spacing:0}
 .viz-hero h1>span{display:block}.viz-hero h1>span+span{margin-top:2px}
 .viz-hero-subtitle{font-size:14px;line-height:1.7;margin-top:12px!important;max-width:320px}
 .viz-hero-ai-line{font-size:11px;margin-top:8px!important;letter-spacing:0}
 .viz-hero .viz-actions{margin-top:17px;gap:12px}.viz-hero .viz-button{min-height:44px;font-size:13px;padding:10px 15px}
 .viz-status{top:auto;bottom:190px;left:20px;width:138px;padding:12px;transform:none}
 .viz-status h2{font-size:13px}.viz-status dl{margin-top:10px}.viz-status dl>div{font-size:12px;margin:8px 0}.viz-status dt{gap:6px}
 .viz-trend{top:auto;bottom:190px;right:20px;width:calc(100% - 188px);max-width:200px;min-width:0;padding:12px;transform:none}
 .viz-mini-chart{height:104px;margin-top:10px}.viz-panel-heading h2{font-size:12px}.viz-panel-heading select{font-size:11px;padding:3px 4px}
 .viz-hotspot,.viz-hotspot[data-building="office"]{top:auto;bottom:137px;left:29%;font-size:11px;padding:8px;transform:translateX(-50%)}
 .viz-hotspot[data-building="office"]{left:72%}.viz-hotspot i{font-size:15px}.viz-building-detail{display:none}
 .viz-demo-label{bottom:112px;right:20px;font-size:10px}
 .viz-data-demo{margin-top:30px;padding:20px}.viz-data-demo .viz-dashboard-head{display:block}.viz-data-demo .viz-dashboard-head h2{font-size:23px}.viz-data-demo .viz-dashboard-head label{display:flex;gap:12px;align-items:center;margin-top:14px}
 .viz-data-demo .viz-dashboard-head select{display:inline-block;margin:0;padding:6px 9px;min-height:40px}
 .viz-data-demo .viz-metrics{gap:28px}.viz-data-demo .viz-data-chart{height:170px}
 .viz-ai-query h3{font-size:19px}.viz-ai-questions{display:grid;gap:10px}.viz-ai-questions button{text-align:left;font-size:13px}
 #viz-ai-answer{font-size:14px;min-height:0}.viz-ai-query>small{font-size:11px}
}
@media(max-width:380px){.viz-status{left:16px;width:123px}.viz-trend{right:16px;width:calc(100% - 169px);padding:10px}.viz-mini-chart{height:97px}.viz-hotspot{gap:5px;font-size:10px}.viz-hero .viz-button{font-size:12px;padding-inline:12px}.viz-hero-subtitle{font-size:13px}.viz-hero-ai-line{font-size:10px}}
@media(max-height:720px) and (min-width:768px){.viz-hero-heading{padding-top:102px}.viz-hero h1{font-size:38px}.viz-hero-subtitle{font-size:17px}.viz-hero .viz-actions{margin-top:16px}.viz-status{top:49%;padding:15px}.viz-trend{top:49%;padding:15px}.viz-mini-chart{height:112px}.viz-building-detail{top:78%}}
@media(max-height:690px) and (max-width:767px){.viz-hero-heading{padding-top:86px}.viz-hero-subtitle{font-size:12px;margin-top:8px!important}.viz-hero .viz-actions{margin-top:12px}.viz-status,.viz-trend{bottom:167px}.viz-hotspot,.viz-hotspot[data-building="office"]{bottom:120px}.viz-demo-label{bottom:99px}}
.viz-root .viz-hotspot{font-size:13px;min-height:40px}
.viz-data-demo .viz-dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.viz-data-demo .viz-dashboard-grid>div{min-width:0}
.viz-data-demo .viz-data-chart canvas{max-width:100%}
@media(max-width:767px){.viz-hero .viz-title-separator{display:none}.viz-data-demo .viz-dashboard-grid{grid-template-columns:minmax(0,1fr)}.viz-root .viz-hotspot{font-size:11px;min-height:44px}.viz-device-list table{table-layout:fixed}}

/* Four flat, square HUD cards and the first-screen contact form. */
.viz-root .viz-hero h1{font-size:clamp(38px,4.5vw,76px);font-weight:900;line-height:1.2;letter-spacing:.012em;animation:viz-title-enter .85s ease-out both,viz-title-glow 4s ease-in-out 1s 2}
@keyframes viz-title-enter{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes viz-title-glow{0%,100%{text-shadow:0 2px 16px #071b32}50%{text-shadow:0 2px 16px #071b32,0 0 28px #58cfff99}}
.viz-hero-heading{padding-top:clamp(108px,13svh,142px)}
.viz-hero-form{width:min(500px,100%);margin:24px auto 0;text-align:left}
.viz-hero-form-row{display:flex;align-items:center;gap:10px;padding:6px;border:1px solid #8bd4ff8c;border-radius:7px;background:#08283dc9;backdrop-filter:blur(8px)}
.viz-hero-form-row>i{color:#8adfff;font-size:22px;margin-left:12px}
.viz-hero-form-row input{flex:1;min-width:0;width:0;min-height:46px;padding:8px 0;color:#fff;background:none;border:0;font-size:14px;outline-offset:1px}
.viz-hero-form-row input::placeholder{color:#bfdaeb}
.viz-hero-form-row .viz-button{min-height:46px;font-size:14px;padding:10px 18px;white-space:nowrap;flex-shrink:0;transform:none}
.viz-hero-form>p{color:#a9d0e5;font-size:11px;line-height:1.6;margin-top:8px;text-align:center}
#hero-consult-status:empty{display:none}#hero-consult-status{color:#fff;font-weight:600;text-shadow:0 1px 3px #031426,0 0 5px #031426}
.viz-hud-column{--hud-size:clamp(140px,22svh,220px);position:absolute;top:46%;display:grid;gap:16px;width:var(--hud-size);z-index:1}
.viz-hud-left{left:max(3.5%,calc((100% - 1440px)/2))}.viz-hud-right{right:max(104px,calc((100% - 1440px)/2))}
.viz-hud-column>.viz-glass{position:relative;inset:auto;width:var(--hud-size);height:var(--hud-size);max-width:none;min-width:0;padding:18px;transform:none;border-radius:4px;display:flex;flex-direction:column;overflow:hidden}
.viz-hud-column h2{font-size:15px;font-weight:700;line-height:1.4}
.viz-status dl{margin:12px 0 0}.viz-status dl>div{font-size:13px;margin:8px 0}.viz-status dt{gap:8px}
.viz-trend .viz-panel-heading{gap:6px;flex-wrap:wrap;align-items:center}.viz-trend h2{font-size:14px}.viz-trend h2 small{font-size:9px}
.viz-trend select{font-size:10px;padding:3px}.viz-trend .viz-mini-chart{height:auto;flex:1;min-height:0;margin-top:12px}
.viz-environment dl{margin:12px 0 0}.viz-environment dl>div{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-size:13px}.viz-environment dt{font-weight:400;color:#c3dcee}.viz-environment dd{margin:0;font-weight:600}.viz-environment small{font-size:10px;font-weight:400;color:#b0d0e5}
.viz-environment>p,.viz-alerts>p{margin-top:auto;color:#8ce5cf;font-size:10px;line-height:1.6}
.viz-alerts ul{padding:0;margin:12px 0;list-style:none}.viz-alerts li{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #81b9de30;font-size:12px}.viz-alerts li:last-child{border:0}.viz-alerts li>i{color:#ffc36a;font-size:16px}.viz-alerts li+li>i{color:#7adebf}.viz-alerts li div{flex:1;min-width:0}.viz-alerts li small{display:block;color:#a8cadf;font-size:9px;margin-top:2px}.viz-alerts li>span{font-size:9px;color:#9ddacb}.viz-alerts li:first-child>span{color:#ffc36a}.viz-alerts>p{color:#b4d7e9}
@media(max-width:1199px){.viz-hud-left{left:30px}.viz-hud-right{right:104px}.viz-root .viz-hero h1{font-size:clamp(36px,4.4vw,53px)}}
@media(max-height:720px) and (min-width:768px){.viz-hero-heading{padding-top:100px}.viz-root .viz-hero h1{font-size:clamp(36px,4vw,58px)}.viz-hero-subtitle{margin-top:12px!important}.viz-hero-form{margin-top:16px}.viz-hud-column{top:49%;gap:12px}.viz-hud-column>.viz-glass{padding:12px}.viz-hud-column h2{font-size:13px}.viz-status dl{margin-top:8px}.viz-status dl>div{margin:5px 0;font-size:11px}.viz-environment dl{margin-top:8px}.viz-environment dl>div{font-size:11px;margin:5px 0}.viz-alerts ul{margin:5px 0}.viz-alerts li{padding:5px 0;font-size:10px}}
@media(max-width:767px){
 .viz-hero-heading{padding-top:91px}.viz-root .viz-hero h1{font-size:clamp(28px,7.5vw,38px);line-height:1.35;letter-spacing:0}.viz-hero-subtitle{margin-top:10px!important}.viz-hero-form{margin-top:18px}
 .viz-hero-form-row{gap:6px;padding:4px}.viz-hero-form-row>i{font-size:18px;margin-left:6px}.viz-hero-form-row input{font-size:12px;min-height:44px}.viz-hero-form-row input::placeholder{font-size:12px}.viz-hero-form-row .viz-button{font-size:12px;padding:9px 10px;min-height:44px}.viz-hero-form>p{font-size:10px}
 .viz-hud-column{--hud-size:min(18svh,calc((100vw - 52px)/2));top:max(340px,46svh);gap:12px}.viz-hud-left{left:20px}.viz-hud-right{right:20px}.viz-hud-column>.viz-glass{padding:12px}.viz-hud-column h2{font-size:12px}.viz-status dl{margin-top:8px}.viz-status dl>div{margin:5px 0;font-size:11px}.viz-status dt{gap:5px}.viz-environment dl{margin-top:8px}.viz-environment dl>div{font-size:11px;margin:5px 0}.viz-environment small{font-size:9px}.viz-environment>p,.viz-alerts>p{font-size:9px}.viz-trend h2{font-size:11px}.viz-trend .viz-panel-heading{gap:4px}.viz-trend .viz-mini-chart{margin-top:6px}.viz-trend select{font-size:9px;padding:1px}.viz-alerts ul{margin:6px 0}.viz-alerts li{padding:5px 0;font-size:10px;gap:5px}.viz-alerts li>i{font-size:12px}.viz-alerts li small{font-size:8px}.viz-alerts li>span{display:none}.viz-root .viz-hotspot{display:none}.viz-demo-label{bottom:112px}
}
@media(max-width:380px){.viz-hero-heading{padding-top:84px}.viz-hero-form-row>i{margin-left:4px}.viz-hud-left{left:16px}.viz-hud-right{right:16px}.viz-hud-column>.viz-glass{padding:10px}.viz-hero-form-row .viz-button{font-size:11px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.viz-root .viz-hero h1{animation:none}}
.viz-status dl,.viz-environment dl{display:grid;gap:8px}.viz-status dl>div,.viz-environment dl>div{margin:0;line-height:1.5}
.viz-alerts li{line-height:1.45;padding-block:6px}
@media(max-height:720px) and (min-width:768px){.viz-status dl,.viz-environment dl{gap:5px}.viz-alerts li{padding-block:4px}}
@media(max-width:767px){.viz-status dl,.viz-environment dl{gap:4px}.viz-status dl>div,.viz-environment dl>div{font-size:10px;line-height:1.3}.viz-environment>p{font-size:8px}.viz-alerts li{line-height:1.3;padding-block:4px}.viz-alerts>p{display:none}}
@media(max-height:690px) and (max-width:767px){.viz-hero-form{margin-top:14px}.viz-hud-column{--hud-size:16svh;top:350px}.viz-hud-column>.viz-glass{padding:9px}.viz-status dl>div,.viz-environment dl>div{font-size:9px;line-height:1.2}.viz-environment>p{display:none}.viz-alerts ul{margin:4px 0}.viz-alerts li{font-size:9px;line-height:1.2;padding-block:3px}.viz-alerts li small{line-height:1.2}}
@media(max-height:690px) and (max-width:767px){.viz-alerts li>i{display:none}.viz-alerts li small{font-size:7px;white-space:nowrap}.viz-alerts h2{font-size:11px}}
@media(max-height:720px) and (min-width:768px){.viz-alerts>p{display:none}.viz-alerts li small{font-size:8px;white-space:nowrap}.viz-alerts li>span{display:none}}

/* Continuous light sweep across the editable headline. */
.viz-root .viz-hero h1{color:transparent;background:linear-gradient(110deg,#fff 35%,#fff 43%,#8de2ff 48%,#36c4ff 50%,#c9f2ff 53%,#fff 58%,#fff 70%);background-size:260% 100%;background-position:150% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;animation:viz-title-enter .85s ease-out both,viz-title-flow 5s linear infinite}
@keyframes viz-title-flow{from{background-position:150% 0}to{background-position:-150% 0}}
@media(min-width:992px){.visualization-page #header .container{width:min(1440px,calc(100% - 96px));max-width:none;padding-inline:0}}
@media(min-width:768px) and (max-width:1199px){.visualization-page #header .container,.visualization-page #jy-footer .jy-contact-section>.container,.visualization-page #jy-footer .jy-site-footer>.container{width:calc(100% - 64px)}}
@media(prefers-reduced-motion:reduce){.viz-root .viz-hero h1{animation:none;background:none;color:#fff;-webkit-text-fill-color:currentColor;text-shadow:0 2px 16px #071b32}}

/* Selected direction: Precision Alloy, editable silver/cyan headline. */
@font-face{font-family:"Viz Headline";src:url("../fonts/viz-headline-900.ttf") format("truetype");font-style:normal;font-weight:900;font-display:swap}
.viz-root .viz-hero h1{display:flex;justify-content:center;align-items:center;gap:.22em;font-family:"Viz Headline","Microsoft YaHei",sans-serif;font-size:clamp(38px,4.8vw,78px);font-weight:900;letter-spacing:.015em;line-height:1.22;color:#fff;background:none;-webkit-text-fill-color:currentColor;text-shadow:none;animation:viz-title-enter .85s ease-out both;overflow:visible}
.viz-hero h1>.viz-title-group{display:inline-flex;align-items:center;gap:.22em;margin:0}
.viz-root .viz-hero h1 .viz-title-word{display:inline-block;position:relative;isolation:isolate;transform:none;color:transparent;-webkit-text-fill-color:transparent;background-image:linear-gradient(110deg,transparent 43%,#dcfaff80 48%,#ffffffed 50%,#49d6ffa6 52%,transparent 57%),linear-gradient(180deg,#fff 8%,#f0f5fa 40%,#b4cada 46%,#eef8ff 49%,#5992b7 53%,#b4deef 76%,#d4f1ff 100%);background-size:300% 100%,100% 100%;background-position:150% 0,0 0;-webkit-background-clip:text;background-clip:text;animation:viz-alloy-flow 5s linear infinite}
.viz-root .viz-hero h1 .viz-title-dot{color:#32dbf7;-webkit-text-fill-color:currentColor;font-size:.55em;line-height:1;text-shadow:0 0 8px #1bbef58c;transform:none}
@keyframes viz-alloy-flow{from{background-position:150% 0,0 0}to{background-position:-150% 0,0 0}}
@media(max-width:1199px){.viz-root .viz-hero h1{font-size:clamp(36px,4.4vw,53px)}}
@media(max-height:720px) and (min-width:768px){.viz-root .viz-hero h1{font-size:clamp(36px,4vw,58px)}}
@media(max-width:767px){.viz-root .viz-hero h1{flex-direction:column;gap:3px;font-size:clamp(27px,7.5vw,38px);line-height:1.35;letter-spacing:.01em}.viz-hero h1>.viz-title-group{gap:.15em;margin:0}.viz-root .viz-hero h1 .viz-title-dot-first{display:none}}
@media(prefers-reduced-motion:reduce){.viz-root .viz-hero h1,.viz-root .viz-hero h1 .viz-title-word{animation:none!important}.viz-root .viz-hero h1 .viz-title-word{background-image:linear-gradient(180deg,#fff 8%,#f0f5fa 40%,#b4cada 46%,#eef8ff 49%,#5992b7 53%,#b4deef 76%,#d4f1ff 100%);background-size:100% 100%;background-position:0 0}}
.viz-root .viz-hero h1 .viz-title-word{-webkit-text-stroke:.35px #c5e4f980}
@media(max-width:767px){.viz-root .viz-hero h1 .viz-title-word{-webkit-text-stroke:0}}

/* One inherited light position travels through all three words, including mobile wrapping. */
@property --viz-sweep { syntax:"<number>"; inherits:true; initial-value:0; }
.viz-root .viz-hero h1 { --viz-sweep:0; animation:viz-title-enter .85s ease-out both,viz-headline-sweep 6s linear infinite; }
.viz-root .viz-hero h1 .viz-title-word {
  background-image:linear-gradient(110deg,transparent 12%,#dcfaff70 38%,#fff 50%,#49d6ffb0 62%,transparent 88%),linear-gradient(180deg,#fff 8%,#f0f5fa 40%,#b4cada 46%,#eef8ff 49%,#5992b7 53%,#b4deef 76%,#d4f1ff 100%);
  background-repeat:no-repeat;
  background-size:160px 100%,100% 100%;
  background-position:calc(var(--viz-title-travel,1200px) * var(--viz-sweep) - var(--viz-word-offset,0px) - 160px) 0,0 0;
  animation:none!important;
}
@keyframes viz-headline-sweep { 0% { --viz-sweep:0; } 82%,100% { --viz-sweep:1; } }
.viz-service-grid article { transition:transform .25s ease,background-color .25s ease; border-radius:6px; }
.viz-service-grid article:hover,.viz-service-grid article:focus-within { transform:translateY(-5px); background-color:#f3f9ff; }
.viz-service-grid .viz-icon { transition:transform .25s ease; }
.viz-service-grid article:hover .viz-icon,.viz-service-grid article:focus-within .viz-icon { transform:translateY(-3px); }
.viz-service-grid .viz-text-button { margin-top:auto; transition:color .2s ease,transform .25s ease; }
.viz-service-grid .viz-text-button:hover { transform:translateX(4px); }
.viz-dashboard-filter { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:22px 0 24px; padding:16px 20px; background:#163b56; border:1px solid #477894; border-radius:7px; }
.viz-dashboard-filter label { display:flex; align-items:center; gap:9px; margin:0; font-size:16px; font-weight:600; color:#eef8ff; }
.viz-dashboard-filter label i { color:#66ceff; font-size:20px; }
.viz-dashboard-filter select { min-height:48px; min-width:220px; padding:10px 40px 10px 15px; font-size:16px; font-weight:600; color:#fff; background:#21567a; border:1px solid #76cef9; border-radius:5px; }
.viz-dashboard-filter select option { background:#153a55; color:#fff; }
.viz-dashboard-filter select:focus-visible { outline:2px solid #8ce5ff; outline-offset:3px; }
.viz-dashboard-filter p { margin:0; font-size:13px; color:#b9d6e8; }
.viz-product-layout { align-items:start; }
.viz-product-copy { padding-top:0; }
.viz-industry-grid { row-gap:44px; }
.viz-industry h3 { display:flex; align-items:center; gap:10px; }
.viz-industry h3>i { flex-shrink:0; color:var(--viz-blue); font-size:24px; line-height:1; }
.viz-industry { display:flex; flex-direction:column; }
.viz-industry>span { margin-top:auto; padding-top:16px; }
@media(max-width:767px) {
 .viz-dashboard-filter { gap:12px; margin-block:18px 20px; padding:16px; }
 .viz-dashboard-filter label { font-size:14px; }
 .viz-dashboard-filter select { width:100%; min-width:0; }
 .viz-dashboard-filter p { font-size:12px; }
 .viz-industry h3 { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) {
 .viz-root .viz-hero h1 { animation:none!important; }
 .viz-root .viz-hero h1 .viz-title-word { background-image:linear-gradient(180deg,#fff 8%,#f0f5fa 40%,#b4cada 46%,#eef8ff 49%,#5992b7 53%,#b4deef 76%,#d4f1ff 100%);background-size:100% 100%;background-position:0 0; }
 .viz-service-grid article,.viz-service-grid .viz-icon,.viz-service-grid .viz-text-button { transition:none;transform:none!important; }
}

/* Case covers use the same uncropped intrinsic ratio as the live website (967 x 649). */
.viz-case img { display:block; aspect-ratio:auto; width:100%; height:auto; object-fit:contain; backface-visibility:hidden; transform:translateZ(0) scale(1); transform-origin:center; transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s ease; }
.viz-case h3 { margin-top:15px; font-weight:600; line-height:1.6; transition:color .22s ease; }
.viz-case { display:block; border-radius:5px; }
.viz-case>div { border-radius:10px; box-shadow:var(--cnvs-box-shadow); }
.viz-case:hover,.viz-case:focus-visible { transform:none; }
.viz-case:hover img,.viz-case:focus-visible img { transform:translateZ(0) scale(1.15); filter:saturate(1.05); }
.viz-case h3,.viz-case:hover h3,.viz-case:focus-visible h3 { transform:none; }
.viz-case:focus-visible { outline:2px solid var(--viz-blue); outline-offset:6px; }
.viz-case:focus-visible h3 { color:var(--viz-blue); }
.viz-industry,.viz-capability-grid article { transition:transform .25s ease,border-color .25s ease; }
.viz-industry:hover { transform:translateY(-4px); }
.viz-industry h3,.viz-capability-grid h3 { transition:color .22s ease; }
.viz-industry:hover h3,.viz-capability-grid article:hover h3 { color:var(--viz-blue); }
.viz-industry h3>i,.viz-capability-grid article>i,.viz-feature-line>i { transition:transform .25s ease; }
.viz-industry:hover h3>i,.viz-capability-grid article:hover>i { transform:translateY(-2px); }
.viz-capability-grid article:hover { transform:translateY(-3px); border-color:#81b9fb; }
.viz-feature-line:hover>i { transform:scale(1.06); }
.viz-button>i,.viz-text-button>i { transition:transform .22s ease; }
.viz-button:hover>i,.viz-text-button:hover>i { transform:translateX(3px); }
.viz-faq-list summary { transition:background-color .22s ease,color .22s ease; }
.viz-faq-list summary:hover { color:var(--viz-blue); background:#f4f9ff; }
@media(prefers-reduced-motion:reduce) {
 .viz-case,.viz-case img,.viz-industry,.viz-capability-grid article,.viz-industry h3>i,.viz-capability-grid article>i,.viz-feature-line>i,.viz-button>i,.viz-text-button>i { transition:none!important;transform:none!important; }
 .viz-case:hover img,.viz-case:focus-visible img { filter:none; }
}

/* A shared breathing indicator keeps the section labels visually consistent. */
.viz-eyebrow-dot::before { content:""; display:inline-block; width:7px; height:7px; margin-right:10px; vertical-align:2px; border-radius:50%; background:var(--viz-blue); box-shadow:0 0 0 4px #087bff16; animation:viz-label-breathe 2.4s ease-in-out infinite; }
@keyframes viz-label-breathe {
 0%,100% { opacity:.7; box-shadow:0 0 0 3px #087bff12; }
 50% { opacity:1; box-shadow:0 0 0 6px #087bff28,0 0 12px #087bff30; }
}
@media(prefers-reduced-motion:reduce) {
 .viz-eyebrow-dot::before { animation:none; opacity:1; }
}

/* AI applications connect the three service directions to practical business tasks. */
.viz-ai-integration { color:#eef6ff; background-color:var(--viz-night); background-image:radial-gradient(ellipse at 85% 0%,#1678b52e,transparent 58%); }
.viz-ai-integration .viz-eyebrow { color:#83cdff; }
.viz-ai-integration .viz-eyebrow-dot::before { background:#54b8ff; }
.viz-ai-integration .viz-section-heading>p:last-child { max-width:1080px; margin-inline:auto; color:#b9d0e5; }
.viz-ai-integration-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.viz-ai-integration-card { display:flex; flex-direction:column; min-width:0; padding:28px; border:1px solid #305575; border-radius:10px; background:linear-gradient(145deg,#143755,#102e49); transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.viz-ai-integration-label { display:flex; align-items:center; gap:11px; color:#82cdff; font-size:14px; font-weight:600; margin-bottom:18px; }
.viz-ai-integration-label i { font-size:24px; transition:transform .25s ease; }
.viz-ai-integration-card h3 { font-size:20px; line-height:1.5; margin-bottom:12px; }
.viz-ai-integration-card>p { font-size:14px; line-height:1.85; color:#c2d5e6; padding-bottom:22px; }
.viz-ai-integration-card blockquote { margin:auto 0 0; padding:16px 0 0; border:0; border-top:1px solid #335773; font-style:normal; }
.viz-ai-integration-card blockquote span { display:block; font-size:12px; color:#a5c6df; margin-bottom:6px; }
.viz-ai-integration-card blockquote p { font-size:14px; line-height:1.75; color:#dfedfa; }
.viz-ai-integration-card:hover { transform:translateY(-3px); border-color:#699bc2; box-shadow:0 12px 28px #010e2026; }
.viz-ai-integration-card:hover .viz-ai-integration-label i { transform:translateY(-2px); }
.viz-ai-integration-footer { display:flex; align-items:center; flex-direction:column; gap:22px; margin-top:32px; text-align:center; }
.viz-ai-integration-footer>p { max-width:1080px; color:#b9d0e5; font-size:14px; line-height:1.85; }
.viz-ai-integration-footer .viz-button { flex-shrink:0; }
@media(max-width:1199px) { .viz-ai-integration-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) {
 .viz-ai-integration-grid { grid-template-columns:1fr; gap:18px; }
 .viz-ai-integration-card { padding:24px; }
 .viz-ai-integration-card h3 { font-size:20px; }
 .viz-ai-integration .viz-section-heading br { display:none; }
 .viz-ai-integration-footer { align-items:flex-start; gap:22px; margin-top:26px; text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
 .viz-ai-integration-card,.viz-ai-integration-label i { transition:none!important; transform:none!important; }
}
