[data-toc-link][data-part-status]:after{margin-left:.4rem;font-size:.75rem}[data-toc-link][data-part-status=done]:after{content:"✓";color:var(--ok)}[data-toc-link][data-part-status=review]:after{content:"!";color:var(--warn);font-weight:700}[data-toc-link][data-part-status=skipped]:after{content:"↷";color:var(--faint)}[data-toc-link][data-part-status=in-progress]:after{content:"•";color:var(--brand)}.pref-btn[data-astro-cid-g3gvsmu4]{color:var(--muted);border-radius:.5rem;align-items:center;gap:.375rem;padding:.375rem .75rem;font-weight:500;transition:all .15s;display:flex}html:not([data-level=senior]) .pref-btn[data-astro-cid-g3gvsmu4][data-value=junior],html[data-level=senior] .pref-btn[data-astro-cid-g3gvsmu4][data-value=senior],html:not([data-length=deep]) .pref-btn[data-astro-cid-g3gvsmu4][data-value=quick],html[data-length=deep] .pref-btn[data-astro-cid-g3gvsmu4][data-value=deep],html:not([data-framework=jakarta]) .pref-btn[data-astro-cid-g3gvsmu4][data-value=spring],html[data-framework=jakarta] .pref-btn[data-astro-cid-g3gvsmu4][data-value=jakarta]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.complete-card[data-astro-cid-2nylek4l] .when-done[data-astro-cid-2nylek4l],.complete-card[data-astro-cid-2nylek4l][data-has-parts=true] [data-astro-cid-2nylek4l][data-complete-toggle]{display:none}.complete-card[data-astro-cid-2nylek4l][data-done=true] .when-done[data-astro-cid-2nylek4l]{display:inline}.complete-card[data-astro-cid-2nylek4l][data-done=true] .when-todo[data-astro-cid-2nylek4l]{display:none}.complete-btn[data-astro-cid-2nylek4l]{background:var(--fg);color:var(--bg)}.complete-card[data-astro-cid-2nylek4l][data-done=true]{border-color:color-mix(in oklab, var(--ok) 35%, transparent);background:color-mix(in oklab, var(--ok-soft) 55%, var(--surface))}.complete-card[data-astro-cid-2nylek4l][data-done=true] .complete-icon[data-astro-cid-2nylek4l]{background:var(--ok);color:#fff}.complete-card[data-astro-cid-2nylek4l][data-done=true] .complete-btn[data-astro-cid-2nylek4l]{color:var(--muted);border:1px solid var(--line);background:0 0}.devnote-body[data-astro-cid-glrjshrb]>*+*{margin-top:.6em}.callout[data-astro-cid-lnlu5god]{background:color-mix(in oklab, var(--cs) 70%, var(--surface));border-color:color-mix(in oklab, var(--c) 22%, transparent)}.callout-body[data-astro-cid-lnlu5god]>*+*{margin-top:.7em}.callout-body[data-astro-cid-lnlu5god]>:first-child{margin-top:0}.basics-body[data-astro-cid-lpcv74ju]>*+*{margin-top:.75em}.cw-code[data-astro-cid-5rtwuh5z] pre{border-top-left-radius:0!important;border-top-right-radius:0!important;margin:0!important}.lang-note-body[data-astro-cid-dimluhqh]>*{margin:.4em 0 0}.lang-note-body[data-astro-cid-dimluhqh]>:first-child{margin-top:0}.po-code[data-astro-cid-6ertilhl] .cw-code{margin:.75rem 0 1rem}.po-option[data-astro-cid-6ertilhl].is-right{border-color:var(--ok);background:var(--ok-soft)}.po-option[data-astro-cid-6ertilhl].is-wrong{border-color:var(--danger);background:var(--danger-soft)}.po-result[data-astro-cid-6ertilhl] code{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--line);border-radius:.35em;padding:.08em .35em;font-size:.86em}.stb-code[data-astro-cid-rm2fqc7e] .cw-code{margin:.75rem 0 .5rem}.stb-code[data-astro-cid-rm2fqc7e] .line{cursor:pointer;border-radius:.3rem;min-width:100%;margin:0 -.4rem;padding:0 .4rem;transition:background-color .15s;display:inline-block}.stb-code[data-astro-cid-rm2fqc7e] .line:hover,.stb-code[data-astro-cid-rm2fqc7e] .line:focus-visible{background:color-mix(in oklab, var(--brand) 12%, transparent);outline:none}.stb-code[data-astro-cid-rm2fqc7e] .line.is-wrong{background:color-mix(in oklab, var(--faint) 22%, transparent)}.stb-code[data-astro-cid-rm2fqc7e] .line.is-bug{background:color-mix(in oklab, var(--danger) 22%, transparent);box-shadow:inset 3px 0 0 var(--danger)}.problem[data-astro-cid-7x3alwvt]{counter-reset:hint}.problem-body[data-astro-cid-7x3alwvt]>:first-child{margin-top:0}.hint[data-astro-cid-n5jc2ujo]{counter-increment:hint}.hint-summary[data-astro-cid-n5jc2ujo]:after{content:"Hint " counter(hint)}.hint-body[data-astro-cid-n5jc2ujo]>:first-child{margin-top:0}.refactor[data-astro-cid-kdhryvnl][data-show=before] [data-side=after],.refactor[data-astro-cid-kdhryvnl][data-show=after] [data-side=before]{display:none}.refactor[data-astro-cid-kdhryvnl][data-show=before] .refactor-btn[data-astro-cid-kdhryvnl][data-side-btn=before],.refactor[data-astro-cid-kdhryvnl][data-show=after] .refactor-btn[data-astro-cid-kdhryvnl][data-side-btn=after]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.diagram-edge[data-astro-cid-zsweqlwk]{stroke:var(--line-strong);stroke-width:1.6px}.diagram-arrow[data-astro-cid-zsweqlwk]{fill:var(--line-strong)}.diagram-edge-label[data-astro-cid-zsweqlwk]{fill:var(--faint);paint-order:stroke;stroke:var(--surface);stroke-width:4px;font-size:11px}.diagram-node[data-astro-cid-zsweqlwk]{cursor:pointer;outline:none}.diagram-box[data-astro-cid-zsweqlwk]{fill:var(--elevated);stroke:var(--line-strong);stroke-width:1.4px;transition:stroke .15s,fill .15s}.diagram-box[data-astro-cid-zsweqlwk].kind-store{fill:color-mix(in oklab, var(--info) 10%, var(--elevated))}.diagram-box[data-astro-cid-zsweqlwk].kind-queue{fill:color-mix(in oklab, var(--warn) 10%, var(--elevated))}.diagram-box[data-astro-cid-zsweqlwk].kind-client{fill:var(--subtle)}.diagram-node[data-astro-cid-zsweqlwk]:hover .diagram-box[data-astro-cid-zsweqlwk],.diagram-node[data-astro-cid-zsweqlwk]:focus-visible .diagram-box[data-astro-cid-zsweqlwk]{stroke:var(--brand)}.diagram-node[data-astro-cid-zsweqlwk].is-active .diagram-box[data-astro-cid-zsweqlwk]{stroke:var(--brand);stroke-width:2.4px;fill:var(--brand-soft)}.diagram-label[data-astro-cid-zsweqlwk]{fill:var(--fg);font-size:13.5px;font-weight:600}.diagram-sub[data-astro-cid-zsweqlwk]{fill:var(--faint);font-size:11px}.diagram-panel[data-astro-cid-zsweqlwk] code{font-family:var(--font-mono);font-size:.86em}.takeaways-body[data-astro-cid-k7oec6kc] ul{gap:.6rem;display:grid}.takeaways-body[data-astro-cid-k7oec6kc] li{color:var(--fg);padding-left:1.9rem;line-height:1.6;position:relative}.takeaways-body[data-astro-cid-k7oec6kc] li:before{content:"✓";background:var(--ok-soft);width:1.3rem;height:1.3rem;color:var(--ok);border-radius:999px;place-items:center;font-size:.75rem;font-weight:700;display:grid;position:absolute;top:.1rem;left:0}.tab-btn[data-astro-cid-3kvptrtw][aria-selected=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.part[data-astro-cid-sgb6tuza]{margin-top:3rem;padding-top:.25rem;position:relative}.part-bar[data-astro-cid-sgb6tuza]{color:var(--faint);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;display:flex}.part-label[data-astro-cid-sgb6tuza]{text-transform:uppercase;letter-spacing:.06em}.part-status[data-astro-cid-sgb6tuza]{background:var(--subtle);color:var(--muted);border-radius:999px;padding:.1rem .55rem}.part[data-astro-cid-sgb6tuza][data-status=in-progress] .part-status[data-astro-cid-sgb6tuza]{background:var(--brand-soft);color:var(--brand)}.part[data-astro-cid-sgb6tuza][data-status=review] .part-status[data-astro-cid-sgb6tuza]{background:var(--warn-soft);color:var(--warn)}.part[data-astro-cid-sgb6tuza][data-status=skipped] .part-status[data-astro-cid-sgb6tuza]{background:var(--subtle);color:var(--faint)}.part[data-astro-cid-sgb6tuza][data-status=done] .part-status[data-astro-cid-sgb6tuza]{background:var(--ok-soft);color:var(--ok)}.part-btn[data-astro-cid-sgb6tuza]{color:var(--muted);border-radius:.5rem;align-items:center;gap:.25rem;padding:.2rem .5rem;display:inline-flex}.part-btn[data-astro-cid-sgb6tuza]:hover{color:var(--fg);background:var(--subtle)}.part[data-astro-cid-sgb6tuza][data-status=done] [data-astro-cid-sgb6tuza][data-part-skip],.part[data-astro-cid-sgb6tuza] .when-closed[data-astro-cid-sgb6tuza],.part[data-astro-cid-sgb6tuza][data-collapsed] .when-open[data-astro-cid-sgb6tuza]{display:none}.part[data-astro-cid-sgb6tuza][data-collapsed] .when-closed[data-astro-cid-sgb6tuza]{display:inline}.part[data-astro-cid-sgb6tuza][data-collapsed] .part-chevron{transform:rotate(-90deg)}.part[data-astro-cid-sgb6tuza][data-collapsed] .part-content[data-astro-cid-sgb6tuza]>:not(h2){display:none!important}.part-content[data-astro-cid-sgb6tuza]>h2{cursor:default;margin-top:.35rem}.part[data-astro-cid-sgb6tuza][data-collapsed] .part-content[data-astro-cid-sgb6tuza]>h2{cursor:pointer;margin-bottom:.25rem}.part-summary[data-astro-cid-sgb6tuza]{color:var(--muted);font-size:.95rem;display:none}.part[data-astro-cid-sgb6tuza][data-collapsed] .part-summary[data-astro-cid-sgb6tuza]{display:block}.pro-chip[data-astro-cid-sgb6tuza]{background:var(--brand-soft);color:var(--brand);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;display:inline-flex}html:not(.is-pro) .part[data-astro-cid-sgb6tuza][data-pro] .part-content[data-astro-cid-sgb6tuza]>:not(h2){display:none!important}html:not(.is-pro) .part[data-astro-cid-sgb6tuza][data-pro] .part-summary[data-astro-cid-sgb6tuza]{display:block}html:not(.is-pro) .part[data-astro-cid-sgb6tuza][data-pro] .part-status[data-astro-cid-sgb6tuza],html:not(.is-pro) .part[data-astro-cid-sgb6tuza][data-pro] .part-btn[data-astro-cid-sgb6tuza],.part-paywall[data-astro-cid-sgb6tuza]{display:none}.part[data-astro-cid-sgb6tuza][data-paywall] .part-paywall[data-astro-cid-sgb6tuza]{border:1px solid var(--line);background:var(--subtle);border-radius:.875rem;margin-top:1rem;padding:1rem 1.25rem;display:block}.checkpoint-list[data-astro-cid-zvmrdxa7]{counter-reset:checkpoint}.checkpoint-q[data-astro-cid-zvmrdxa7]{counter-increment:checkpoint}.checkpoint-num[data-astro-cid-zvmrdxa7]:before{content:counter(checkpoint) "."}.checkpoint-option[data-astro-cid-zvmrdxa7]{border:1px solid var(--line);text-align:left;border-radius:.75rem;padding:.55rem .85rem;font-size:.95rem;transition:border-color .15s,background .15s}.checkpoint-option[data-astro-cid-zvmrdxa7]:not(:disabled):hover{border-color:var(--brand)}.checkpoint-option[data-astro-cid-zvmrdxa7][data-state=right]{border-color:color-mix(in oklab, var(--ok) 60%, transparent);background:var(--ok-soft)}.checkpoint-option[data-astro-cid-zvmrdxa7][data-state=wrong]{border-color:color-mix(in oklab, var(--danger) 60%, transparent);background:var(--danger-soft)}.checkpoint-option[data-astro-cid-zvmrdxa7]:disabled:not([data-state]){color:var(--faint)}.checkpoint-result[data-astro-cid-zvmrdxa7][data-passed=true]{background:var(--ok-soft)}.checkpoint-result[data-astro-cid-zvmrdxa7][data-passed=false]{background:var(--warn-soft)}.refresher-body[data-astro-cid-v3yv4sry]>*+*{margin-top:.75em}.compare-toggle[data-astro-cid-dcts7tgt]{border:1px solid var(--line);background:color-mix(in oklab, var(--subtle) 60%, transparent);border-radius:.5rem;align-items:center;gap:.4rem;margin-top:.5rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.compare-toggle[data-astro-cid-dcts7tgt]:hover{border-color:var(--brand)}.compare-toggle[data-astro-cid-dcts7tgt] .when-open[data-astro-cid-dcts7tgt]{display:none}[data-compare][data-open] .compare-toggle[data-astro-cid-dcts7tgt] .when-open[data-astro-cid-dcts7tgt]{display:inline}[data-compare][data-open] .compare-toggle[data-astro-cid-dcts7tgt] .when-closed[data-astro-cid-dcts7tgt]{display:none}[data-compare][data-open] .compare-toggle[data-astro-cid-dcts7tgt] .compare-chevron{transform:rotate(180deg)}.deep-dive-body[data-astro-cid-lcpgo6co]>*+*{margin-top:1em}.deep-dive-body[data-astro-cid-lcpgo6co]>:first-child{margin-top:0}.deep-dive-body[data-astro-cid-lcpgo6co]>:last-child{margin-bottom:0}.fw-inline[data-astro-cid-nxyge2mg]{display:contents}
