:root{--paper: #f6f2fd;--surface: #ffffff;--ink: #1b1530;--muted: #625b78;--rule: #dcd6e6;--plum: #5b2a86;--plum-soft: #efe6fc;--a: #0b7a75;--a-soft: #d6f2ee;--b: #a8530b;--b-soft: #fae6d0;--lost: #b3261e;--lost-soft: #f8dcd9;--code-bg: #efebf5;--f-pay: #5b2a86;--f-rep: #0b7a75;--f-log: #2459a8;--f-ctl: #a8327a;--f-bak: #a8530b;--f-exp: #625b78;--cl-az: #e8f0fb;--cl-az-l: #9db9e3;--cl-aw: #fbf0e2;--cl-aw-l: #e5bd8a;--violet: #6d3fd9;--violet2: #a855f7;--teal2: #14b8a6;--amber2: #f59e0b;--btn1: #6a35c9;--btn2: #8a3fe0;--glow: rgba(124, 58, 237, .28);--aur1: rgba(124, 58, 237, .2);--aur2: rgba(20, 184, 166, .17);--aur3: rgba(245, 158, 11, .13);--shadow: 0 1px 0 rgba(27, 21, 48, .04);--font-head: "Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;--font-body: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0e0a1a;--surface: #18122b;--ink: #efeaf8;--muted: #a69fbd;--rule: #342d4d;--plum: #c7a3f0;--plum-soft: #2a1f4a;--a: #4fd1c5;--a-soft: #123b3a;--b: #f2a45c;--b-soft: #402a14;--lost: #ff8a80;--lost-soft: #451c1a;--code-bg: #251e3a;--f-pay: #c7a3f0;--f-rep: #4fd1c5;--f-log: #8fb4ff;--f-ctl: #f08cc4;--f-bak: #f2a45c;--f-exp: #a69fbd;--cl-az: #15213a;--cl-az-l: #35507f;--cl-aw: #2e2217;--cl-aw-l: #6d4d2a;--violet: #b79bff;--violet2: #d29bff;--teal2: #2dd4bf;--amber2: #fbbf24;--btn1: #d6bafa;--btn2: #a98cf5;--glow: rgba(167, 139, 250, .38);--aur1: rgba(139, 92, 246, .3);--aur2: rgba(45, 212, 191, .2);--aur3: rgba(251, 191, 36, .14)}}:root[data-theme=dark]{--paper: #0e0a1a;--surface: #18122b;--ink: #efeaf8;--muted: #a69fbd;--rule: #342d4d;--plum: #c7a3f0;--plum-soft: #2a1f4a;--a: #4fd1c5;--a-soft: #123b3a;--b: #f2a45c;--b-soft: #402a14;--lost: #ff8a80;--lost-soft: #451c1a;--code-bg: #251e3a;--f-pay: #c7a3f0;--f-rep: #4fd1c5;--f-log: #8fb4ff;--f-ctl: #f08cc4;--f-bak: #f2a45c;--f-exp: #a69fbd;--cl-az: #15213a;--cl-az-l: #35507f;--cl-aw: #2e2217;--cl-aw-l: #6d4d2a;--violet: #b79bff;--violet2: #d29bff;--teal2: #2dd4bf;--amber2: #fbbf24;--btn1: #d6bafa;--btn2: #a98cf5;--glow: rgba(167, 139, 250, .38);--aur1: rgba(139, 92, 246, .3);--aur2: rgba(45, 212, 191, .2);--aur3: rgba(251, 191, 36, .14)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--plum);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--plum);outline-offset:2px;border-radius:3px}button{font:inherit;color:inherit}code,pre,kbd{font-family:var(--font-mono);font-size:.86em}code{background:var(--code-bg);padding:.1em .35em;border-radius:4px}pre{background:var(--code-bg);padding:14px 16px;border-radius:8px;overflow-x:auto;line-height:1.5}pre code{background:none;padding:0}.num{font-variant-numeric:tabular-nums}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--rule)}.topbar-in{display:flex;align-items:center;gap:18px;max-width:1480px;margin:0 auto;padding:10px 16px}.brand{font-family:var(--font-head);font-weight:700;font-size:1.1rem;letter-spacing:-.01em;text-decoration:none;color:var(--ink);white-space:nowrap}.brand span{color:var(--plum)}.topbar .nav{display:none;margin-left:auto;gap:2px}.nav a{display:block;padding:7px 11px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:.93rem;line-height:1.2;white-space:nowrap}.nav a:hover{background:var(--plum-soft)}.nav a[aria-current=page]{background:var(--plum-soft);color:var(--plum);font-weight:600;box-shadow:inset 0 -2px 0 var(--violet)}.theme-btn,.menu-btn{border:1px solid var(--rule);background:var(--surface);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:.85rem;white-space:nowrap}.theme-btn{display:none}.menu-btn{margin-left:auto}.drawer{border-top:1px solid var(--rule);background:var(--paper);padding:8px 16px 14px}.drawer .nav{display:grid;gap:2px}main{min-width:0}.wrap{padding:0 16px;max-width:1480px;margin:0 auto}@media (min-width: 1100px){.topbar .nav{display:flex}.theme-btn{display:block}.menu-btn,.drawer{display:none}.wrap{padding:0 40px}.topbar-in{padding:10px 40px}}html{scroll-padding-top:76px}h1,h2,h3,h4{font-family:var(--font-head);line-height:1.12;letter-spacing:-.015em;margin:0;font-weight:700}h1{font-size:clamp(2.3rem,5.2vw,4rem);max-width:18ch}h2{font-size:clamp(1.8rem,3.2vw,2.5rem);margin-bottom:14px}h3{font-size:1.28rem;margin:30px 0 8px}h4{font-size:1.02rem;margin:18px 0 4px}p{margin:0 0 14px}.prose{max-width:none}.prose ul,.prose ol{padding-left:1.25em;margin:0 0 14px}.prose li{margin-bottom:6px}.lede{font-size:1.2rem;line-height:1.55;color:var(--ink);max-width:none}.muted{color:var(--muted)}.small{font-size:.9rem}.section{padding:64px 0 8px;border-top:1px solid var(--rule)}.kicker{font-size:.85rem;font-weight:600;color:var(--plum);margin-bottom:8px}.hero{padding:44px 0 36px}.hero .meta{margin-top:18px;font-size:.95rem;color:var(--muted);max-width:none}.tag-a{color:var(--a);font-weight:600}.tag-b{color:var(--b);font-weight:600}.tag-lost{color:var(--lost);font-weight:600}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:18px;box-shadow:var(--shadow)}.panel+.panel{margin-top:16px}.grid2,.grid3{display:grid;gap:16px;grid-template-columns:1fr}.grid4{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}@media (min-width: 760px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}}.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:10px;background:var(--surface);margin:8px 0 18px}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:top}th{font-weight:600;background:var(--plum-soft);white-space:nowrap}tr:last-child td{border-bottom:0}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}.sortbtn{background:none;border:0;cursor:pointer;font-weight:600;padding:0}.cap{font-size:.88rem;color:var(--muted);margin:-8px 0 18px}.pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.8rem;font-weight:600}.pill.a{background:var(--a-soft);color:var(--a)}.pill.b{background:var(--b-soft);color:var(--b)}.pill.lost{background:var(--lost-soft);color:var(--lost)}.pill.plain{background:var(--plum-soft);color:var(--plum)}.stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--rule)}.stat .v{font-family:var(--font-head);font-weight:700;font-size:1.9rem;line-height:1.1;font-variant-numeric:tabular-nums}.stat .l{font-size:.85rem;color:var(--muted);line-height:1.35}.callout{border-left:4px solid var(--plum);background:var(--plum-soft);padding:12px 16px;border-radius:0 8px 8px 0;margin:16px 0}.callout.warn{border-color:var(--b);background:var(--b-soft)}.callout p:last-child{margin-bottom:0}.controls{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:flex-end;margin-bottom:14px}.ctl{display:flex;flex-direction:column;gap:5px}.ctl>span{font-size:.8rem;font-weight:600;color:var(--muted)}.seg{display:inline-flex;border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:var(--surface)}.seg button{border:0;background:none;padding:7px 12px;cursor:pointer;font-size:.9rem;border-right:1px solid var(--rule)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--plum);color:#fff;font-weight:600}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .seg button[aria-pressed=true]{color:#14101f}}:root[data-theme=dark] .seg button[aria-pressed=true]{color:#14101f}select,input[type=search]{font:inherit;padding:7px 10px;border:1px solid var(--rule);border-radius:8px;background:var(--surface);color:var(--ink);max-width:100%}input[type=range]{width:100%;accent-color:var(--plum)}.btn{border:1px solid var(--plum);background:var(--plum);color:#fff;border-radius:8px;padding:7px 16px;cursor:pointer;font-weight:600}.btn.ghost{background:none;color:var(--plum)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .btn:not(.ghost){color:#14101f}}:root[data-theme=dark] .btn:not(.ghost){color:#14101f}.scrub svg{width:100%;height:auto;display:block}.scrub .lanes text{fill:var(--ink);font-family:var(--font-body)}.readouts{display:grid;gap:12px;grid-template-columns:1fr;margin-top:12px}@media (min-width: 760px){.readouts{grid-template-columns:1fr 1fr}}.readout{border:1px solid var(--rule);border-radius:10px;padding:12px 14px;background:var(--surface)}.readout.a{border-top:4px solid var(--a)}.readout.b{border-top:4px solid var(--b)}.readout .state{font-weight:600}.readout .count{font-family:var(--font-head);font-weight:700;font-size:2.1rem;line-height:1.1;font-variant-numeric:tabular-nums}.readout .why{font-size:.88rem;color:var(--muted)}.timechip{font-variant-numeric:tabular-nums;font-weight:600}.chart text{font-family:var(--font-body);fill:var(--ink)}.chart .axis text{fill:var(--muted);font-size:11px}.chart .grid line{stroke:var(--rule)}.chart-title{font-weight:600;margin:0 0 4px}.figure img{width:100%;height:auto;border-radius:8px;border:1px solid var(--rule);background:#fff}.figure figcaption{font-size:.88rem;color:var(--muted);margin-top:6px}.steps{counter-reset:s;list-style:none;padding:0;margin:0 0 14px}.steps li{counter-increment:s;position:relative;padding-left:38px;margin-bottom:12px}.steps li:before{content:counter(s);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;background:var(--plum);color:#fff;font-weight:600;font-size:.85rem;display:grid;place-items:center}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .steps li:before{color:#14101f}}:root[data-theme=dark] .steps li:before{color:#14101f}.steps.a li:before{background:var(--a)}.steps.b li:before{background:var(--b)}details{border:1px solid var(--rule);border-radius:8px;background:var(--surface);padding:8px 14px;margin:8px 0}summary{cursor:pointer;font-weight:600}footer{margin-top:70px;padding:26px 0 50px;border-top:1px solid var(--rule);color:var(--muted);font-size:.9rem}.skip{position:absolute;left:-999px;top:6px;background:var(--plum);color:#fff;padding:8px 14px;border-radius:6px;z-index:50}.skip:focus{left:8px}a{overflow-wrap:anywhere}.ctl{min-width:0;max-width:100%}.ctl select{width:100%}@media (max-width: 600px){.hero{padding-top:28px}.controls{gap:12px}.seg button{padding:7px 10px}.panel{padding:12px}}.infra .diagram-scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:10px;background:var(--surface)}.infra-svg{display:block;width:100%;min-width:880px;height:auto}.infra-svg text{font-family:var(--font-body);fill:var(--ink)}.infra-svg .cloud.aks{fill:var(--cl-az);stroke:var(--cl-az-l);stroke-width:1.5}.infra-svg .cloud.eks{fill:var(--cl-aw);stroke:var(--cl-aw-l);stroke-width:1.5}.infra-svg .cloud-t{font-family:var(--font-head);font-weight:700;font-size:17px}.infra-svg .cloud-s{font-size:12px;fill:var(--muted)}.infra-svg .pools{font-size:11.5px;fill:var(--muted)}.infra-svg .grp{fill:none;stroke:var(--rule);stroke-width:1.2}.infra-svg .grp.ghost{stroke-dasharray:5 5}.infra-svg .grp-t{font-size:11.5px;fill:var(--muted);font-weight:600}.infra-svg .ghost-t{font-size:11.5px;fill:var(--muted)}.infra-svg .mid-t{font-size:13px;font-weight:600}.infra-svg .mid-s{font-size:11.5px;fill:var(--muted)}.infra-svg .tunnel{stroke:var(--plum);stroke-width:7;stroke-opacity:.16;stroke-linecap:round}.infra-svg .storeb{fill:none;stroke:var(--rule);stroke-width:1.2;stroke-dasharray:5 5}.infra-svg .node rect{fill:var(--surface);stroke:var(--rule);stroke-width:1.3}.infra-svg .node.ext rect{fill:var(--plum-soft);stroke:var(--plum);stroke-opacity:.5}.infra-svg .node.db rect{stroke-width:1.8}.infra-svg .node.util rect,.infra-svg .node.store-item rect{fill:var(--paper)}.infra-svg .node{cursor:pointer}.infra-svg .node:hover rect,.infra-svg .node.sel rect{stroke:var(--plum);stroke-width:2.2}.infra-svg .node:focus-visible{outline:none}.infra-svg .node:focus-visible rect{stroke:var(--plum);stroke-width:3}.infra-svg .node.hot rect{stroke:var(--lost);stroke-width:2.6}.infra-svg .node.dead rect{fill:var(--lost-soft);stroke:var(--lost);stroke-dasharray:4 3}.infra-svg .n-t{font-size:13.5px;font-weight:600}.infra-svg .n-s{font-size:11.5px;fill:var(--muted)}.infra-svg .chip rect{stroke:none!important}.infra-svg .chip.primary rect{fill:var(--plum)}.infra-svg .chip.primary text{fill:#fff}.infra-svg .chip.standby rect{fill:none;stroke:var(--muted)!important;stroke-width:1}.infra-svg .chip.down rect{fill:var(--lost)}.infra-svg .chip.down text{fill:#fff}.infra-svg .chip text{font-size:10.5px;font-weight:600}.infra-svg .chip.standby rect{fill:var(--surface)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .infra-svg .chip.primary text,:root:not([data-theme=light]) .infra-svg .chip.down text{fill:#14101f}}:root[data-theme=dark] .infra-svg .chip.primary text,:root[data-theme=dark] .infra-svg .chip.down text{fill:#14101f}.infra-svg .edge{fill:none;stroke-width:2.2;stroke-linejoin:round;opacity:.9}.infra-svg .edge.down{stroke-dasharray:6 5}.infra-svg .dot{opacity:.95}.infra-svg .elabel{font-size:11.5px;font-weight:600;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.infra-hint{font-size:.85rem;color:var(--muted);margin:6px 0 10px}.flowchips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}.flowchip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer;font-size:.9rem}.flowchip i{width:10px;height:10px;border-radius:50%;border:2px solid var(--chip);background:transparent}.flowchip[aria-pressed=true]{border-color:var(--chip);font-weight:600}.flowchip[aria-pressed=true] i{background:var(--chip)}.linkbtn{border:0;background:none;color:var(--plum);cursor:pointer;font-size:.9rem;text-decoration:underline;text-underline-offset:3px;padding:6px 4px}.stepper{margin-bottom:14px}.stepper-head{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between}.stepdots{display:flex;gap:6px}.stepdots button{width:32px;height:32px;border-radius:50%;border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:600}.stepdots button[aria-pressed=true]{background:var(--plum);border-color:var(--plum);color:#fff}.stepbtns{display:flex;gap:8px}.stepbtns .btn:disabled{opacity:.4;cursor:default}.stepcap{margin:12px 0 0;max-width:none;min-height:3.2em}.dotk{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}tr.rowdown td{color:var(--lost)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .stepdots button[aria-pressed=true]{color:#14101f}}:root[data-theme=dark] .stepdots button[aria-pressed=true]{color:#14101f}.figcap{font-size:.88rem;color:var(--muted);margin:6px 0 16px}.infra-svg .card rect{fill:var(--surface);stroke:var(--rule);stroke-width:1.3}.infra-svg .card.off rect{fill:none;stroke-dasharray:4 4}.infra-svg .card.em.on rect{stroke:var(--plum);stroke-width:2}.infra-svg .card.bad.on rect{stroke:var(--lost);fill:var(--lost-soft)}.infra-svg .c-k{font-size:12.5px;font-weight:600}.infra-svg .c-v{font-family:var(--font-head);font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}.infra-svg .c-n{font-size:11.5px;fill:var(--muted)}.infra-svg .card.off text{fill:var(--muted)}.prose h4,.infra+h4{margin:18px 0 8px;font-size:1rem}main{overflow-x:clip}.brand span{background:linear-gradient(90deg,var(--violet),var(--teal2));-webkit-background-clip:text;background-clip:text;color:transparent}.topbar{background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(10px)}.kicker{display:inline-flex;align-items:center;gap:8px}.kicker:before{content:"";width:18px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--teal2))}.section{border-top:1px solid var(--rule);position:relative}.section:first-of-type{border-top:0}.section:before{content:"";position:absolute;top:-2px;left:0;width:72px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--teal2),var(--amber2))}.section:first-of-type:before{display:none}.hero{position:relative;isolation:isolate}.hero:before{content:"";position:absolute;z-index:-1;left:-60px;right:-60px;top:-50px;height:620px;pointer-events:none;background:radial-gradient(42% 52% at 18% 30%,var(--aur1),transparent 70%),radial-gradient(36% 46% at 82% 22%,var(--aur2),transparent 70%),radial-gradient(32% 42% at 58% 84%,var(--aur3),transparent 70%);filter:blur(14px);animation:aurora 22s ease-in-out infinite alternate}@keyframes aurora{0%{transform:translate3d(-2%,0,0) scale(1)}50%{transform:translate3d(2%,3%,0) scale(1.06)}to{transform:translate3d(-1%,-2%,0) scale(1.02)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fadein{0%{opacity:0}to{opacity:1}}.hero>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}.hero>.kicker{animation-delay:.05s}.hero>h1{animation-delay:.14s}.hero>.meta{animation-delay:.28s}.hero>div{animation-delay:.42s}.progress{display:none}@supports (animation-timeline: scroll()){.progress{display:block;position:fixed;z-index:60;top:0;left:0;right:0;height:3px;transform-origin:0 50%;transform:scaleX(0);pointer-events:none;background:linear-gradient(90deg,var(--violet),var(--teal2),var(--amber2));animation:progress linear both;animation-timeline:scroll(root)}@keyframes progress{to{transform:scaleX(1)}}}.rv{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d, 0ms)}.rv.rv-in{opacity:1;transform:none}.section:before{transform-origin:0 50%}.section.rv-line:before{transform:scaleX(0)}.section.rv-line.rv-in:before{transform:scaleX(1);transition:transform .9s cubic-bezier(.2,.7,.2,1) .1s}@media print{.rv{opacity:1;transform:none}}.stat{position:relative;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.stat:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--violet),var(--violet2))}.grid4 .stat:nth-child(2):before{background:linear-gradient(90deg,var(--teal2),var(--a))}.grid4 .stat:nth-child(3):before{background:linear-gradient(90deg,var(--a),var(--amber2))}.grid4 .stat:nth-child(4):before{background:linear-gradient(90deg,var(--amber2),var(--b))}.stat:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px var(--glow);border-color:color-mix(in srgb,var(--violet) 40%,var(--rule))}.grid2>.panel,.grid3>.panel{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.grid2>.panel:hover,.grid3>.panel:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px var(--glow);border-color:color-mix(in srgb,var(--violet) 40%,var(--rule))}.panel{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 92%,var(--plum-soft)))}th{background:linear-gradient(180deg,var(--plum-soft),color-mix(in srgb,var(--plum-soft) 70%,var(--surface)))}tbody tr{transition:background .18s ease}tbody tr:hover td{background:color-mix(in srgb,var(--plum-soft) 60%,transparent)}.callout{background:linear-gradient(90deg,var(--plum-soft),color-mix(in srgb,var(--plum-soft) 25%,transparent))}.callout.warn{background:linear-gradient(90deg,var(--b-soft),color-mix(in srgb,var(--b-soft) 25%,transparent))}.btn:not(.ghost),.seg button[aria-pressed=true],.stepdots button[aria-pressed=true]{background:linear-gradient(135deg,var(--btn1),var(--btn2));border-color:transparent}.btn{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px var(--glow)}.btn:active{transform:translateY(0)}.btn.ghost:hover{background:var(--plum-soft)}.seg button,.flowchip,.stepdots button,.theme-btn,.menu-btn{transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease}.seg button:not([aria-pressed=true]):hover{background:var(--plum-soft)}.flowchip:hover{transform:translateY(-1px);border-color:var(--chip)}.stepdots button:hover{transform:scale(1.08)}.pill{transition:transform .15s ease}.pill:hover{transform:scale(1.05)}.infra-svg .node rect{transition:stroke .2s ease,fill .2s ease}.infra-svg .chip{animation:pop .45s cubic-bezier(.3,1.5,.5,1) both;transform-box:fill-box;transform-origin:center}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.chart circle{transform-box:fill-box;transform-origin:center;animation:pop .5s cubic-bezier(.3,1.4,.5,1) both}.infra-svg .card.on{animation:pop .45s cubic-bezier(.3,1.3,.5,1) both;transform-box:fill-box;transform-origin:center}.stepcap{animation:fadein .5s ease both}:root{color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark}}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=light]{color-scheme:light}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:7px 10px;max-width:100%;transition:border-color .2s ease,box-shadow .2s ease}input[type=checkbox],input[type=radio],input[type=range]{padding:0;border:0;background:none;accent-color:var(--violet)}input::placeholder{color:var(--muted);opacity:.85}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 25%,transparent)}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--plum) 45%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-corner{background:transparent}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--plum) 40%,transparent);border-radius:8px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--plum) 65%,transparent);background-clip:content-box}.tablewrap,.diagram-scroll{scrollbar-gutter:stable}@media (min-width: 720px){.prose p,.prose li,.callout p,.lede,.hero .meta,.stepcap{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}.prose code,.prose a{hyphens:manual}}.bankpair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 6px}@media (max-width: 760px){.bankpair{grid-template-columns:1fr}}.bankpage{display:block;width:100%;height:auto}.bankpage text{font-family:var(--font-body);fill:var(--ink)}.ledger .lg-win{fill:var(--surface);stroke:var(--rule);stroke-width:1.4}.ledger .lg-title{font-family:var(--font-head);font-weight:700;font-size:18px}.ledger .lg-site{font-size:13px;fill:var(--muted)}.ledger .lg-cond{font-size:12px;font-weight:700;fill:var(--plum)}.ledger .lg-badge{fill:#2c5d8f}.ledger .lg-badge.off{fill:var(--lost)}.ledger .lg-badget{font-size:11.5px;font-weight:700;fill:#fff}.ledger .lg-ms{font-size:12px;fill:var(--muted)}.ledger .lg-cell{fill:var(--paper);stroke:var(--rule)}.ledger .lg-cell.bad{fill:var(--lost-soft);stroke:var(--lost)}.ledger .lg-v{font-family:var(--font-head);font-size:20px;font-weight:700}.ledger .lg-v.bad{fill:var(--lost)}.ledger .lg-l{font-size:11.5px;fill:var(--muted)}.ledger .lg-spoke{stroke:var(--rule);stroke-width:1}.ledger .lg-spoke.hot{stroke:var(--plum);stroke-width:2;stroke-opacity:.7}.ledger .lg-node circle{fill:var(--surface);stroke:var(--muted);stroke-width:1.4}.ledger .lg-node.on circle{stroke:var(--plum);stroke-width:2.4;fill:var(--plum-soft)}.ledger .lg-node text{font-size:8.8px;font-weight:600}.ledger .lg-hub{fill:var(--surface);stroke:#2c5d8f;stroke-width:2.4;stroke-dasharray:5 4}.ledger .lg-hub.down{stroke:var(--lost);fill:var(--lost-soft)}.ledger .lg-hubt{font-size:12.5px;font-weight:700}.ledger .lg-hubs{font-size:10px;fill:var(--muted)}.ledger .lg-dot{fill:var(--plum)}.ledger .lg-rh{font-weight:700;font-size:14px}.ledger .lg-empty{font-size:12.5px;fill:var(--lost)}.ledger .lg-rc{fill:var(--paper);stroke:var(--rule)}.ledger .lg-rid{font-family:var(--font-mono);font-size:10px;fill:var(--muted)}.ledger .lg-rt{font-size:12.5px}.ledger .lg-rs{font-family:var(--font-mono);font-size:10.5px;fill:var(--a);font-weight:600}.onpage{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}.onpage span{font-size:.82rem;color:var(--muted);margin-right:4px}.onpage a{font-size:.88rem;padding:5px 12px;border:1px solid var(--rule);border-radius:999px;text-decoration:none;color:var(--ink)}.onpage a:hover{background:var(--plum-soft);border-color:var(--plum)}.pagehead{padding:34px 0 6px}.pagehead .meta{margin-top:12px;font-size:.95rem;color:var(--muted);max-width:none}.pagenav{display:flex;justify-content:space-between;gap:16px;margin:56px 0 8px;padding-top:22px;border-top:1px solid var(--rule)}.pagenav a{display:block;max-width:48%;padding:12px 16px;border:1px solid var(--rule);border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;line-height:1.3}.pagenav a:hover{background:var(--plum-soft);border-color:var(--plum)}.pagenav a span{display:block;font-size:.78rem;font-weight:500;color:var(--muted);margin-bottom:2px}.pagenav .next{text-align:right;margin-left:auto}@media (max-width: 560px){.pagenav a{max-width:100%}.pagenav{flex-direction:column}.pagenav .next{margin-left:0;text-align:left}}.hero h1{max-width:none}@media (min-width: 760px){.hero h1 .ln{display:block}}
