.BlogPost-module__InHyNW__post_wrapper{box-sizing:border-box;flex-direction:column;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.BlogPost-module__InHyNW__post_container{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;min-width:320px;max-width:100%;margin-top:112px;margin-bottom:16rem;display:flex;position:relative}.BlogPost-module__InHyNW__post_backlink{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-article-link);margin-bottom:.75rem}.BlogPost-module__InHyNW__post_category{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border-radius:999px;margin-top:.5rem;margin-bottom:.5rem;padding:.2rem .8rem}.BlogPost-module__InHyNW__post_title{font-family:var(--font-family-main);font-size:var(--font-size-large);font-weight:var(--font-weight-bold);color:var(--color-accent-title);text-align:center;margin-bottom:.5rem}.BlogPost-module__InHyNW__post_date{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-article-text-secondary);text-align:center;opacity:.8;margin-bottom:2rem}.BlogPost-module__InHyNW__post_meta_row{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.BlogPost-module__InHyNW__post_series_badge{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border-radius:999px;padding:.15rem .8rem}.BlogPost-module__InHyNW__post_tags{flex-wrap:wrap;gap:.25rem;display:flex}.BlogPost-module__InHyNW__post_tag{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border-radius:999px;padding:.1rem .6rem}.BlogPost-module__InHyNW__post_tag_variant_0{color:#38bdf8}.BlogPost-module__InHyNW__post_tag_variant_1{color:#fb7185}.BlogPost-module__InHyNW__post_tag_variant_2{color:#f97316}.BlogPost-module__InHyNW__post_tag_variant_3{color:#22c55e}.BlogPost-module__InHyNW__post_tag_variant_4{color:#a855f7}.BlogPost-module__InHyNW__post_series_section{width:calc(100vw - 2rem);max-width:1040px;margin:3rem auto 0}.BlogPost-module__InHyNW__post_series_title{font-family:var(--font-family-main);font-size:var(--font-size-medium);font-weight:var(--font-weight-bold);color:var(--color-article-title);margin-bottom:1rem}.BlogPost-module__InHyNW__post_series_list{margin:0;padding:0;list-style:none}.BlogPost-module__InHyNW__post_series_item,.BlogPost-module__InHyNW__post_series_item_active{margin-bottom:.5rem}.BlogPost-module__InHyNW__post_series_item a,.BlogPost-module__InHyNW__post_series_item_active a{color:var(--color-article-link);text-decoration:none}.BlogPost-module__InHyNW__post_series_item_active a{font-weight:var(--font-weight-bold)}.BlogPost-module__InHyNW__post_recommend_section{width:calc(100vw - 2rem);max-width:1040px;margin:3rem auto 0}.BlogPost-module__InHyNW__post_recommend_title{font-family:var(--font-family-main);font-size:var(--font-size-medium);font-weight:var(--font-weight-bold);color:var(--color-article-title);margin-bottom:1rem}.BlogPost-module__InHyNW__post_recommend_list{margin:0;padding:0;list-style:none}.BlogPost-module__InHyNW__post_recommend_item{margin-bottom:.5rem}.BlogPost-module__InHyNW__post_recommend_item a{color:var(--color-article-link);text-decoration:none}.BlogPost-module__InHyNW__post_content{letter-spacing:.02em;text-align:justify;-webkit-user-select:text;user-select:text;width:100%;max-width:840px;margin:0 auto;font-size:1rem;line-height:1.6}.BlogPost-module__InHyNW__post_content h1{margin:2em 0 1em;font-size:2.25rem}.BlogPost-module__InHyNW__post_content h2{margin:1.8em 0 .8em;font-size:1.875rem}.BlogPost-module__InHyNW__post_content h3{margin:1.6em 0 .6em;font-size:1.5rem}.BlogPost-module__InHyNW__post_content h4{margin:1.4em 0 .4em;font-size:1.25rem}.BlogPost-module__InHyNW__post_content h5{margin:1.2em 0 .2em;font-size:1.125rem}.BlogPost-module__InHyNW__post_content h6{margin:1em 0;font-size:1rem}.BlogPost-module__InHyNW__post_content h1,.BlogPost-module__InHyNW__post_content h2,.BlogPost-module__InHyNW__post_content h3,.BlogPost-module__InHyNW__post_content h4,.BlogPost-module__InHyNW__post_content h5,.BlogPost-module__InHyNW__post_content h6{font-family:var(--font-family-main);font-weight:var(--font-weight-bold);color:var(--color-article-title);line-height:1.4}.BlogPost-module__InHyNW__post_content h1:after,.BlogPost-module__InHyNW__post_content h2:after{content:"";background-color:var(--color-article-title);opacity:.2;width:100%;height:1px;margin-top:.5em;display:block}.BlogPost-module__InHyNW__post_content p,.BlogPost-module__InHyNW__post_content li{color:var(--color-article-text);margin:0 0 1.2em;font-size:1em;line-height:1.6}.BlogPost-module__InHyNW__post_content a{text-underline-offset:.2em;color:var(--color-article-link);font-size:.95em;text-decoration:underline}.BlogPost-module__InHyNW__post_content blockquote{color:var(--color-article-text-secondary);border-left:4px solid var(--color-accent-solid);background-color:#7f7f7f0d;border-radius:0 4px 4px 0;margin:1.5em 0;padding:1em 1.5em;font-size:1.05em;line-height:1.7}.BlogPost-module__InHyNW__md_callout{border-left:4px solid var(--color-accent-solid);background-color:#94a3b80f;border-radius:.75rem;margin:1.5em 0;padding:.9em 1em;font-size:.95em}.BlogPost-module__InHyNW__md_callout_label{font-size:.75em;font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-title);opacity:.9}.BlogPost-module__InHyNW__md_callout_body{color:var(--color-article-text);margin-top:.35rem}.BlogPost-module__InHyNW__md_callout_note{background-color:#38bdf814;border-left-color:#38bdf8}.BlogPost-module__InHyNW__md_callout_tip{background-color:#22c55e14;border-left-color:#22c55e}.BlogPost-module__InHyNW__md_callout_warning{background-color:#f9731614;border-left-color:#f97316}.BlogPost-module__InHyNW__md_callout_important{background-color:#6366f114;border-left-color:#6366f1}.BlogPost-module__InHyNW__md_callout_caution{background-color:#ef444414;border-left-color:#ef4444}.BlogPost-module__InHyNW__md_tabs{border:1px solid var(--color-accent-stroke);background-color:var(--color-bg-secondary);border-radius:1rem;margin:2em 0;overflow:hidden}.BlogPost-module__InHyNW__md_tabs_headers{border-bottom:1px solid #94a3b859;gap:.25rem;padding:.7rem .9rem .45rem;display:flex;overflow-x:auto}.BlogPost-module__InHyNW__md_tabs_header{color:var(--color-article-text-secondary);font-family:var(--font-family-main);cursor:pointer;white-space:nowrap;background-color:#0000;border:none;border-radius:999px;padding:.35rem .9rem;font-size:.85rem}.BlogPost-module__InHyNW__md_tabs_header_active{background-color:var(--color-accent-solid);color:var(--color-bg-primary)}.BlogPost-module__InHyNW__md_tabs_panel{padding:.9rem 1rem 1rem}.BlogPost-module__InHyNW__md_mermaid{border:1px solid var(--color-accent-stroke);background:var(--color-bg-secondary);border-radius:.75rem;margin:1.5rem 0;padding:1rem;position:relative}.BlogPost-module__InHyNW__md_mermaid_fullscreen{z-index:2000;background:var(--color-bg);box-sizing:border-box;border-radius:0;max-width:100dvw;max-height:100dvh;margin:0;padding:3.5rem 1rem 1rem;position:fixed;inset:0}.BlogPost-module__InHyNW__md_mermaid_toolbar{-webkit-user-select:none;user-select:none;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.BlogPost-module__InHyNW__md_mermaid_btn{border:1px solid var(--color-accent-stroke);background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9999px;min-width:44px;min-height:36px;padding:.4rem .75rem;font-size:.85rem}.BlogPost-module__InHyNW__md_mermaid_btn_active{background:var(--color-accent-solid);color:var(--color-bg-primary);border-color:#0000}.BlogPost-module__InHyNW__md_mermaid_canvas{border:1px solid var(--color-accent-stroke);background:var(--color-bg-card);-webkit-user-select:none;user-select:none;overscroll-behavior:contain;border-radius:.75rem;justify-content:center;align-items:center;min-height:240px;display:flex;overflow:hidden}.BlogPost-module__InHyNW__md_mermaid_canvas_fullscreen{width:100%;max-width:100%;height:calc(100dvh - 5.5rem);min-height:0;max-height:100%;overflow:hidden}.BlogPost-module__InHyNW__md_mermaid_canvas_pannable{cursor:grab;touch-action:none}.BlogPost-module__InHyNW__md_mermaid_canvas_dragging{cursor:grabbing}.BlogPost-module__InHyNW__md_mermaid_content{transform-origin:50%;max-width:100%;max-height:100%;transition:transform 60ms ease-out}.BlogPost-module__InHyNW__md_mermaid_content svg{-webkit-user-select:none;user-select:none;color:#000;max-width:100%;height:auto;display:block}.BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__edgePath path,.BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__arrowheadPath,.BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__flowchart-link{stroke:#000}[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg{color:#fff}[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__edgePath path,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__arrowheadPath,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__flowchart-link{stroke:#fff}[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__edgeLabel,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__edgeLabel text,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__label,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__label text,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg text{fill:#ffffffe6;color:#ffffffe6}[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__node rect,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__node circle,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__node ellipse,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__node polygon,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__node path,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__cluster rect,[data-theme=dark] .BlogPost-module__InHyNW__md_mermaid_content svg .BlogPost-module__InHyNW__cluster polygon{stroke:#ffffff80}.BlogPost-module__InHyNW__md_mermaid_close{background:var(--color-accent-solid);color:var(--color-bg-primary);cursor:pointer;z-index:2100;border:none;border-radius:9999px;min-height:44px;padding:.5rem 1rem;font-size:.9rem;position:fixed;top:1rem;right:1rem}@media (max-width:768px){.BlogPost-module__InHyNW__md_mermaid_toolbar{gap:.4rem}.BlogPost-module__InHyNW__md_mermaid_btn{flex:1 0 auto;min-height:44px;font-size:.9rem}.BlogPost-module__InHyNW__md_mermaid_canvas{min-height:200px}}.BlogPost-module__InHyNW__post_content code{font-family:var(--font-family-mono);color:var(--color-article-title);font-size:.85em;font-weight:var(--font-weight-regular);background-color:#7f7f7f26;border-radius:4px;margin:0 .2em;padding:.2em .4em}.BlogPost-module__InHyNW__post_content pre code{color:inherit;font-size:inherit;background-color:#0000;border-radius:0;margin:0;padding:0}.BlogPost-module__InHyNW__post_content li.BlogPost-module__InHyNW__task-list-item{list-style:none}.BlogPost-module__InHyNW__post_content input[type=checkbox]{appearance:none;border:1px solid var(--color-accent-stroke);vertical-align:middle;pointer-events:none;background-color:#0000;border-radius:.25rem;width:.9em;height:.9em;margin:0 .4em 0 0;position:relative}.BlogPost-module__InHyNW__post_content input[type=checkbox]:checked{background-color:#22c55e;border-color:#22c55e}.BlogPost-module__InHyNW__post_content input[type=checkbox]:checked:after{content:"✓";font-size:.9em;font-weight:var(--font-weight-bold);color:var(--color-bg-primary);position:absolute;top:50%;left:50%;transform:translate(-50%,-60%)}.BlogPost-module__InHyNW__post_toc_container{z-index:52;flex-direction:column;align-items:flex-start;gap:.5rem;display:none;position:fixed;top:6rem;left:1.5rem}.BlogPost-module__InHyNW__post_toc_toggle{background-color:var(--color-theme-main);color:#fff;cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;transition:background-color .2s,transform .2s,box-shadow .2s;display:flex;box-shadow:0 20px 25px -5px #0000001a}.BlogPost-module__InHyNW__post_toc_toggle:hover{background-color:var(--color-theme-main-600)}.BlogPost-module__InHyNW__post_toc_toggle_open{background-color:var(--color-text-secondary)}.BlogPost-module__InHyNW__post_toc_toggle_open:hover{background-color:var(--color-text-primary)}@media (prefers-color-scheme:dark){.BlogPost-module__InHyNW__post_toc_toggle_open{color:#000}}.BlogPost-module__InHyNW__post_toc_toggle_icon{font-size:1.3rem}.BlogPost-module__InHyNW__post_toc_panel{background-color:var(--color-bg-card);border:1px solid var(--color-accent-stroke);border-radius:1rem;flex-direction:column;width:min(260px,100vw - 3rem);max-height:calc(100dvh - 7rem - 10px);padding:.75rem .75rem .9rem;display:flex;box-shadow:0 18px 35px #00000040}@media (max-width:1024px){.BlogPost-module__InHyNW__post_toc{display:none}.BlogPost-module__InHyNW__post_toc_container{display:flex}}@media (max-width:768px){.BlogPost-module__InHyNW__post_toc_container{left:1rem}}.BlogPost-module__InHyNW__post_content table{border-collapse:collapse;width:100%;max-width:100%;margin:2em 0;font-size:.95em}.BlogPost-module__InHyNW__post_content th,.BlogPost-module__InHyNW__post_content td{border:1px solid var(--color-accent-stroke);text-align:left;padding:.75em 1em;line-height:1.5}.BlogPost-module__InHyNW__post_content th{background-color:var(--color-accent-stroke);font-weight:var(--font-weight-bold);color:var(--color-article-title)}.BlogPost-module__InHyNW__post_content tr:nth-child(2n){background-color:#7f7f7f0d}.BlogPost-module__InHyNW__post_content img{border-radius:8px;max-width:100%;height:auto;margin:1.5em 0}.BlogPost-module__InHyNW__md_inline_indent{margin-left:1.5rem;display:inline-block}.BlogPost-module__InHyNW__vercel_button_link{display:inline-block}.BlogPost-module__InHyNW__vercel_button_img{border-radius:4px;width:auto;max-width:none;height:32px;margin:.5rem 0 0;display:block}.BlogPost-module__InHyNW__tip_loading{font-family:var(--font-family-main);font-size:var(--font-size-medium);color:var(--color-accent-title);text-align:center;margin-top:2rem;margin-right:7px;transition:all .3s ease-in-out;animation:.5s infinite BlogPost-module__InHyNW__loading}.BlogPost-module__InHyNW__post_main{justify-content:center;align-items:flex-start;gap:2rem;width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex}.BlogPost-module__InHyNW__post_toc{max-width:280px;font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-article-text-secondary);background-color:var(--color-bg-secondary);border:1px solid var(--color-accent-stroke);border-radius:16px;flex-direction:column;flex:0 0 280px;align-self:flex-start;max-height:calc(100dvh - 170px);padding:.75rem .75rem .85rem;display:flex;position:fixed;top:120px;left:1.5rem;box-shadow:0 10px 40px #00000014}.BlogPost-module__InHyNW__post_toc_title{font-weight:var(--font-weight-bold);color:var(--color-accent-title)}.BlogPost-module__InHyNW__post_toc_body{flex:auto;max-height:100%;padding-right:.25rem;overflow-y:auto}.BlogPost-module__InHyNW__post_toc_panel_header{border-bottom:1px solid #94a3b859;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.4rem;padding:0 .25rem .4rem;display:flex}.BlogPost-module__InHyNW__post_toc_panel_close{color:var(--color-article-text-secondary);cursor:pointer;background:0 0;border:none;padding:.1rem .35rem;font-size:1.1rem;line-height:1}.BlogPost-module__InHyNW__post_toc_list{margin:0;padding:0;list-style:none}.BlogPost-module__InHyNW__post_toc_item{margin-bottom:.35rem}.BlogPost-module__InHyNW__post_toc_item_level_2{margin-left:.5rem}.BlogPost-module__InHyNW__post_toc_item_level_3{margin-left:1.25rem}.BlogPost-module__InHyNW__post_toc_link{color:var(--color-article-link);white-space:normal;word-break:break-word;font-size:.875rem;line-height:1.4;text-decoration:none;display:block}.BlogPost-module__InHyNW__post_toc_link:hover{text-decoration:underline}.BlogPost-module__InHyNW__post_toc_body::-webkit-scrollbar{width:4px}.BlogPost-module__InHyNW__post_toc_body::-webkit-scrollbar-track{background:0 0}.BlogPost-module__InHyNW__post_toc_body::-webkit-scrollbar-thumb{background-color:#94a3b899;border-radius:999px}.BlogPost-module__InHyNW__tip_error{font-family:var(--font-family-main);font-size:var(--font-size-medium);color:var(--color-article-text);text-align:center;opacity:0;margin-top:2rem;transition:all .3s ease-in-out;animation:.5s ease-in-out forwards BlogPost-module__InHyNW__fadeIn}.BlogPost-module__InHyNW__tip_error_details{font-family:var(--font-family-main);font-size:var(--font-size-small);color:var(--color-article-text-secondary);text-align:center;opacity:0;max-width:500px;margin:2rem auto auto;transition:all .3s ease-in-out;animation:.5s ease-in-out .2s forwards BlogPost-module__InHyNW__fadeIn}@keyframes BlogPost-module__InHyNW__fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes BlogPost-module__InHyNW__loading{0%{opacity:.9;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}to{opacity:.9;transform:translateY(0)}}@media (max-width:1024px){.BlogPost-module__InHyNW__post_main{flex-direction:column;max-width:100%;padding-left:0}.BlogPost-module__InHyNW__post_toc{display:none}.BlogPost-module__InHyNW__post_content{box-sizing:border-box;width:100%;max-width:1040px;padding:0 1.5rem;font-size:.9375rem}.BlogPost-module__InHyNW__post_content h1{font-size:1.875rem}.BlogPost-module__InHyNW__post_content h2{font-size:1.625rem}}@media (max-width:480px){.BlogPost-module__InHyNW__post_content h1{font-size:1.5rem}.BlogPost-module__InHyNW__post_content blockquote{padding:1em}}
