@font-face {
  font-family: "IBM Plex Sans";
  src: url("/website-assets/fonts/ibm-plex-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
}
.ztw-body {
  --ztw-ink: #18344d;
  --ztw-muted: #52677a;
  --ztw-paper: #ffffff;
  --ztw-line: #dce5ec;
  --ztw-blue: #246ba0;
  --ztw-soft: #f1f6fa;
  margin: 0;
  background: var(--ztw-paper);
  color: var(--ztw-ink);
  font: 400 17px/1.65 "IBM Plex Sans", sans-serif;
}
.ztw-body ::selection { background: #c9e2f5; color: #18344d; }
.ztw-body { scrollbar-color: #8ca9bf #f1f6fa; }
.ztw-body :where(.ztw-header,.ztw-footer,main,.ztw-shop-frame) * { box-sizing: border-box; }
.ztw-body :where(h1,h2,h3,p,figure) { margin: 0; }
.ztw-body :where(h1,h2,h3) { text-wrap: balance; line-height: 1.18; letter-spacing: -.025em; font-weight: 600; }
.ztw-body h1 { font-size: clamp(2.5rem,4.3vw,3.65rem); }
.ztw-body h2 { font-size: clamp(1.8rem,3vw,2.65rem); }
.ztw-body h3 { font-size: 1.3rem; letter-spacing: -.012em; }
.ztw-body a { color: inherit; text-underline-offset: .23em; }
.ztw-body :where(a,button,input):focus-visible { outline: 3px solid #246ba0; outline-offset: 5px; }
.ztw-body img { max-width: 100%; height: auto; display: block; }
.ztw-wrap { width: min(1120px,calc(100% - 80px)); margin-inline: auto; }
.ztw-skip { position: fixed; left: 12px; top: -100px; z-index: 20; padding: 12px; background: white; }
.ztw-skip:focus { top: 12px; }
.ztw-header-shell { position: sticky; top: 0; z-index: 10; background: #fff; border-bottom: 1px solid var(--ztw-line); }
.ztw-body [id] { scroll-margin-top: 150px; }
.ztw-header { max-width: 1280px; padding: 16px 40px; display: flex; align-items: center; gap: 32px; margin: auto; }
.ztw-brand { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; font-size: 18px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap; }
.ztw-brand img { width: 30px; height: 32px; object-fit: contain; }
.ztw-nav { display: flex; align-items: center; gap: 24px; margin-left: auto; font-size: 14px; }
.ztw-nav a,.ztw-language { text-decoration: none; }
.ztw-nav a:hover,.ztw-nav a[aria-current] { color: var(--ztw-blue); }
.ztw-header-actions { display: flex; align-items: center; gap: 22px; }
.ztw-language { font-size: 13px; }
.ztw-button { display: inline-flex; align-items: center; justify-content: center; background: var(--ztw-blue); color: #fff !important; padding: 13px 24px; border-radius: 5px; text-decoration: none; font-weight: 500; line-height: 1.4; transition: background .15s ease-out; }
.ztw-button:hover { background: #194e78; }
.ztw-small { padding: 11px 17px; font-size: 14px; }
.ztw-hero { padding-top: 62px; text-align: center; }
.ztw-hero-copy { max-width: 810px; margin: auto; }
.ztw-hero h1 { max-width: 760px; margin-inline: auto; }
.ztw-lead { font-size: 20px; color: var(--ztw-muted); max-width: 700px; margin-top: 24px; line-height: 1.55; }
.ztw-hero .ztw-lead { margin-inline: auto; }
.ztw-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 28px; margin-top: 30px; }
.ztw-hero .ztw-actions { justify-content: center; }
.ztw-text-link { font-weight: 500; color: var(--ztw-blue) !important; text-decoration: none; }
.ztw-text-link:hover { text-decoration: underline; }
.ztw-product-shot { max-width: 1040px; margin: 48px auto 0; padding: 10px 10px 0; background: #edf3f8; border-radius: 10px; box-shadow: 0 18px 50px #00000014; text-align: left; }
.ztw-product-shot img { width: 100%; border-radius: 4px; }
.ztw-product-shot figcaption { font-size: 12px; padding: 10px 4px; color: #52677a; }
.ztw-promise { margin-top: 66px; padding: 58px 0; background: var(--ztw-soft); }
.ztw-promise-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ztw-promise h2 { font-size: 2rem; }
.ztw-promise p { color: var(--ztw-muted); font-size: 18px; }
.ztw-features { padding-block: 88px; }
.ztw-section-heading { display: flex; justify-content: space-between; gap: 40px; align-items: end; }
.ztw-section-heading h2 { max-width: 670px; }
.ztw-section-heading>a { flex-shrink: 0; }
.ztw-feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 46px; }
.ztw-feature-grid article { border-top: 1px solid var(--ztw-line); padding-top: 22px; }
.ztw-step { color: var(--ztw-blue); font-size: 14px; font-weight: 500; display: block; margin-bottom: 18px; font-variant-numeric: tabular-nums; }
.ztw-feature-grid p { color: var(--ztw-muted); margin-top: 16px; }
.ztw-editorial { display: grid; grid-template-columns: 1fr 1.15fr; gap: 72px; align-items: center; padding-block: 24px 88px; }
.ztw-editorial h2 { max-width: 510px; }
.ztw-editorial p { margin-top: 22px; color: var(--ztw-muted); }
.ztw-editorial .ztw-text-link { display: inline-block; margin-top: 24px; }
.ztw-editorial figure { padding: 18px; background: var(--ztw-soft); border-radius: 8px; }
.ztw-editorial img { border-radius: 3px; }
.ztw-ai { background: var(--ztw-soft); }
.ztw-ai .ztw-editorial { padding-block: 72px; }
.ztw-ai-note { border-left: 1px solid #cbdbe8; padding: 28px 0 28px 50px; }
.ztw-ai-note a { display: inline-block; margin-top: 24px; color: var(--ztw-blue); font-weight: 500; text-decoration: none; }
.ztw-ai-note a:hover { text-decoration: underline; }
.ztw-home-body { padding-block: 80px; }
.ztw-home-body h2 { max-width: 800px; }
.ztw-home-body p { max-width: 75ch; }
.ztw-cta { background: #e6eff7; padding: 58px 0; }
.ztw-cta>.ztw-wrap { display: flex; align-items: center; justify-content: space-between; gap: 55px; }
.ztw-cta h2 { font-size: 2rem; max-width: 600px; }
.ztw-cta p { margin-top: 18px; max-width: 620px; color: #405c75; }
.ztw-cta .ztw-actions { flex-shrink: 0; flex-direction: column; align-items: flex-start; margin: 0; gap: 16px; }
.ztw-footer { padding: 58px 40px 26px; background: #fff; border-top: 1px solid var(--ztw-line); }
.ztw-footer-top,.ztw-footer-bottom { max-width: 1120px; margin: auto; display: flex; justify-content: space-between; gap: 60px; }
.ztw-footer p { color: var(--ztw-muted); margin-top: 22px; max-width: 350px; font-size: 15px; }
.ztw-footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 65px; align-content: start; font-size: 14px; }
.ztw-footer-links a,.ztw-footer-bottom a { text-decoration: none; }
.ztw-footer a:hover { text-decoration: underline; }
.ztw-footer-bottom { border-top: 1px solid var(--ztw-line); margin-top: 45px; padding-top: 22px; font-size: 12px; color: var(--ztw-muted); }
.ztw-footer-bottom>div { display: flex; gap: 25px; }
.ztw-page-intro { padding-block: 58px 48px; }
.ztw-page-intro h1 { max-width: 950px; }
.ztw-page-image { margin-bottom: 55px; padding: 16px; background: var(--ztw-soft); border-radius: 8px; }
.ztw-page-image img { max-height: 650px; width: 100%; object-fit: contain; }
.ztw-article-layout { display: grid; grid-template-columns: minmax(0,780px) 220px; gap: 80px; padding-bottom: 80px; }
.ztw-prose h2 { font-size: 1.9rem; margin: 46px 0 20px; }
.ztw-prose h2:first-child { margin-top: 0; }
.ztw-prose h3 { margin: 30px 0 14px; }
.ztw-prose p,.ztw-prose ul,.ztw-prose ol { margin: 18px 0; }
.ztw-prose li { margin: 8px 0; }
.ztw-prose a { color: var(--ztw-blue); }
.ztw-prose table { border-collapse: collapse; width: 100%; font-size: .93rem; }
.ztw-prose :where(th,td) { border-bottom: 1px solid var(--ztw-line); text-align: left; padding: 15px 10px; }
.ztw-related { border-left: 1px solid var(--ztw-line); padding-left: 25px; align-self: start; }
.ztw-related h2 { font-size: 1rem; margin-bottom: 20px; }
.ztw-related a { display: block; font-size: 14px; margin: 14px 0; text-decoration: none; }
.ztw-choice-layout { display: grid; grid-template-columns: 1fr 400px; gap: 70px; padding-bottom: 80px; }
.ztw-action-panel { background: var(--ztw-soft); padding: 32px; border-radius: 8px; align-self: start; }
.ztw-action-panel h2 { font-size: 1.7rem; }
.ztw-action-panel p { margin: 22px 0; }
.ztw-action-panel .ztw-text-link { display: block; width: fit-content; margin-top: 23px; }
.ztw-downloads { padding-bottom: 80px; }
.ztw-downloads>h2 { font-size: 1.8rem; }
.ztw-downloads>p { margin-top: 15px; color: var(--ztw-muted); max-width: 800px; }
.ztw-download-list { margin: 35px 0 55px; }
.ztw-download-list>a { display: block; text-decoration: none; border-top: 1px solid var(--ztw-line); padding: 24px 0; }
.ztw-download-list>a:hover h3 { color: var(--ztw-blue); text-decoration: underline; }
.ztw-download-list>a:last-child { padding-bottom: 0; }
.ztw-download-list h3 { font-size: 1.3rem; }
.ztw-download-list p { color: var(--ztw-muted); font-size: .93rem; margin-top: 8px; }
.ztw-maintenance { background: var(--ztw-soft); padding: 32px; margin-block: 30px; }
.ztw-maintenance h2 { font-size: 1.7rem; }
.ztw-maintenance>p { margin: 18px 0; }
.ztw-maintenance .ztw-download-list { margin-bottom: 0; }
.ztw-download-archive { margin-block: 40px 48px; }
.ztw-download-archive summary { display: flex; align-items: center; gap: 16px; cursor: pointer; list-style: none; }
.ztw-download-archive summary h2 { display: inline; font-size: 1.9rem; }
.ztw-download-archive summary::-webkit-details-marker { display: none; }
.ztw-download-archive summary::after { content: ""; width: 10px; height: 10px; border-right: 2px solid var(--ztw-blue); border-bottom: 2px solid var(--ztw-blue); transform: rotate(-45deg); flex-shrink: 0; }
.ztw-download-archive[open] summary::after { transform: rotate(45deg); }
.ztw-download-archive summary:focus-visible { outline: 2px solid var(--ztw-blue); outline-offset: 6px; }
.ztw-download-archive>p { margin-block: 20px 12px; }
.ztw-download-archive li { margin-block: 8px; }
.ztw-shop-frame { min-height: 400px; }
@media(max-width:1100px) {
  .ztw-header { flex-wrap: wrap; gap: 18px; padding: 20px 40px; }
  .ztw-header-actions { margin-left: auto; }
  .ztw-nav { order: 3; width: 100%; justify-content: center; gap: 30px; margin: 0; }
  .ztw-article-layout { gap: 40px; }
  .ztw-choice-layout { gap: 40px; grid-template-columns: 1fr 350px; }
}
@media(max-width:850px) {
  .ztw-wrap { width: calc(100% - 40px); }
  .ztw-header { padding: 20px; }
  .ztw-hero { padding-top: 40px; }
  .ztw-promise-inner { gap: 35px; }
  .ztw-feature-grid { gap: 24px; }
  .ztw-editorial { gap: 35px; }
  .ztw-article-layout { grid-template-columns: 1fr; }
  .ztw-related { border-left: 0; border-top: 1px solid var(--ztw-line); padding: 25px 0 0; }
  .ztw-related a { display: inline-block; margin-right: 25px; }
  .ztw-choice-layout { grid-template-columns: 1fr; }
  .ztw-choice-layout .ztw-action-panel { order: -1; }
  .ztw-cta>.ztw-wrap { display: block; }
  .ztw-cta .ztw-actions { margin-top: 25px; flex-direction: row; }
  .ztw-ai-note { padding-left: 35px; }
}
@media(max-width:580px) {
  .ztw-header { gap: 16px 10px; }
  .ztw-brand { font-size: 16px; }
  .ztw-brand img { width: 25px; }
  .ztw-header-actions { gap: 14px; }
  .ztw-header-actions .ztw-button { display: none; }
  .ztw-language { font-size: 13px; }
  .ztw-nav { justify-content: space-between; font-size: 13px; gap: 12px; flex-wrap: wrap; }
  .ztw-hero { text-align: left; padding-top: 34px; }
  .ztw-hero h1 { font-size: 2.6rem; }
  .ztw-lead { font-size: 18px; margin-top: 22px; }
  .ztw-actions { gap: 22px; font-size: 15px; }
  .ztw-hero .ztw-actions { justify-content: flex-start; }
  .ztw-button { padding: 13px 18px; }
  .ztw-product-shot { padding: 5px 5px 0; margin-top: 34px; border-radius: 6px; }
  .ztw-product-shot figcaption { font-size: 11px; padding: 8px 3px; }
  .ztw-promise { margin-top: 38px; padding-block: 38px; }
  .ztw-promise-inner { grid-template-columns: 1fr; gap: 22px; }
  .ztw-promise h2 { font-size: 1.7rem; }
  .ztw-promise p { font-size: 17px; }
  .ztw-features { padding-block: 50px; }
  .ztw-section-heading { display: block; }
  .ztw-section-heading>a { display: inline-block; margin-top: 22px; }
  .ztw-feature-grid { grid-template-columns: 1fr; margin-top: 30px; gap: 26px; }
  .ztw-feature-grid article { display: grid; grid-template-columns: 30px 1fr; gap: 12px; }
  .ztw-step { margin: 0; }
  .ztw-feature-grid p { grid-column: 2; margin-top: 0; font-size: 16px; }
  .ztw-editorial { grid-template-columns: 1fr; padding-block: 20px 50px; }
  .ztw-editorial figure { padding: 10px; }
  .ztw-ai .ztw-editorial { padding-block: 45px; }
  .ztw-ai-note { padding: 26px 0 0; border-left: 0; border-top: 1px solid #cbdbe8; }
  .ztw-home-body { padding-block: 50px; }
  .ztw-cta { padding-block: 40px; }
  .ztw-cta h2 { font-size: 1.8rem; }
  .ztw-footer { padding: 40px 20px 25px; }
  .ztw-footer-top { display: block; }
  .ztw-footer-links { margin-top: 30px; gap: 12px 25px; }
  .ztw-footer-bottom { display: block; margin-top: 35px; }
  .ztw-footer-bottom>div { flex-wrap: wrap; gap: 18px; margin-top: 15px; }
  .ztw-page-intro { padding-block: 35px; }
  .ztw-page-intro h1 { font-size: 2.3rem; }
  .ztw-prose h2 { font-size: 1.7rem; }
  .ztw-prose table { display: block; overflow-x: auto; }
  .ztw-action-panel,.ztw-maintenance { padding: 25px; }
}
@media(prefers-reduced-motion:reduce) { .ztw-button { transition: none; } }

.ztw-form-page { max-width: 840px; padding-bottom: 80px; }
.ztw-form { display: grid; gap: 22px; padding-bottom: 48px; }
.ztw-form label { display: grid; gap: 8px; font-weight: 500; }
.ztw-form input:not([type=checkbox]), .ztw-form textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 12px 14px; border: 1px solid #a7b8c6; border-radius: 4px; background: white; color: #18344d; font: inherit; }
.ztw-form .ztw-consent { display: flex; align-items: start; gap: 12px; font-weight: 400; }
.ztw-consent input { margin-top: 7px; }
.ztw-form-note { color: #52677a; border-left: 3px solid #246ba0; padding-left: 16px; }
.ztw-form button { justify-self: start; cursor: pointer; font: inherit; }
.ztw-form button:disabled { opacity: .6; cursor: wait; }
.ztw-form-status { margin: 0; padding: 16px 20px; border: 1px solid #b8c8d5; border-radius: 4px; background: #f1f6fa; color: #18344d; }
.ztw-form-status[data-state="success"] { border-color: #9ac7ae; background: #edf7f0; color: #205b39; }
.ztw-form-status[data-state="error"] { border-color: #dda7a7; background: #fcf0f0; color: #8b2929; }
.ztw-form-status:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ztw-form-status:empty { display: none; }

/* The website owns the frame; Shop components own their content styles. */
html:has(.ztw-shop-frame) { color-scheme: light; }
.ztw-shop-frame { background: white; color: #18344d; padding: 48px 0 72px; }
.ztw-shop-title { padding-bottom: 32px; }
.ztw-shop-frame:has(.zf-main h1) > .ztw-shop-title { display: none; }
.ztw-body .zf-main { max-width: 1120px; width: calc(100% - 80px); margin: 0 auto; padding: 0; font: inherit; }
@media (max-width: 650px) { .ztw-body .zf-main { width: calc(100% - 40px); } }

/* Crop only the recorded browser scrollbar; retain the authentic source capture. */
.ztw-browser-shot { position: relative; aspect-ratio: var(--shot-ratio); width: 100%; overflow: hidden; border: 1px solid #ccd6de; border-radius: 3px; background: white; }
.ztw-page-image .ztw-browser-shot { max-height: 650px; width: auto; max-width: 100%; margin-inline: auto; }
.ztw-body .ztw-browser-shot img { position: absolute; inset: 0 auto auto 0; width: auto; height: 100%; max-width: none; max-height: none; object-fit: initial; }

.ztw-download-start { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 32px; margin-block: 32px; }
.ztw-download-start article { border: 1px solid var(--ztw-line); border-top: 3px solid var(--ztw-blue); border-radius: 4px; padding: 28px; }
.ztw-download-start h2 { font-size: 1.5rem; }
.ztw-download-start p { margin-block: 16px 24px; color: var(--ztw-muted); }
.ztw-download-start .ztw-text-link { display: block; margin-top: 18px; }
