:root{--navy:#0b2340;--ink:#0b172a;--muted:#64748b;--line:#dbe4ee;--paper:#f4f7fa;--red:#e51620;--blue:#1684ee}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.case-library{padding:96px max(6vw,48px);background:#f4f7fa}.case-library-heading{max-width:1520px;margin:0 auto 36px}.case-library-heading p,.case-source header p,.case-software p{margin:0 0 10px;color:var(--red);font-size:16px;font-weight:800;letter-spacing:.16em}.case-library-esai .case-library-heading p{color:var(--blue)}.case-library-heading h2{margin:0 0 12px;font-size:clamp(36px,4vw,64px);letter-spacing:-.04em}.case-library-heading span{color:var(--muted);font-size:21px}.case-card-grid{max-width:1520px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.case-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:white;box-shadow:0 18px 45px rgba(17,35,55,.08);transition:.25s ease}.case-card:hover,.case-card:focus-visible{transform:translateY(-6px);box-shadow:0 24px 60px rgba(17,35,55,.15);outline:none}.case-card figure{margin:0;aspect-ratio:16/9;overflow:hidden;background:#e8eef4}.case-card figure img{width:100%;height:100%;object-fit:cover;object-position:top}.case-card-copy{padding:24px}.case-card-copy>span{color:var(--red);font-size:15px;font-weight:800;letter-spacing:.1em}.case-esai .case-card-copy>span{color:var(--blue)}.case-card h3{margin:8px 0 10px;font-size:27px}.case-card p{min-height:3.2em;margin:0;color:var(--muted);line-height:1.65}.case-card footer{display:flex;justify-content:space-between;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid #edf1f5}.case-card footer b{font-size:17px}.case-card footer i{color:var(--red);font-style:normal;font-weight:700}.case-esai footer i{color:var(--blue)}
.case-site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:18px max(5vw,32px);border-bottom:1px solid rgba(219,228,238,.9);background:rgba(255,255,255,.9);backdrop-filter:blur(18px)}.case-brand{display:flex;flex:0 0 154px;align-items:center;width:154px}.case-site-header .case-brand img{display:block;width:154px;max-width:154px;height:auto}.case-site-header nav{display:flex;gap:26px;color:#415266;font-weight:650}.case-site-header nav a:hover{color:var(--red)}.case-detail-esai .case-site-header nav a:hover{color:var(--blue)}
.case-hero{display:grid;grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);gap:60px;align-items:center;min-height:720px;padding:88px max(6vw,48px);background:linear-gradient(135deg,#fff 0 47%,#eaf1f7 47%)}.case-detail-esai .case-hero{background:linear-gradient(135deg,#fff 0 47%,#e8f3ff 47%)}.case-hero-copy{max-width:670px}.case-hero-copy>p{margin:0 0 18px;color:var(--red);font-weight:800;letter-spacing:.14em}.case-detail-esai .case-hero-copy>p{color:var(--blue)}.case-hero h1{margin:0 0 24px;font-size:clamp(44px,5vw,82px);line-height:1.06;letter-spacing:-.05em}.case-hero-copy>span{display:block;color:#526276;font-size:24px;line-height:1.75}.case-hero ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;margin:30px 0 0;padding:0;list-style:none}.case-hero li{position:relative;padding-left:16px;font-weight:650}.case-hero li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;background:var(--red)}.case-detail-esai .case-hero li:before{background:var(--blue)}.case-hero-preview{margin:0;overflow:hidden;border-radius:22px;background:white;box-shadow:0 30px 70px rgba(16,34,55,.2)}.case-hero-preview>img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top}.case-hero-preview figcaption{display:flex;align-items:center;justify-content:space-between;padding:22px 26px}.case-hero-preview figcaption b{color:#718096}.case-hero-preview figcaption strong{color:var(--red);font-size:23px}.case-detail-esai .case-hero-preview figcaption strong{color:var(--blue)}
.case-source{padding:100px max(6vw,48px);background:white}.case-source>header{max-width:1400px;margin:0 auto 40px}.case-source h2{margin:0 0 10px;font-size:clamp(34px,4vw,58px)}.case-source header span{color:var(--muted);font-size:21px}.case-page-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:1fr;gap:32px}.case-page-grid figure{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#e9eef3;box-shadow:0 14px 40px rgba(13,31,50,.08)}.case-page-grid img{width:100%;height:auto}.case-page-grid figcaption{position:absolute;right:12px;bottom:12px;padding:6px 9px;border-radius:7px;background:rgba(4,17,31,.8);color:#fff;font-size:14px;letter-spacing:.08em}
.case-software{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:64px max(8vw,72px);background:var(--navy);color:white}.case-software h2{margin:0 0 12px;font-size:clamp(30px,3vw,48px)}.case-software span{color:#b7c7d9}.case-software a{flex:none;padding:16px 24px;border-radius:10px;background:var(--red);font-weight:800}.case-detail-esai .case-software a{background:var(--blue)}.case-footer{padding:28px max(6vw,48px);color:#7b8999;background:#07182b;text-align:center}
@media(max-width:1050px){.case-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-hero{grid-template-columns:1fr;min-height:0;background:linear-gradient(180deg,#fff 0 50%,#eaf1f7 50%)}.case-detail-esai .case-hero{background:linear-gradient(180deg,#fff 0 50%,#e8f3ff 50%)}}
@media(max-width:720px){.case-library,.case-source{padding:68px 20px}.case-card-grid,.case-page-grid{grid-template-columns:1fr}.case-site-header{padding:14px 18px}.case-site-header nav a:not(:first-child){display:none}.case-hero{padding:64px 20px;gap:36px}.case-hero ul{grid-template-columns:1fr}.case-software{align-items:flex-start;flex-direction:column;padding:48px 24px}.case-card-copy p{min-height:0}}

/* VDE case library: editorial cards with generated industry imagery. */
.case-library-vde{
  padding:88px clamp(24px,5vw,84px);
  background:radial-gradient(circle at 90% 4%,rgba(220,0,20,.055),transparent 28%),linear-gradient(180deg,#f7f9fb 0%,#eef3f7 100%);
}
.case-library-vde .case-library-heading,.case-library-vde .case-card-grid{max-width:1560px}
.case-library-vde .case-library-heading{margin-bottom:34px}
.case-library-vde .case-library-heading h2{max-width:none;margin-bottom:10px;font-size:clamp(40px,4.2vw,68px)}
.case-library-vde .case-card-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.case-library-vde .case-card{
  grid-column:span 4;display:flex;min-width:0;padding:0;flex-direction:column;align-items:stretch;gap:0;overflow:hidden;
  border:1px solid rgba(15,39,66,.1);border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(15,39,66,.08);
  writing-mode:horizontal-tb;
}
.case-library-vde .case-card:nth-child(n+4){grid-column:span 3}
.case-library-vde .case-card figure{position:relative;width:100%;margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:0;background:#dfe7ee}
.case-library-vde .case-card figure::after{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(3,15,29,.18))}
.case-library-vde .case-card figure img,.case-library-vde .case-card img{
  display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;border-radius:0;
  transition:transform .55s cubic-bezier(.2,.7,.2,1);
}
.case-library-vde .case-card:hover figure img{transform:scale(1.045)}
.case-library-vde .case-card-copy{
  display:flex;min-width:0;min-height:250px;padding:25px 26px 22px;flex:1;flex-direction:column;
  writing-mode:horizontal-tb;word-break:normal;
}
.case-library-vde .case-card-copy>span{display:block;color:#df1624;font-size:15px;line-height:1.3;letter-spacing:.12em;white-space:normal}
.case-library-vde .case-card h3{margin:10px 0 12px;font-size:clamp(21px,1.45vw,27px);line-height:1.22;letter-spacing:-.025em;writing-mode:horizontal-tb}
.case-library-vde .case-card p{min-height:0;margin:0;color:#657386;font-size:18px;line-height:1.72;writing-mode:horizontal-tb}
.case-library-vde .case-card footer{display:flex;margin-top:auto;padding-top:18px;align-items:center;justify-content:space-between;gap:16px}
.case-library-vde .case-card footer b,.case-library-vde .case-card footer i{writing-mode:horizontal-tb;white-space:nowrap}
@media(max-width:1180px){
  .case-library-vde .case-card,.case-library-vde .case-card:nth-child(n+4){grid-column:span 6}
}
@media(max-width:720px){
  .case-library-vde{padding:64px 20px}
  .case-library-vde .case-card-grid{grid-template-columns:1fr;gap:18px}
  .case-library-vde .case-card,.case-library-vde .case-card:nth-child(n+4){grid-column:auto}
  .case-library-vde .case-card-copy{min-height:0;padding:22px}
}
/* ESAI case library: the same readable image-first card system as VDE. */
.case-library-esai{padding:88px clamp(24px,5vw,84px);background:radial-gradient(circle at 90% 4%,rgba(22,132,238,.07),transparent 30%),linear-gradient(180deg,#f7f9fb 0%,#edf4fa 100%)}
.case-library-esai .case-library-heading,.case-library-esai .case-card-grid{max-width:1560px}
.case-library-esai .case-library-heading{margin-bottom:34px}
.case-library-esai .case-library-heading h2{max-width:none;margin-bottom:10px;font-size:clamp(40px,4.2vw,68px)}
.case-library-esai .case-card-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.case-library-esai .case-card{grid-column:span 4;display:flex;min-width:0;padding:0;flex-direction:column;align-items:stretch;gap:0;overflow:hidden;border:1px solid rgba(15,39,66,.1);border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(15,39,66,.08);writing-mode:horizontal-tb}
.case-library-esai .case-card figure{position:relative;width:100%;margin:0;aspect-ratio:16/10;overflow:hidden;border-radius:0;background:#dfe7ee}
.case-library-esai .case-card figure::after{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(3,15,29,.18))}
.case-library-esai .case-card figure img,.case-library-esai .case-card img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;border-radius:0;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.case-library-esai .case-card:hover figure img{transform:scale(1.045)}
.case-library-esai .case-card-copy{display:flex;min-width:0;min-height:250px;padding:25px 26px 22px;flex:1;flex-direction:column;writing-mode:horizontal-tb;word-break:normal}
.case-library-esai .case-card-copy>span{display:block;color:var(--blue);font-size:15px;line-height:1.3;letter-spacing:.12em;white-space:normal}
.case-library-esai .case-card h3{margin:10px 0 12px;font-size:clamp(21px,1.45vw,27px);line-height:1.22;letter-spacing:-.025em;writing-mode:horizontal-tb}
.case-library-esai .case-card p{min-height:0;margin:0;color:#657386;font-size:18px;line-height:1.72;writing-mode:horizontal-tb}
.case-library-esai .case-card footer{display:flex;margin-top:auto;padding-top:18px;align-items:center;justify-content:space-between;gap:16px}
.case-library-esai .case-card footer b,.case-library-esai .case-card footer i{writing-mode:horizontal-tb;white-space:nowrap}
@media(max-width:1180px){.case-library-esai .case-card{grid-column:span 6}}
@media(max-width:720px){.case-library-esai{padding:64px 20px}.case-library-esai .case-card-grid{grid-template-columns:1fr;gap:18px}.case-library-esai .case-card{grid-column:auto}.case-library-esai .case-card-copy{min-height:0;padding:22px}}

/* Compact horizontal case rails shared by the VDE and ESAI product pages. */
.case-library-vde,.case-library-esai{--case-accent:#df1624;padding:72px clamp(24px,5vw,84px) 62px}
.case-library-esai{--case-accent:var(--blue)}
.case-library-vde .case-library-heading,.case-library-esai .case-library-heading{margin-bottom:26px}
.case-library-vde .case-library-heading h2,.case-library-esai .case-library-heading h2{margin-bottom:8px;font-size:clamp(36px,3.5vw,58px)}
.case-library-vde .case-card-grid,.case-library-esai .case-card-grid{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(310px,27vw,400px);grid-template-columns:none;gap:20px;padding:3px 3px 17px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:3px;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--case-accent) 48%,#cbd5df) transparent}
.case-library-vde .case-card-grid::-webkit-scrollbar,.case-library-esai .case-card-grid::-webkit-scrollbar{height:7px}
.case-library-vde .case-card-grid::-webkit-scrollbar-track,.case-library-esai .case-card-grid::-webkit-scrollbar-track{background:rgba(117,134,153,.13);border-radius:999px}
.case-library-vde .case-card-grid::-webkit-scrollbar-thumb,.case-library-esai .case-card-grid::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--case-accent) 52%,#9aa8b7);border-radius:999px}
.case-library-vde .case-card,.case-library-vde .case-card:nth-child(n+4),.case-library-esai .case-card{grid-column:auto;display:flex;min-width:0;min-height:430px;padding:0;flex-direction:column;align-items:stretch;gap:0;overflow:hidden;border-radius:18px;box-shadow:0 12px 32px rgba(15,39,66,.075);scroll-snap-align:start}
.case-library-vde .case-card:hover,.case-library-esai .case-card:hover{transform:translateY(-3px)}
.case-library-vde .case-card figure,.case-library-esai .case-card figure{aspect-ratio:16/9}
.case-library-vde .case-card-copy,.case-library-esai .case-card-copy{min-height:220px;padding:21px 22px 19px}
.case-library-vde .case-card h3,.case-library-esai .case-card h3{margin:8px 0 10px;font-size:clamp(20px,1.3vw,24px);line-height:1.25}
.case-library-vde .case-card p,.case-library-esai .case-card p{display:-webkit-box;min-height:0;overflow:hidden;font-size:17px;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.case-library-vde .case-card footer,.case-library-esai .case-card footer{padding-top:15px}
@media(max-width:720px){.case-library-vde,.case-library-esai{padding:56px 20px 48px}.case-library-vde .case-library-heading,.case-library-esai .case-library-heading{margin-bottom:22px}.case-library-vde .case-card-grid,.case-library-esai .case-card-grid{grid-template-columns:none;grid-auto-columns:min(82vw,340px);gap:15px;padding-bottom:14px}.case-library-vde .case-card,.case-library-vde .case-card:nth-child(n+4),.case-library-esai .case-card{grid-column:auto;min-height:405px}.case-library-vde .case-card-copy,.case-library-esai .case-card-copy{min-height:210px;padding:19px 20px 17px}}
@media(prefers-reduced-motion:reduce){.case-library-vde .case-card figure img,.case-library-esai .case-card figure img{transition:none}}
.case-card-cover-pending{display:grid;width:100%;height:100%;place-items:center;color:#718096;background:#e8eef4;font-weight:700}.case-library-empty{grid-column:1/-1;margin:0;padding:42px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);background:#fff;text-align:center}
