.kdx-intro{max-width:62ch;margin:14px 0 0;font-size:17px;line-height:1.55;color:var(--kd-ink-soft)}.kdx-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:clamp(24px,4vw,56px);gap:clamp(24px,4vw,56px);align-items:start;padding-top:clamp(28px,4vw,52px);padding-bottom:12px}.kdx-wrap--solo{grid-template-columns:minmax(0,1fr)}.kdx-body{min-width:0;gap:18px}.kdx-body,.kdx-rail{display:flex;flex-direction:column}.kdx-rail{position:-webkit-sticky;position:sticky;top:24px;gap:16px}.kdx-toc{padding:18px 20px;border-radius:24px;border:2px solid var(--kd-line);background:var(--kd-white)}.kdx-toc-title{margin:0 0 10px;font-family:var(--kd-font-display);font-weight:800;font-size:16px;color:var(--kd-ink)}.kdx-toc ol{margin:0;padding:0;list-style:none;counter-reset:kdx-toc;display:flex;flex-direction:column;gap:4px}.kdx-toc li{counter-increment:kdx-toc}.kdx-toc a{display:flex;gap:10px;padding:6px 8px;border-radius:10px;font-size:14px;color:var(--kd-ink-soft)}.kdx-toc a:before{content:counter(kdx-toc);flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--kd-mist);color:var(--kd-sky-deep);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.kdx-toc a:hover{background:var(--kd-mist);color:var(--kd-ink)}.kdx-help{position:relative;padding:22px 20px 20px;border-radius:24px;background:var(--kd-butter);display:flex;flex-direction:column;gap:6px}.kdx-help-art{position:absolute;top:-18px;right:14px;transform:rotate(8deg)}.kdx-help-title{margin:0;font-family:var(--kd-font-display);font-weight:800;font-size:19px;color:var(--kd-ink)}.kdx-help-text{margin:0 0 6px;font-size:14px;color:var(--kd-ink-soft)}.kdx-help-link{font-size:14px;font-weight:700;color:var(--kd-ink)}.kdx-help-btn{margin-top:10px;align-self:flex-start;box-shadow:0 5px 0 var(--kd-sky-deep)}.kdx-chapter{--tint:var(--kd-white);scroll-margin-top:24px;padding:clamp(20px,3vw,34px);border-radius:28px;border:2px solid var(--kd-line);background:var(--tint)}.kdx-chapter-title{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-family:var(--kd-font-display);font-weight:800;font-size:clamp(20px,2vw,26px);line-height:1.15;color:var(--kd-ink)}.kdx-chapter-no{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--kd-sky);color:var(--kd-white);font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px #d7effb}.kdx-chapter:nth-of-type(3n+2) .kdx-chapter-no{background:var(--kd-sun);color:var(--kd-ink);box-shadow:0 0 0 4px var(--kd-butter)}.kdx-chapter:nth-of-type(3n+3) .kdx-chapter-no{background:var(--kd-indigo);box-shadow:0 0 0 4px var(--kd-lilac)}.kdx-prose{max-width:72ch;font-size:15.5px;line-height:1.7;color:var(--kd-ink)}.kdx-prose p{margin:0 0 12px}.kdx-prose p:last-child{margin-bottom:0}.kdx-prose .bn,.kdx-prose [lang=bn]{color:var(--kd-ink-soft)}.kdx-prose ol,.kdx-prose ul{margin:0 0 12px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}.kdx-prose ul li{position:relative;padding-left:22px}.kdx-prose ul li:before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--kd-sky)}.kdx-prose ol{counter-reset:kdx-ol}.kdx-prose ol li{position:relative;padding-left:32px;counter-increment:kdx-ol}.kdx-prose ol li:before{content:counter(kdx-ol);position:absolute;left:0;top:.15em;width:22px;height:22px;border-radius:50%;background:var(--kd-butter);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}.kdx-prose a{color:var(--kd-sky-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}.kdx-prose strong{color:var(--kd-ink)}.kdx-prose h3{margin:18px 0 8px;font-family:var(--kd-font-display);font-weight:700;font-size:18px}.kdx-callout{margin:14px 0;padding:14px 18px;border-radius:18px;background:var(--kd-mist);border-left:5px solid var(--kd-sky);font-size:15px}.kdx-callout--warn{background:#fff1f3;border-left-color:#ff6b8b}.kdx-callout--good{background:#e3f6ec;border-left-color:#2fbf86}@media (max-width:991px){.kdx-wrap{grid-template-columns:minmax(0,1fr)}.kdx-rail{position:static}.kdx-toc{display:none}}