@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--ink:#15363f;--muted:#536b73;--accent:#006c71;--deep:#103d49;--line:#dbe5e8;--wash:#f3f7f8;--blue:#d3f0f2;--paper:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.7 'DM Sans',system-ui,sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:hover{color:#044c57}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #1596a3;outline-offset:4px}h1,h2,h3{font-family:Manrope,'DM Sans',system-ui,sans-serif;line-height:1.18;color:var(--ink);font-weight:750;letter-spacing:-.035em}h1{font-size:clamp(2.4rem,4vw,3.6rem);margin:.35em 0 .7em}h2{font-size:2rem;margin:2.2rem 0 1rem}h3{font-size:1.3rem}p{margin:.7em 0 1.2em}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 3.5%;gap:24px;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:20}header nav{display:flex;gap:26px}header nav a{font-size:14px;font-weight:600;text-decoration:none;color:var(--muted)}header nav a.active{color:var(--accent)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:Manrope,system-ui;font-size:24px;font-weight:800;letter-spacing:-.045em;color:var(--ink);white-space:nowrap}.brand-mark{background:var(--deep);color:white;width:37px;height:37px;border-radius:8px;font-size:18px;display:flex;align-items:center;justify-content:center;letter-spacing:-3px;padding-right:3px;transform:rotate(-5deg)}.brand-mark span{color:#90e4dc}.brand-docs{font:14px 'DM Sans',system-ui;letter-spacing:0;color:var(--muted);margin-left:2px}.header-actions{display:flex;gap:20px;align-items:center}.github{font-size:14px;white-space:nowrap;text-decoration:none}#search-open{border:1px solid var(--line);border-radius:7px;padding:6px 10px;color:var(--muted);background:var(--wash);font-size:14px;display:flex;gap:30px;align-items:center}kbd{font:12px 'IBM Plex Mono',monospace;border:1px solid #d5e1e5;padding:0 5px;border-radius:3px}#menu-toggle{display:none;background:transparent;border:0;font-size:24px;color:var(--ink)}.home{max-width:1320px;margin:auto;padding:0 48px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:84px 0 68px;align-items:center}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;line-height:1.5;color:var(--accent)}.hero h1{font-size:clamp(3.4rem,5.3vw,5.3rem);font-weight:800;line-height:1.06;letter-spacing:-.065em;margin:22px 0 27px}.lead{font-size:1.2rem;line-height:1.7;color:var(--muted);max-width:760px}.hero .lead{max-width:440px}.actions{display:flex;align-items:center;gap:25px;margin:30px 0 18px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--deep);color:#fff;text-decoration:none;font-size:14px;font-weight:600;border-radius:6px;padding:14px 20px}.button:hover{background:#075b66;color:white}.text-link{font-size:14px;font-weight:600}.fine{font-size:13px;color:var(--muted);letter-spacing:.02em}.hero-code{border-radius:13px;background:#102e38;color:#d3e9ed;box-shadow:0 24px 50px -25px #0d47525c;overflow:hidden;border:1px solid #244a56;transform:rotate(.6deg)}.code-title{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff20;padding:13px 21px;font:12px 'IBM Plex Mono',monospace;color:#b5cdd3}.hero-code pre{border:0;background:transparent;color:#d4eeee;margin:0;padding:23px;font-size:13px;border-radius:0}.hero-code .copy-button{color:#c8e4e5;background:#22444f;border-color:#3b5c65}.code-result{font-size:13px;padding:12px 21px;border-top:1px solid #ffffff20;color:#b6dedc;background:#1a424b}.code-result span{color:#9ee6d6;margin-right:8px}.principles{display:grid;grid-template-columns:repeat(3,1fr);padding:28px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:44px}.principles span{font:12px 'IBM Plex Mono',monospace;color:var(--accent);letter-spacing:.07em}.principles h3{font-size:18px;letter-spacing:-.02em;margin:12px 0}.principles p{font-size:15px;color:var(--muted);margin:0}.section{padding:66px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:28px}.section-heading h2{margin:10px 0 0;font-size:2.3rem}.section-heading p{max-width:330px;color:var(--muted);font-size:15px;margin:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{display:flex;flex-direction:column;align-items:start;text-decoration:none;border:1px solid var(--line);padding:25px 26px 22px;border-radius:9px;transition:background .15s,border-color .15s;min-width:0}.card:hover{background:var(--wash);border-color:#5f9ea5}.card h3{font-size:21px;line-height:1.3;overflow-wrap:anywhere;margin:18px 0 13px}.card p{font-size:15px;line-height:1.65;color:var(--muted);margin:0 0 22px}.card-end{font-size:14px;font-weight:600;margin-top:auto}.install-band{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:var(--wash);padding:34px 40px;border-radius:10px;align-items:center}.install-band h2{margin:12px 0;font-size:28px}.install-band p{font-size:15px;color:var(--muted);margin:0}.notice{background:#f0f7f8;border-left:3px solid #448b97;padding:16px 20px;font-size:15px;margin:26px 0 40px}.doc-layout{display:grid;grid-template-columns:235px minmax(0,830px) 185px;max-width:1450px;margin:auto;gap:44px;padding:38px 38px 75px}.sidebar{border-right:1px solid var(--line);padding-right:24px;position:sticky;top:114px;height:calc(100vh - 140px);overflow-y:auto;scrollbar-width:thin;font-size:14px}.side-label{display:block;letter-spacing:.1em;font-size:11px;font-weight:700;color:#6b8289;margin:10px 0 13px}.sidebar a{display:block;text-decoration:none;color:var(--muted);padding:7px 10px;margin:3px 0;border-radius:5px;overflow-wrap:anywhere}.sidebar a.active{background:#e5f2f3;color:#065d69;font-weight:600}.sidebar .side-label:not(:first-child){margin-top:28px}.article{min-width:0;padding:5px 0;max-width:850px}.breadcrumb{font-size:13px;color:var(--muted);margin:0 0 25px}.breadcrumb span{padding:0 10px;color:#96a6ac}.article h1{font-size:clamp(2rem,3.2vw,3rem);overflow-wrap:anywhere}.article h2{font-size:1.7rem;margin-top:2.7rem;padding-top:12px}.article h3{margin-top:1.7rem}.article .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.article .card h3{margin-top:14px}.article ul,.article ol{padding-left:24px}.article li{margin:.45rem 0}.toc{position:sticky;top:115px;height:fit-content;max-height:calc(100vh - 150px);overflow-y:auto;border-left:1px solid var(--line);padding-left:20px}.toc a{display:block;font-size:12px;line-height:1.5;color:var(--muted);text-decoration:none;margin:12px 0}.toc a:hover{color:var(--accent)}pre{position:relative;padding:25px 24px;background:#f2f6f8;border:1px solid #dce7eb;border-radius:8px;font:14px/1.8 'IBM Plex Mono',ui-monospace,monospace;overflow:auto;color:#224e5b;tab-size:2;max-width:100%;margin:23px 0}code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.88em;overflow-wrap:anywhere;background:#eef4f6;padding:.12em .25em;border-radius:3px}pre code{font-size:inherit;background:transparent;padding:0;overflow-wrap:normal}.copy-button{position:absolute;right:8px;top:7px;border:1px solid var(--line);background:#fff;color:var(--muted);padding:1px 7px;border-radius:4px;font:11px/1.7 'DM Sans',system-ui;opacity:0}pre:hover .copy-button,.copy-button:focus{opacity:1}.meta-row{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:24px 0}.meta-row span{background:var(--wash);padding:3px 10px;border-radius:4px}.function-list{border-top:1px solid var(--line);margin-top:22px}.function-list>a{display:flex;align-items:baseline;justify-content:space-between;gap:22px;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none}.function-list code{background:transparent;padding:0;flex:0 1 45%;font-size:14px;overflow-wrap:anywhere}.function-list span{font-size:14px;color:var(--muted);flex:1}.function-list a:hover{background:var(--wash)}.source-note{margin-top:55px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.chapter-nav{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);margin-top:45px;padding-top:24px;font-size:15px}.screenshot{margin:30px 0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--wash)}.screenshot img{display:block;width:100%;height:auto}.screenshot figcaption{font-size:13px;line-height:1.5;color:var(--muted);padding:14px 18px}table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto;margin:24px 0}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);min-width:100px;vertical-align:top}th{background:var(--wash);font-weight:600}dl{margin:22px 0}dt{font:14px 'IBM Plex Mono',monospace;margin-top:24px;color:var(--accent);overflow-wrap:anywhere}dd{margin:8px 0 20px;line-height:1.8}.reference-description{font-size:1.1rem}footer{background:var(--deep);color:#c1d8de;padding:44px max(5%,calc((100vw - 1224px)/2));margin-top:45px;display:grid;grid-template-columns:1fr 1fr;gap:12px 40px}footer .brand{color:white}footer p{font-size:14px;margin:0}footer div{display:flex;gap:25px;flex-wrap:wrap;font-size:13px}footer a{color:#d2edf1;text-decoration:none}footer small{font-size:12px;grid-column:1/-1;margin-top:24px;color:#a6c4cc}dialog{padding:25px;border:1px solid var(--line);border-radius:13px;width:min(680px,calc(100vw - 32px));max-height:80vh;color:var(--ink);box-shadow:0 25px 100px #0004}dialog::backdrop{background:#102e38aa;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:21px;margin:0 0 20px}.dialog-head button{border:0;background:transparent;color:var(--muted);font-size:22px}#search-input{width:100%;padding:12px 14px;border:1px solid #9bb8c1;border-radius:7px;background:var(--wash);color:var(--ink)}#search-results{max-height:50vh;overflow-y:auto;margin-top:18px}#search-results a{display:block;text-decoration:none;padding:12px 10px;border-bottom:1px solid var(--line)}#search-results small{display:block;color:var(--muted)}.skip{position:fixed;top:-100px;left:16px;background:#fff;padding:10px;z-index:99}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}img{max-width:100%}
@media(min-width:1500px){.hero{padding-top:105px;padding-bottom:88px}}@media(max-width:1190px){header nav{gap:16px}.brand-docs,.github{display:none}.doc-layout{grid-template-columns:210px minmax(0,1fr);gap:32px}.toc{display:none}.hero{gap:35px}.hero-code pre{font-size:12px}.home{padding:0 35px}.hero h1{font-size:4rem}}@media(max-width:900px){header{height:74px;padding:0 24px}header nav{display:none;position:absolute;top:73px;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:20px 24px;flex-wrap:wrap}body.menu-open header nav{display:flex}#menu-toggle{display:block}.hero{grid-template-columns:1fr;padding-top:48px;gap:32px}.hero .lead{max-width:600px}.hero-code{transform:none;max-width:100%}.hero-code pre{font-size:14px}.hero h1{font-size:4.5rem}.principles{gap:24px}.cards{grid-template-columns:1fr}.section-heading{display:block}.section-heading p{max-width:100%;margin-top:20px}.install-band{grid-template-columns:1fr;gap:15px}.doc-layout{grid-template-columns:180px minmax(0,1fr);padding:30px 22px;gap:25px}.article .cards{grid-template-columns:1fr}.sidebar{font-size:13px}.card{padding:22px}.section{padding:45px 0}}@media(max-width:620px){.home{padding:0 22px}header{padding:0 20px;gap:12px}.header-actions{gap:12px}.brand{font-size:22px}#search-open{font-size:13px;gap:12px}.brand-mark{width:30px;height:30px;font-size:16px}.hero{padding:44px 0 38px}.hero h1{font-size:3.55rem;margin-top:18px}.lead{font-size:1.1rem}.hero-code pre{font-size:12px;padding:18px}.principles{grid-template-columns:1fr;gap:24px;padding:28px 0}.principles h3{margin:8px 0}.principles p{max-width:400px}.section-heading h2{font-size:1.95rem}.install-band{padding:24px}.install-band pre{font-size:12px;padding:16px}.sidebar{display:none}.doc-layout{display:block;padding:25px 22px 45px}.article h1{font-size:2.3rem}.article h2{font-size:1.55rem}.function-list>a{display:block}.function-list span{display:block;margin-top:7px}.chapter-nav{font-size:14px}pre{font-size:12px;padding:23px 15px}.copy-button{opacity:1}footer{grid-template-columns:1fr;padding:34px 24px}footer small{grid-column:1}.screenshot{margin-left:0;margin-right:0}.toc{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0}.feature-card{border:1px solid var(--line);border-radius:9px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;background:var(--paper)}.feature-card:hover{border-color:#5f9ea5;background:var(--wash)}.feature-card>img{display:block;width:100%;height:auto;border-bottom:1px solid var(--line)}.feature-card>div{padding:22px;display:flex;flex-direction:column;flex:1}.feature-card h3{margin:12px 0!important;font-size:21px}.feature-card p{font-size:15px;color:var(--muted)}.feature-command{padding:16px 20px;background:var(--wash);border-left:3px solid var(--accent)}.feature-screenshot figcaption a{display:inline-block;margin-top:8px}.feature-screenshot img{height:auto}@media(max-width:900px){.feature-grid{grid-template-columns:1fr}}

@media(min-width:901px){.doc-layout:has(.feature-screenshot){grid-template-columns:210px minmax(0,1040px)}.article:has(.feature-screenshot){max-width:none}.doc-layout:has(.feature-screenshot)>.toc{display:none}}

/* The training course shares the documentation shell and code controls. */
.training-path{display:flex;gap:22px;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}.training-number{font:22px 'IBM Plex Mono',monospace;color:var(--accent);padding-top:3px}.training-path>span:last-child{display:flex;flex-direction:column;gap:9px}.training-path strong{font-size:21px;line-height:1.35}.training-path span span{color:var(--muted);font-size:15px}.training-path small{color:var(--accent)}.training-path:hover{background:var(--wash)}.training-context{font-size:13px;color:var(--muted);padding-bottom:20px;border-bottom:1px solid var(--line)}.training-task{background:var(--wash);padding:16px 20px;border-left:3px solid var(--accent)}.training-solution{border:1px solid var(--line);border-radius:7px;margin:16px 0;padding:13px 18px}.training-solution summary{cursor:pointer;font-weight:600;color:var(--accent)}.training-solution p{margin-bottom:0}.training-note strong{color:var(--ink)}@media(max-width:620px){.training-path{gap:15px}.training-path strong{font-size:18px}.chapter-nav{flex-wrap:wrap}}

/* The beginner story uses the same visual language as the technical guides. */
.story-teaser{display:flex;align-items:center;justify-content:space-between;gap:36px;margin:8px 0 52px;padding:30px 36px;border:1px solid #b5d9dc;border-radius:12px;background:#edf7f7}.story-teaser h2{font-size:clamp(1.5rem,2.5vw,2.2rem);margin:8px 0 10px}.story-teaser p{max-width:690px;margin:0 0 8px}.story-teaser .button{flex-shrink:0}.story-flow{list-style:none!important;padding:0!important;margin:26px 0 34px!important;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;counter-reset:step}.story-flow li{counter-increment:step;display:flex;flex-direction:column;gap:7px;min-width:0;margin:0!important;padding:17px 14px;border:1px solid var(--line);border-radius:8px;background:var(--wash);font-size:13px;line-height:1.5}.story-flow li::before{content:counter(step,decimal-leading-zero);font:12px 'IBM Plex Mono',monospace;color:var(--accent)}.story-flow strong{font-size:15px}.story-flow span{color:var(--muted)}@media(max-width:1160px){header nav{display:none;position:absolute;top:73px;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:20px 24px;flex-wrap:wrap}body.menu-open header nav{display:flex}#menu-toggle{display:block}header{height:74px}.story-flow{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.story-teaser{display:block;padding:24px;margin-bottom:30px}.story-teaser .button{margin-top:18px}.story-flow{grid-template-columns:1fr 1fr}}@media(max-width:480px){.story-flow{grid-template-columns:1fr}}
/* The homepage introduces the product before the detailed report walkthrough. */
.hero-overview{padding:clamp(60px,7vw,108px) 0 12px}
.hero-opening{text-align:center;max-width:790px;margin:0 auto 74px}
.hero-opening h1{font-size:clamp(4rem,8vw,7rem);letter-spacing:-.075em;line-height:1.02;margin:19px 0 24px}
.hero-opening h1 span{color:var(--accent)}
.hero-opening p{font-size:clamp(1.08rem,1.5vw,1.32rem);line-height:1.6;color:var(--muted);max-width:680px;margin:0 auto 28px}
.hero-opening .button{font-size:15px;padding:15px 20px}
.journey{position:relative;border:1px solid #c8e1e0;border-radius:18px;background:linear-gradient(150deg,#e9f7f4 0%,#f5f9f8 46%,#eaf2f5 100%);padding:36px clamp(22px,3vw,42px) 24px;overflow:hidden}
.journey:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:#b7eae267;filter:blur(45px);right:-160px;top:-190px;pointer-events:none}
.journey-heading{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:30px}
.journey-heading h2{font-size:clamp(1.35rem,2vw,1.8rem);margin:0;max-width:660px}
.journey-steps{list-style:none;position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;padding:0;margin:0}
.journey-steps li{position:relative;min-width:0;min-height:226px;padding:20px 16px 18px;background:#fff;border:1px solid #d5e6e5;border-radius:11px;box-shadow:0 12px 26px -24px #124956;z-index:1}
.journey-steps li:not(:last-child):after{content:"›";display:grid;place-items:center;position:absolute;top:42px;right:-18px;width:24px;height:24px;border-radius:50%;background:#153f46;color:white;font-size:21px;line-height:1;z-index:3;box-shadow:0 1px 6px #082a2b35}
.journey-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:#e2f2ef;color:#096b70;margin-bottom:18px}
.journey-icon svg{width:32px;height:32px}
.journey-number{font:600 10px/1.4 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.07em;color:#317d7a}
.journey-steps h3{font-size:clamp(1rem,1.5vw,1.22rem);margin:6px 0 7px;letter-spacing:-.025em}
.journey-steps p{font-size:13px;line-height:1.48;color:var(--muted);margin:0}
.journey-foot{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;font-size:13px;line-height:1.5;color:#425e63}
.journey-stop{display:inline-flex;align-items:center;gap:8px}.journey-stop span{display:grid;place-items:center;background:#a3502e;color:#fff;border-radius:50%;width:18px;height:18px;font-size:12px;font-weight:700;flex-shrink:0}
.hero-overview+.section{padding-top:58px}
@media(max-width:1050px){.journey-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.journey-steps li{min-height:204px}.journey-steps li:after{display:none!important}.journey-foot{align-items:start;flex-direction:column}}
@media(max-width:620px){.hero-overview{padding:58px 0 4px}.hero-opening{margin-bottom:48px}.hero-opening h1{font-size:clamp(3.7rem,13vw,5rem);margin:17px 0 23px}.hero-opening p{font-size:1.07rem}.hero-opening .button{width:100%;justify-content:space-between}.journey{padding:26px 18px 20px;margin:0 -8px;border-radius:13px}.journey-heading{display:block;margin-bottom:21px}.journey-heading h2{margin:8px 0 0}.journey-steps{grid-template-columns:1fr;gap:9px}.journey-steps li{display:grid;grid-template-columns:46px 1fr;column-gap:13px;min-height:0;padding:13px 15px}.journey-icon{grid-row:span 3;width:42px;height:42px;margin:0}.journey-icon svg{width:26px;height:26px}.journey-steps h3{margin:2px 0;font-size:1.1rem}.journey-steps p{font-size:13px}.journey-foot{margin-top:18px;font-size:12px}.hero-overview+.section{padding-top:45px}}
