:root{--paper: #ffffff;--canvas: #fbfcfd;--surface: #ffffff;--surface-2: #f4f6f9;--surface-3: #eef1f6;--ink: #10192b;--ink-soft: #3f4a60;--ink-faint: #6b7690;--ink-ghost: #97a1b5;--line: #e3e8ef;--line-strong: #cfd6e2;--accent: #3d5afe;--accent-ink: #2438c8;--accent-soft: #eef1ff;--aws: #b45309;--good: #047857;--good-soft: #ecfdf5;--warn: #b45309;--danger: #be123c;--danger-soft: #fff1f2;--mono: ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, Menlo, monospace;--font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;--topbar-h: 56px;--sidebar-w: 286px;--toc-w: 250px;--measure: 74ch;--layout-max: 1840px}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0}body{background:var(--canvas);color:var(--ink);font-family:var(--font);line-height:1.65;-webkit-font-smoothing:antialiased}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 22px;background:#ffffffeb;-webkit-backdrop-filter:saturate(160%) blur(8px);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--line)}.topbar-brand{display:flex;align-items:baseline;gap:12px;text-decoration:none}.brand-mark{font-family:var(--mono);font-weight:700;font-size:1rem;letter-spacing:-.02em;color:var(--accent)}.brand-sub{font-size:.74rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em}.topbar-tag{font-size:.74rem;color:var(--ink-ghost);font-family:var(--mono)}.layout{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--toc-w);align-items:start;max-width:var(--layout-max);margin:0 auto}.sidebar{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;border-right:1px solid var(--line);background:var(--paper);padding:20px 14px 40px}.sidebar-search{position:sticky;top:0;background:var(--paper);padding-bottom:14px;z-index:1}.sidebar-search input{width:100%;font:inherit;font-size:.84rem;padding:8px 11px;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:8px}.sidebar-search input::placeholder{color:var(--ink-ghost)}.sidebar-search input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;background:var(--paper)}.sidebar-empty{font-size:.82rem;color:var(--ink-faint);padding:4px 10px}.sidebar-group{margin-bottom:20px}.sidebar-group-title{font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-ghost);margin:0 0 6px;padding:0 10px}.sidebar-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}.nav-item{display:block;width:100%;text-align:left;background:none;border:0;border-left:2px solid transparent;margin-left:-1px;padding:6px 10px;cursor:pointer;color:var(--ink-soft);font:inherit;font-size:.855rem;line-height:1.4;border-radius:0 6px 6px 0}.nav-item:hover{color:var(--ink);background:var(--surface-2)}.nav-item.active{color:var(--accent-ink);font-weight:600;border-left-color:var(--accent);background:var(--accent-soft)}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.content{min-width:0;padding:34px clamp(26px,3vw,52px) 96px}.breadcrumb{display:flex;gap:8px;font-size:.78rem;color:var(--ink-faint);margin-bottom:16px}.crumb-sep{color:var(--ink-ghost)}.crumb-current{color:var(--ink-soft);font-weight:600}.content-head{padding-bottom:26px;margin-bottom:34px;border-bottom:1px solid var(--line)}.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-ghost);margin:0 0 10px}.content-head h1{font-size:clamp(1.85rem,3vw,2.5rem);line-height:1.15;letter-spacing:-.025em;margin:0 0 12px;text-wrap:balance}.content-summary{color:var(--ink-soft);font-size:1.06rem;margin:0;max-width:68ch}.prose{max-width:none}.prose>*:first-child{margin-top:0}.prose>p,.prose>ul,.prose>ol,.prose>blockquote,.prose>h2,.prose>h3,.prose>h4{max-width:var(--measure)}.content-summary{max-width:var(--measure)}.prose h2{font-size:1.42rem;letter-spacing:-.015em;line-height:1.3;margin:2.6em 0 .8em;padding-bottom:.35em;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--topbar-h) + 28px)}.prose h3{font-size:1.1rem;margin:2em 0 .6em;letter-spacing:-.01em;scroll-margin-top:calc(var(--topbar-h) + 28px)}.prose h4{font-size:.82rem;margin:1.5em 0 .5em;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}.prose p{margin:0 0 1.15em;color:var(--ink-soft)}.prose strong{color:var(--ink);font-weight:650}.prose ul,.prose ol{color:var(--ink-soft);padding-left:1.35em;margin:0 0 1.15em}.prose li{margin:.38em 0}.prose li::marker{color:var(--ink-ghost)}.prose a{color:var(--accent-ink);text-underline-offset:2px}.prose hr{border:0;border-top:1px solid var(--line);margin:2.6em 0}.prose code{font-family:var(--mono);font-size:.855em;background:var(--surface-2);border:1px solid var(--line);padding:.12em .4em;border-radius:5px;color:var(--ink)}.prose pre{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:15px 18px;overflow-x:auto;margin:1.4em 0}.prose pre code{background:none;border:none;padding:0;font-size:.82rem;line-height:1.6}.prose blockquote{margin:1.5em 0;padding:.9em 1.2em;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;color:var(--ink-soft)}.prose blockquote p:last-child{margin-bottom:0}.prose table{width:100%;max-width:none;border-collapse:collapse;margin:1.5em 0;font-size:.875rem;display:block;overflow-x:auto;border:1px solid var(--line);border-radius:10px}.prose thead{background:var(--surface-2)}.prose th,.prose td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}.prose th{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);font-weight:700;white-space:nowrap}.prose tbody tr:last-child td{border-bottom:none}.prose tbody tr:hover{background:var(--surface-2)}.prose td code{white-space:nowrap}.toc{position:sticky;top:var(--topbar-h);max-height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:38px 20px 40px 8px;border-left:1px solid var(--line)}.toc-head{font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-ghost);margin:0 0 10px}.toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}.toc-link{display:block;padding:5px 12px;margin-left:-1px;border-left:2px solid transparent;color:var(--ink-faint);text-decoration:none;font-size:.8rem;line-height:1.4}.toc-link:hover{color:var(--ink)}.toc-link.active{color:var(--accent-ink);border-left-color:var(--accent);font-weight:600}.toc-l3 .toc-link{padding-left:26px;font-size:.775rem}.pager{display:flex;justify-content:space-between;gap:14px;margin-top:64px;padding-top:26px;border-top:1px solid var(--line)}.pager-btn{display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 18px;cursor:pointer;color:var(--ink);font:inherit;max-width:46%;text-align:left}.pager-btn.next{text-align:right;align-items:flex-end}.pager-dir{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-ghost)}.pager-title{font-weight:600;font-size:.9rem}.pager-btn:hover{border-color:var(--accent)}.pager-btn:hover .pager-title{color:var(--accent-ink)}.pager-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.diagram{margin:1.9em 0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.diagram-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}.diagram-title{font-size:.82rem;font-weight:700;color:var(--ink)}.diagram-actions{display:flex;align-items:center;gap:6px}.diagram-actions button{min-width:30px;height:26px;padding:0 9px;font:inherit;font-size:.76rem;font-weight:600;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:6px;cursor:pointer}.diagram-actions button:hover{border-color:var(--accent);color:var(--accent-ink)}.diagram-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.diagram-zoom{min-width:46px;text-align:right;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--ink-ghost)}.diagram-viewport{position:relative;height:340px;overflow:hidden;cursor:grab;touch-action:none;background:linear-gradient(90deg,rgba(16,25,43,.035) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(rgba(16,25,43,.035) 1px,transparent 1px) 0 0 / 22px 22px}.diagram-viewport:active{cursor:grabbing}.diagram-stage{position:absolute;top:0;left:0;will-change:transform}.diagram-stage svg{display:block;max-width:none}.diagram-stage foreignObject{overflow:visible}.diagram-stage .nodeLabel,.diagram-stage .edgeLabel{line-height:1.35;white-space:normal}.diagram-stage g.has-tooltip{cursor:help}.diagram-stage g.is-clickable:hover{filter:brightness(.94)}.diagram-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:10px 14px;list-style:none;border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-soft)}.diagram-legend li{display:flex;align-items:center;gap:7px}.diagram-legend .swatch{width:12px;height:12px;border-radius:3px;border:1px solid rgba(16,25,43,.14);flex-shrink:0}.diagram-hint{padding:8px 14px;border-top:1px solid var(--line);font-size:.72rem;color:var(--ink-ghost)}.diagram-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:26px;background:#10192b8c}.diagram-overlay-inner{width:min(1500px,96vw)}.diagram-expanded{margin:0;box-shadow:0 24px 60px -20px #10192b73}.diagram-expanded .diagram-viewport{height:min(78vh,860px)!important}.mermaid-error{margin:1.6em 0;padding:16px;border:1px solid var(--danger);border-radius:10px;color:var(--danger);background:var(--danger-soft)}.mermaid-error pre{overflow-x:auto;color:var(--ink-soft)}@media(max-width:1400px){.layout{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}.toc{display:none}}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line);max-height:320px}.content{padding:24px 20px 72px}.diagram-viewport{height:360px}.pager{flex-direction:column}.pager-btn{max-width:100%}.pager-btn.next{text-align:left;align-items:flex-start}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.sidebar,.toc,.topbar,.pager,.diagram-actions,.diagram-hint{display:none}.layout{grid-template-columns:1fr}.diagram-viewport{height:auto;overflow:visible}.diagram-stage{position:static;transform:none!important}}
