:root{--paper:#f7f5f0;--paper-2:#efebe3;--surface:#fffdf9;--ink:#1a1714;--ink-2:#4a443d;--ink-3:#746c62;--rule:#e4dfd5;--rule-strong:#cfc8bb;--red:#c22f17;--red-fill:#e2412a;--red-bg:#fbece7;--red-line:#f1cbbf;--crimson:#b3261a;--green:#2d7a4b;--green-bg:#e8f2ea;--amber:#95580a;--amber-bg:#f8eedb;--blue:#2f5f8a;--blue-bg:#e8eff6;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--radius:14px;--radius-sm:8px;--shadow:0 1px 0 #1a17140a, 0 10px 30px -14px #1a171438;--header-h:60px;--check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.6L12 5.6' fill='none' stroke='%23fffdf9' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--hourglass:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 2.5h7M4.5 13.5h7M5.5 2.5c0 3 5 3.6 5 5.5s-5 2.5-5 5.5M10.5 2.5c0 3-5 3.6-5 5.5s5 2.5 5 5.5' fill='none' stroke='%2395580a' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#14120f;--paper-2:#1c1915;--surface:#1d1a16;--ink:#ece6da;--ink-2:#c4bcae;--ink-3:#958d81;--rule:#2c2721;--rule-strong:#443c33;--red:#ff7a61;--red-fill:#f0543a;--red-bg:#2a1713;--red-line:#55281f;--crimson:#c0301f;--green:#6cc28f;--green-bg:#14241a;--amber:#e3aa4a;--amber-bg:#2a2112;--blue:#8ab8e6;--blue-bg:#142231;--shadow:0 1px 0 #0000004d, 0 10px 30px -14px #000000b3;--check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.6L12 5.6' fill='none' stroke='%2314120f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--hourglass:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 2.5h7M4.5 13.5h7M5.5 2.5c0 3 5 3.6 5 5.5s-5 2.5-5 5.5M10.5 2.5c0 3-5 3.6-5 5.5s5 2.5 5 5.5' fill='none' stroke='%23e3aa4a' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 20px);font-size:106.25%;line-height:1.75}@media (width<=640px){html{font-size:100%}}body{flex-direction:column;min-height:100vh;margin:0;display:flex}main{flex:1;padding-block:2rem 5rem}h1,h2,h3{text-wrap:balance;line-height:1.35}p{text-wrap:pretty}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}img{max-width:100%;height:auto}code,kbd{font-family:var(--mono)}kbd{border:1px solid var(--rule-strong);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:0 .35em;font-size:.78em}::selection{background:color-mix(in srgb, var(--red-fill) 24%, transparent)}:focus-visible{outline:2px solid var(--red-fill);outline-offset:3px;border-radius:4px}.container{width:min(100% - 2.5rem,1140px);margin-inline:auto}.muted{color:var(--ink-3)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{position:absolute;left:-9999px}.skip:focus{z-index:60;background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);padding:.5rem .9rem;top:.75rem;left:1rem}.eyebrow{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-3);align-items:center;gap:.65rem;margin:0 0 1rem;font-size:.76rem;display:flex}.eyebrow:before{content:"";background:var(--red-fill);width:20px;height:2px}.eyebrow a{color:var(--ink-2);text-decoration:none}.eyebrow a:hover{text-decoration:underline}.site-header{z-index:30;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid var(--rule);position:sticky;top:0}.nav{height:var(--header-h);align-items:center;gap:1.25rem;display:flex}.brand{align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.brand-name{letter-spacing:.08em;font-size:1.16rem;font-weight:800}.brand-domain{border-left:1px solid var(--rule-strong);font-family:var(--mono);letter-spacing:0;color:var(--ink-3);padding-left:.6rem;font-size:.76rem;font-weight:500;line-height:1.2}@media (width<=480px){.site-header .brand-domain{display:none}}.mark{flex:none;display:block}.brand-dot{color:var(--red-fill)}.nav-links{gap:.15rem;margin-left:auto;display:flex}.nav-links a{color:var(--ink-2);border-radius:999px;padding:.3rem .75rem;font-size:.94rem;text-decoration:none}.nav-links a:hover{color:var(--ink);background:var(--paper-2)}.nav-links a[aria-current=page]{color:var(--ink);background:var(--paper-2);font-weight:600}.nav-search{border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-3);border-radius:999px;align-items:center;gap:.5rem;padding:.32rem .45rem .32rem .8rem;font-size:.88rem;text-decoration:none;display:inline-flex}.nav-search:hover{color:var(--ink);border-color:var(--ink-3)}.nav-search kbd{font-size:.72rem}@media (width<=640px){.nav{gap:.5rem}.nav-links a{padding:.3rem .55rem}.nav-search{padding:.45rem}.nav-search-label,.nav-search kbd{display:none}}.progress{z-index:40;background:var(--red-fill);transform-origin:0;pointer-events:none;height:3px;display:none;position:fixed;inset:0 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){.progress{animation:linear both progress scroll(root);display:block}}@keyframes progress{to{transform:scaleX(1)}}.site-footer{border-top:1px solid var(--rule);color:var(--ink-3);padding-block:2.5rem 3rem;font-size:.86rem}.footer-grid{flex-wrap:wrap;justify-content:space-between;gap:1.5rem 3rem;display:flex}.footer-grid p{margin:0 0 .25rem}.footer-brand{letter-spacing:.08em;color:var(--ink);align-items:center;gap:.6rem;font-size:1rem;font-weight:800;display:flex}.footer-note{max-width:30em;margin-top:.75rem!important}.footer-links{flex-wrap:wrap;align-content:flex-start;gap:.5rem 1.25rem;display:flex}.footer-links a{color:var(--ink-2);text-decoration:none}.footer-links a:hover{color:var(--ink);text-decoration:underline}.section-head{border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.6rem;display:flex}.section-head h2{margin:0;font-size:1.05rem}.section-head a{color:var(--ink-3);font-size:.86rem;text-decoration:none}.section-head a:hover{color:var(--ink)}.page-head{border-bottom:1.5px solid var(--ink);margin-bottom:.5rem;padding-block:1.5rem 1.75rem}.page-head h1{letter-spacing:-.015em;margin:0;font-size:clamp(1.8rem,4vw,2.5rem)}.chips{flex-wrap:wrap;gap:.5rem;margin:1.1rem 0 0;display:flex}.chip{border:1px solid var(--rule-strong);background:var(--surface);border-radius:999px;padding:.18rem .85rem;font-size:.88rem;text-decoration:none}.chip:hover{border-color:var(--ink)}.empty{color:var(--ink-3);margin:0;padding:2rem 0;font-size:.94rem}.rows{margin:0;padding:0;list-style:none}.row a{border-bottom:1px solid var(--rule);grid-template-columns:6.5rem minmax(0,1fr) auto;gap:1.25rem;padding:1.35rem 0;text-decoration:none;display:grid}.row-side{font-family:var(--mono);color:var(--ink-3);flex-direction:column;gap:.25rem;padding-top:.2rem;font-size:.76rem;display:flex}.row-cat{color:var(--ink-2)}.diff-简单{color:var(--green)}.diff-中等{color:var(--amber)}.diff-困难{color:var(--red)}.row-main{flex-direction:column;min-width:0;display:flex}.row-title{text-wrap:balance;font-size:1.1rem;font-weight:700;line-height:1.5}.row a:hover .row-title{text-decoration:underline;text-decoration-color:var(--red-fill);text-decoration-thickness:1.5px}.row-desc{color:var(--ink-2);margin-top:.25rem;font-size:.93rem}.row-meta{font-family:var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:.3rem 1.1rem;margin-top:.6rem;font-size:.76rem;display:flex}.row-arrow{font-family:var(--mono);color:var(--ink-3);padding-top:.15rem;transition:transform .2s}.row a:hover .row-arrow{color:var(--ink);transform:translate(4px)}@media (width<=640px){.row a{grid-template-columns:minmax(0,1fr);gap:.35rem}.row-side{flex-direction:row;gap:.75rem;padding-top:0}.row-arrow{display:none}}.toc-item:before,.route>h2:before,.route>h3:before,.route-panel>h3:before,.route>.pitfall:before,.route-panel>.pitfall:before,.route>.routes:before,.routes-merge:before,.route-end:before,.route>.redline:before,.route-panel>.redline:before,.toc-item.has-red:before,.meta-red:before,.route>.wait:before,.route-panel>.wait:before,.meta-wait:before,.meta-pit:before,.meta-fork:before{--size:16px;content:"";box-sizing:border-box;width:var(--size);height:var(--size);border:3px solid var(--ink);background:var(--paper);border-radius:50%}.toc-item.has-fork:before,.route>.routes:before,.meta-fork:before{background:var(--ink);border:0;border-radius:3px;transform:rotate(45deg)scale(.78)}.toc-item.has-pit:before,.route>.pitfall:before,.route-panel>.pitfall:before,.meta-pit:before{background:linear-gradient(#fff, #fff) center / 56% 2.5px no-repeat, var(--red-fill);border:0}.route>.redline:before,.route-panel>.redline:before,.toc-item.has-red:before,.meta-red:before{background:var(--crimson);width:22px;height:6px;box-shadow:0 0 0 3px var(--paper);border:0;border-radius:2px}.route>.wait:before,.route-panel>.wait:before{border-color:var(--amber);background:var(--hourglass) center / 72% no-repeat, var(--paper);border-width:2.5px}.meta-wait:before{background:var(--hourglass) center / 100% no-repeat;border:0;border-radius:0}.route-end:before{background:var(--check) center / 78% no-repeat, var(--green);border:0}.hero{max-width:40rem;padding-block:2rem 2.75rem}.hero h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:800;line-height:1.3}.hero-lede{color:var(--ink-2);margin:0 0 1.5rem;font-size:1.02rem}.hero-search{background:var(--surface);border:1px solid var(--rule-strong);border-radius:999px;max-width:30rem;padding:.25rem;display:flex}.hero-search:focus-within{border-color:var(--ink)}.hero-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:.5rem .5rem .5rem 1.05rem;font-size:1rem}.hero-search input::placeholder{color:var(--ink-3)}.hero-search button{background:var(--ink);color:var(--paper);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:0 1.25rem;font-size:.92rem;font-weight:600}.hero-search button:hover{background:color-mix(in srgb, var(--ink) 85%, var(--red-fill))}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.cat-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:1.2rem 1.35rem}.cat-card h2{justify-content:space-between;align-items:baseline;margin:0 0 .6rem;font-size:1.15rem;display:flex}.cat-card h2 a{text-decoration:none}.cat-card h2 a:hover{text-decoration:underline;text-decoration-color:var(--red-fill)}.cat-card h2 span{font-family:var(--mono);color:var(--ink-3);font-size:.78rem;font-weight:400}.cat-card ul{color:var(--ink-2);margin:0;padding-left:1.1em;font-size:.92rem}.cat-card li+li{margin-top:.3rem}.cat-card li a{text-decoration:none}.cat-card li a:hover{color:var(--ink);text-decoration:underline}.cat-more{color:var(--ink-3);margin-top:.75rem;font-size:.86rem;display:inline-block}.guide-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2rem;padding-top:.5rem;display:grid}.crumbs{font-family:var(--mono);color:var(--ink-3);gap:.5rem;margin:0 0 1rem;font-size:.78rem;display:flex}.crumbs a{color:var(--red);text-decoration:none}.crumbs a:first-child{color:var(--ink-3)}.crumbs a:hover{text-decoration:underline}.guide-head h1{letter-spacing:-.02em;max-width:22em;margin:0 0 .9rem;font-size:clamp(1.75rem,4.2vw,2.65rem);font-weight:800;line-height:1.28}.lede{max-width:38em;color:var(--ink-2);margin:0 0 1.75rem;font-size:1.06rem}.stamp{border:2px solid var(--red-fill);box-shadow:inset 0 0 0 2px var(--paper), inset 0 0 0 3.5px var(--red-fill);color:var(--red);opacity:.92;user-select:none;border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;margin:2.25rem .5rem 0 0;padding:.5rem .85rem .45rem;display:inline-flex;transform:rotate(-6deg)}.stamp-top{letter-spacing:.35em;padding-left:.35em;font-size:1rem;font-weight:800}.stamp-date{font-family:var(--mono);letter-spacing:.04em;font-size:.72rem;font-weight:600}.stamp.is-stale{color:var(--ink-3);border-color:var(--ink-3);box-shadow:inset 0 0 0 2px var(--paper), inset 0 0 0 3.5px var(--ink-3)}@media (width<=720px){.guide-head{grid-template-columns:minmax(0,1fr);gap:0}.stamp{flex-direction:row;order:-1;justify-self:start;gap:.6rem;margin:0 0 1.1rem;padding:.3rem .7rem;transform:rotate(-2deg)}.stamp-top{letter-spacing:.2em;font-size:.85rem}}.facts{background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);flex-wrap:wrap;gap:1px;margin:0;display:flex;overflow:hidden}.facts>div{background:var(--surface);flex:auto;min-width:7.5rem;padding:.75rem 1.05rem}.facts dt{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);font-size:.7rem}.facts dd{margin:.1rem 0 0;font-size:.95rem;font-weight:650}.facts .is-pit dd,.facts .is-red dd{color:var(--red)}.stale{background:var(--amber-bg);color:var(--amber);border-radius:var(--radius-sm);margin:1rem 0 0;padding:.75rem 1.1rem;font-size:.92rem}.guide-intro{gap:1.25rem;margin-block:1.75rem 2.75rem;display:grid}@media (width>=880px){.guide-intro.has-both{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start}}.box-title{align-items:center;gap:.6rem;margin:0 0 .6rem;font-size:1rem;display:flex}.box-count{font-family:var(--mono);color:var(--ink-3);margin-left:auto;font-size:.74rem;font-weight:500}.prep{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:1.15rem 1.35rem .85rem}.prep ul{margin:0;padding:0;list-style:none}.prep li+li{border-top:1px dashed var(--rule)}.prep label{cursor:pointer;align-items:flex-start;gap:.75rem;padding:.5rem 0;font-size:.94rem;line-height:1.6;display:flex}.prep input{width:1.05rem;height:1.05rem;accent-color:var(--green);cursor:pointer;flex:none;margin:.2rem 0 0}.prep input:checked+span{color:var(--ink-3);text-decoration:line-through}.prep[data-complete] .box-count{color:var(--green);font-weight:700}.pit-summary{background:repeating-linear-gradient(-45deg, var(--red-fill) 0 9px, transparent 9px 18px) top / 100% 6px no-repeat, var(--red-bg);border:1px solid var(--red-line);border-radius:var(--radius);padding:calc(6px + 1.05rem) 1.35rem .6rem}.pit-summary .box-title{color:var(--red)}.pit-summary .box-title:before{--size:18px;content:"";width:var(--size);height:var(--size);background:linear-gradient(#fff, #fff) center / 56% 2.5px no-repeat, var(--red-fill);border-radius:50%}.pit-summary .box-count{color:var(--red)}.pit-summary ol{margin:0;padding:0;list-style:none}.pit-summary li+li{border-top:1px solid var(--red-line)}.pit-summary a{grid-template-columns:1.6rem minmax(0,1fr);gap:.05rem .6rem;padding:.6rem 0;text-decoration:none;display:grid}.pit-no{font-family:var(--mono);color:var(--red);grid-row:span 2;padding-top:.18rem;font-size:.8rem;font-weight:700}.pit-title{font-weight:650;line-height:1.55}.pit-summary a:hover .pit-title{text-decoration:underline;text-decoration-color:var(--red-fill)}.pit-where{color:var(--ink-2);font-size:.8rem}.pit-route{border:1px solid var(--red-line);font-family:var(--mono);color:var(--red);border-radius:4px;margin-right:.5rem;padding:0 .35rem;font-size:.72rem}.guide-body{gap:2rem;display:grid}@media (width>=1060px){.guide-body{grid-template-columns:minmax(0,700px) 250px;justify-content:space-between;gap:4rem}.toc-mobile{display:none}}@media (width<=1059px){.guide-side{display:none}}.toc{top:calc(var(--header-h) + 1.75rem);max-height:calc(100vh - var(--header-h) - 3.5rem);overscroll-behavior:contain;font-size:.86rem;position:sticky;overflow-y:auto}.toc-title{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);justify-content:space-between;margin:0 0 .75rem;font-size:.72rem;display:flex}.toc-list{margin:0;padding:0;list-style:none;position:relative}.toc-list:before{content:"";background:var(--rule);width:2px;position:absolute;top:.75rem;bottom:.75rem;left:6px}.toc-item{padding-left:1.65rem;position:relative}.toc-item:before{--size:14px;border-width:2.5px;border-color:var(--rule-strong);position:absolute;top:.55rem;left:0}.toc-item.d3{padding-left:2.5rem}.toc-item.d3:before{--size:8px;border-width:2px;top:.72rem;left:3px}.toc-item.has-fork:before{background:var(--ink-3)}.toc-item.has-red:before,.toc-item.has-red:has(a[aria-current=true]):before{background:var(--crimson);border:0;width:18px;height:5px;top:.78rem;left:-2px}.toc-item a{color:var(--ink-3);padding:.3rem 0;line-height:1.5;text-decoration:none;display:block}.toc-item a:hover{color:var(--ink)}.toc-item a[aria-current=true]{color:var(--ink);font-weight:650}.toc-item:has(a[aria-current=true]):before{border-color:var(--ink);background:var(--ink)}.toc-item.has-pit:has(a[aria-current=true]):before{background:linear-gradient(#fff, #fff) center / 56% 2.5px no-repeat, var(--red-fill)}.toc-item.has-fork:has(a[aria-current=true]):before{background:var(--ink)}.toc-line{align-items:baseline;gap:.4rem;display:flex}.toc-text{min-width:0}.toc-meta{font-family:var(--mono);color:var(--ink-3);gap:.75rem;font-size:.68rem;font-weight:400;display:flex}.toc-route{border:1px solid var(--rule-strong);font-family:var(--mono);border-radius:4px;flex:none;padding:0 .3rem;font-size:.68rem;line-height:1.5}.toc-tag-pit{color:var(--red)}.toc-item.is-done:before,.toc-item.is-done:has(a[aria-current=true]):before{background:var(--check) center / 78% no-repeat, var(--green);border:0;border-radius:50%;width:14px;height:14px;top:.55rem;left:0}.toc-tag-red{color:var(--red);font-weight:700}.toc-mobile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin-bottom:2rem}.toc-mobile summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;font-weight:650;list-style:none;display:flex}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:after{content:"展开";font-family:var(--mono);color:var(--ink-3);font-size:.74rem;font-weight:400}.toc-mobile[open] summary:after{content:"收起"}.toc-mobile-meta{font-family:var(--mono);color:var(--red);margin-left:auto;font-size:.74rem;font-weight:400}.toc-mobile nav{padding:0 1.1rem .9rem;font-size:.9rem}.prose{letter-spacing:.012em;min-width:0;font-size:1.0625rem;line-height:1.9}.prose>*,.route-panel>*,.pitfall-body>*,.redline-body>*,.consequence-body>*,.wait-body>*,.checkpoint-body>*,.callout-body>*,.fix-body>*{margin-block:0 1.1em}.prose>:last-child,.route-panel>:last-child,.pitfall-body>:last-child,.redline-body>:last-child,.consequence-body>:last-child,.wait-body>:last-child,.checkpoint-body>:last-child,.callout-body>:last-child,.fix-body>:last-child{margin-bottom:0}.prose h2{letter-spacing:-.005em;margin-block:2.6em .75em;font-size:1.42rem;line-height:1.4}.prose h3{margin-block:2em .6em;font-size:1.14rem;line-height:1.5}.prose>h2:first-child,.prose>h3:first-child{margin-top:0}.prose h2+h3{margin-top:1em}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--red-fill);text-decoration-thickness:1.5px}.prose a:hover{color:var(--red)}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-block:.3em}.prose li::marker{color:var(--ink-3)}.prose ol>li::marker{font-family:var(--mono);font-size:.88em}.prose strong{font-weight:700}.prose img{border:1px solid var(--rule);border-radius:var(--radius-sm);margin-inline:auto;display:block}.prose figure{margin-inline:0}.prose figcaption{text-align:center;color:var(--ink-3);margin-top:.6em;font-size:.82rem}.prose blockquote{border-left:3px solid var(--rule-strong);color:var(--ink-2);margin-inline:0;padding:.1em 0 .1em 1em}.prose hr{border:0;border-top:1px dashed var(--rule-strong);margin-block:2.5em}.prose table{border-collapse:collapse;width:100%;font-size:.92rem;line-height:1.6;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--rule);text-align:left;vertical-align:top;padding:.55em .85em}.prose th{background:var(--paper-2);font-weight:650}.prose :not(pre)>code{background:var(--paper-2);border:1px solid var(--rule);border-radius:5px;padding:.08em .38em;font-size:.86em}.prose pre{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:1rem 1.15rem;font-size:.85rem;line-height:1.65;overflow-x:auto}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.route{--rl-pad:2.6rem;--rl-x:8px;padding-left:var(--rl-pad);position:relative}@media (width<=640px){.route{--rl-pad:1.75rem;--rl-x:6px}}.route:before{content:"";left:var(--rl-x);background:var(--rule-strong);width:2px;position:absolute;top:.75rem;bottom:.8rem}.route>.route-end{font-family:var(--mono);letter-spacing:.08em;color:var(--green);margin:2.75rem 0 0;font-size:.78rem;font-weight:700;line-height:1.6rem;position:relative}.route-end:before{--size:22px;z-index:1;left:calc(var(--rl-x) + 1px - var(--rl-pad) - var(--size) / 2);top:calc(.8rem - var(--size) / 2);position:absolute}.route>h2,.route>h3,.route-panel>h3,.route>.pitfall,.route-panel>.pitfall,.route>.routes{position:relative}.route>h2:before,.route>h3:before,.route-panel>h3:before,.route>.pitfall:before,.route-panel>.pitfall:before,.route>.routes:before{z-index:1;left:calc(var(--rl-x) + 1px - var(--rl-pad) - var(--size) / 2);position:absolute}.route>h2:before{--size:18px;top:calc(.7em - var(--size) / 2)}.route>h2.is-done:before{background:var(--check) center / 75% no-repeat, var(--green);border:0}.route>h3:before,.route-panel>h3:before{--size:10px;top:calc(.75em - var(--size) / 2);border-width:2px}.route>.pitfall:before,.route-panel>.pitfall:before{--size:18px;top:calc(6px + 1.15rem)}.route>.routes:before{--size:18px;top:.1rem}.route>.redline,.route-panel>.redline,.route>.wait,.route-panel>.wait{position:relative}.route>.wait:before,.route-panel>.wait:before{--size:20px;z-index:1;left:calc(var(--rl-x) + 1px - var(--rl-pad) - var(--size) / 2);top:calc(1.5rem - var(--size) / 2);position:absolute}.route>.redline:before,.route-panel>.redline:before{z-index:1;left:calc(var(--rl-x) + 1px - var(--rl-pad) - 11px);position:absolute;top:calc(1.15rem - 3px)}.route>.routes:after{content:"";left:calc(var(--rl-x) - var(--rl-pad));background:repeating-linear-gradient(to bottom, var(--paper) 0 5px, transparent 5px 10px);width:2px;position:absolute;top:1.6rem;bottom:1.6rem}.pitfall{background:repeating-linear-gradient(-45deg, var(--red-fill) 0 9px, transparent 9px 18px) top / 100% 6px no-repeat, var(--red-bg);border:1px solid var(--red-line);border-radius:var(--radius);margin-block:1.75em;padding:calc(6px + 1rem) 1.3rem 1.1rem}.pitfall:has(.pitfall-title:target){animation:1.8s ease-out flash}@keyframes flash{0%,35%{box-shadow:0 0 0 5px color-mix(in srgb, var(--red-fill) 35%, transparent)}to{box-shadow:0 0 #0000}}.pitfall-label{font-family:var(--mono);letter-spacing:.08em;color:var(--red);align-items:center;gap:.45rem;margin:0 0 .2rem;font-size:.74rem;font-weight:700;display:flex}.pitfall-no:before{content:"#";opacity:.6}.prose .pitfall-title{margin:0 0 .55rem;scroll-margin-top:3rem;font-size:1.06rem;font-weight:750;line-height:1.55}.pitfall-body{font-size:.98rem;line-height:1.85}.redline,.redline-summary{border:2px solid var(--crimson);border-radius:var(--radius);background:var(--surface)}.redline{margin-block:1.9em}.redline-band{border-radius:calc(var(--radius) - 3px) calc(var(--radius) - 3px) 0 0;background:var(--crimson);color:#fff;font-family:var(--mono);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 1.15rem;font-size:.76rem;font-weight:700;line-height:1.6;display:flex;margin:0!important}.redline-no{margin-left:.5rem}.redline-no:before{content:"#";opacity:.7}.redline-band-note{letter-spacing:.08em;opacity:.9;font-weight:500}.redline-main{padding:.95rem 1.25rem 1.1rem}.prose .redline-title{margin:0 0 .5rem;scroll-margin-top:3.5rem;font-size:1.08rem;font-weight:800;line-height:1.55}.redline-body{font-size:.98rem;line-height:1.85}.redline:has(.redline-title:target){animation:1.8s ease-out flash}.consequence{background:var(--red-bg);border:1px solid var(--red-line);border-left:3px solid var(--crimson);border-radius:var(--radius-sm);margin-top:.9rem;padding:.75rem 1rem .8rem}.consequence-label{font-family:var(--mono);letter-spacing:.08em;color:var(--red);align-items:center;gap:.4rem;margin:0 0 .2rem;font-size:.74rem;font-weight:700;display:flex}.consequence-label:before{content:"";background:var(--crimson);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);width:13px;height:13px}.consequence-body{font-size:.97rem}.redline-summary{margin-block:1.75rem 2.75rem}.redline-summary:has(+.guide-intro,+.flow),.flow:has(+.guide-intro){margin-bottom:1.25rem}.redline-summary+.guide-intro,.redline-summary+.flow,.flow+.guide-intro{margin-top:0}.redline-summary ol{margin:0;padding:.35rem 1.35rem .5rem;list-style:none}.redline-summary li+li{border-top:1px solid var(--rule)}.redline-summary a{grid-template-columns:1.6rem minmax(0,1fr);gap:.05rem .6rem;padding:.6rem 0;text-decoration:none;display:grid}.redline-sum-no{font-family:var(--mono);color:var(--red);grid-row:span 2;padding-top:.18rem;font-size:.8rem;font-weight:700}.redline-sum-title{font-weight:700;line-height:1.55}.redline-summary a:hover .redline-sum-title{text-decoration:underline;text-decoration-color:var(--crimson)}.btn{background:var(--ink);color:var(--paper);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.42rem 1.05rem;font-size:.86rem;font-weight:600}.btn:hover{background:color-mix(in srgb, var(--ink) 85%, var(--red-fill))}.btn-link{color:var(--ink-3);font:inherit;text-underline-offset:.22em;cursor:pointer;background:0 0;border:0;padding:0;font-size:.84rem;text-decoration:underline}.btn-link:hover{color:var(--ink)}.flow{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);margin-block:1.75rem 2.75rem;padding:1.15rem 1.35rem 1.05rem}.flow-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;margin-bottom:1.1rem;display:flex}.flow-head .box-title{margin:0}.flow-sum{font-family:var(--mono);color:var(--ink-2);margin:0;font-size:.76rem}.flow-steps{grid-auto-columns:minmax(132px,1fr);grid-auto-flow:column;margin:0;padding:0 0 .25rem;list-style:none;display:grid;overflow-x:auto}.flow-step a{flex-direction:column;gap:.1rem;height:100%;padding-right:.9rem;text-decoration:none;display:flex;position:relative}.flow-step a:before{content:"";background:var(--rule-strong);height:2px;position:absolute;top:8px;left:9px;right:0}.flow-step:last-child a:before{display:none}.flow-step[data-done] a:before{background:var(--green)}.flow-node{z-index:1;border:3px solid var(--ink);background:var(--surface);border-radius:50%;width:18px;height:18px;margin-bottom:.5rem;position:relative}.flow-step[data-done] .flow-node{background:var(--check) center / 75% no-repeat, var(--green);border:0}.flow-step[data-next] .flow-node{background:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--ink) 14%, transparent)}.flow-no{font-family:var(--mono);color:var(--ink-3);font-size:.72rem}.flow-step[data-next] .flow-no:after{content:" · 下一步";color:var(--red);font-weight:700}.flow-step[data-done] .flow-no:after{content:" · 已完成";color:var(--green)}.flow-title{font-size:.92rem;font-weight:650;line-height:1.45}.flow-step a:hover .flow-title{text-decoration:underline;text-decoration-color:var(--red-fill)}.flow-marks{font-family:var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:.15rem .65rem;margin-top:.3rem;font-size:.68rem;display:flex}.flow-progress{border-top:1px dashed var(--rule);margin-top:1rem;padding-top:.9rem}.flow-bar{background:var(--paper-2);border-radius:999px;height:6px;overflow:hidden}.flow-bar span{width:calc(var(--progress,0) * 100%);border-radius:inherit;background:var(--green);height:100%;transition:width .3s;display:block}.flow-status{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;margin:.65rem 0 0;font-size:.86rem;display:flex}.flow-status a{color:var(--ink);text-decoration-color:var(--red-fill);font-weight:650}.flow-finished{color:var(--green);font-weight:700}.flow-status [data-flow-reset]{margin-left:auto}@media (width<=640px){.flow-steps{grid-auto-flow:row;overflow:visible}.flow-step a{grid-template-columns:18px minmax(0,1fr);column-gap:.8rem;padding:0 0 .9rem;display:grid}.flow-node{grid-row:span 3;margin:0}.flow-step a:before{width:2px;height:auto;inset:18px auto 0 8px}}.step-end{display:none}.js .step-end{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1.75em;display:flex}.step-done{border:1.5px solid var(--rule-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.6rem;padding:.5rem 1.1rem .5rem .8rem;font-size:.92rem;font-weight:650;transition:border-color .15s,background-color .15s;display:inline-flex}.step-done:hover{border-color:var(--ink)}.step-done-box{border:2px solid var(--ink-3);border-radius:5px;flex:none;width:18px;height:18px}.step-end[data-done] .step-done{border-color:var(--green);background:var(--green-bg);color:var(--green)}.step-end[data-done] .step-done-box{background:var(--check) center / 80% no-repeat, var(--green);border:0}.step-end-meta{font-family:var(--mono);color:var(--ink-3);font-size:.74rem}.wait{background:var(--amber-bg);border:1px solid color-mix(in srgb, var(--amber) 28%, transparent);border-radius:var(--radius);margin-block:1.75em;padding:.95rem 1.25rem 1rem}.wait-label,.checkpoint-label{font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:.45rem;margin:0 0 .15rem;font-size:.74rem;font-weight:700;display:flex}.wait-label{color:var(--amber)}.wait-label:before{content:"";background:var(--hourglass) center / 100% no-repeat;width:14px;height:14px}.wait-time{margin:0 0 .4rem;font-size:1.15rem;font-weight:800;line-height:1.5}.wait-body{font-size:.97rem}.wait-timer{border-top:1px dashed color-mix(in srgb, var(--amber) 35%, transparent);margin-top:.85rem;padding-top:.8rem}.wait-status{color:var(--ink-2);margin:0 0 .65rem;font-size:.9rem;line-height:1.7}.wait.is-overdue .wait-status{color:var(--red)}.wait-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;margin:0;display:flex}.checkpoint{background:var(--surface);border:1.5px dashed var(--green);border-radius:var(--radius);margin-block:1.6em;padding:.85rem 1.15rem .9rem}.checkpoint-label{color:var(--green)}.checkpoint-label:before{content:"";background:var(--check) center / 78% no-repeat, var(--green);border-radius:50%;width:14px;height:14px}.checkpoint-label span{font-family:var(--sans);letter-spacing:0;color:var(--ink-3);font-size:.8rem;font-weight:500}.checkpoint-body{font-size:.98rem}.fix{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--green);border-radius:var(--radius-sm);margin-top:.9rem;padding:.75rem 1rem .8rem}.fix-label{font-family:var(--mono);letter-spacing:.08em;color:var(--green);align-items:center;gap:.4rem;margin:0 0 .2rem;font-size:.74rem;font-weight:700;display:flex}.fix-label:before{content:"";background:var(--check) center / 78% no-repeat, var(--green);border-radius:50%;width:14px;height:14px}.fix-body{font-size:.97rem}.callout{background:var(--c-bg);border-left:3px solid var(--c);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-block:1.6em;padding:.85rem 1.15rem .9rem}.callout-tip{--c:var(--green);--c-bg:var(--green-bg)}.callout-warn{--c:var(--amber);--c-bg:var(--amber-bg)}.callout-info{--c:var(--blue);--c-bg:var(--blue-bg)}.callout-label{font-family:var(--mono);letter-spacing:.08em;color:var(--c);margin:0 0 .15rem;font-size:.74rem;font-weight:700}.callout-title{margin:0 0 .3rem;font-weight:700}.callout-body{font-size:.97rem}.routes{margin-block:2em 2.25em}.routes-head{margin-bottom:.95rem}.routes-kicker{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-2);align-items:center;gap:.45rem;margin:0;font-size:.76rem;display:flex}.routes-kicker strong{color:var(--ink)}.routes-q{margin:.2rem 0 0;font-size:1.12rem;font-weight:750;line-height:1.5}.routes-tabs{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;display:grid}.route-card{background:var(--surface);border:1.5px solid var(--rule);border-radius:var(--radius);flex-direction:column;gap:.3rem;padding:.95rem 1.05rem .85rem;line-height:1.55;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.prose .route-card,.prose .route-card:hover{color:inherit;text-decoration:none}.route-card:hover{border-color:var(--rule-strong);transform:translateY(-1px)}.js .route-card[data-active]{border-color:var(--ink);box-shadow:var(--shadow)}.route-card-top{justify-content:space-between;align-items:center;margin-bottom:.15rem;display:flex}.route-letter{border:1.5px solid var(--ink);width:1.65rem;height:1.65rem;font-family:var(--mono);border-radius:7px;flex:none;place-items:center;font-size:.85rem;font-weight:700;line-height:1;display:inline-grid}.js .route-card[data-active] .route-letter,.route-panel-head .route-letter{background:var(--ink);color:var(--paper)}.route-rec{background:var(--green-bg);color:var(--green);border-radius:999px;padding:.05rem .55rem;font-size:.74rem;font-weight:700}.route-card-title{font-size:1rem;font-weight:750}.route-card-meta{color:var(--ink-2);flex-wrap:wrap;gap:.15rem .8rem;font-size:.8rem;display:flex}.route-card-best{color:var(--ink-2);font-size:.8rem}.route-card-flags{font-family:var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:.2rem .8rem;margin-top:auto;padding-top:.45rem;font-size:.72rem;display:flex}.routes-toolbar{justify-content:flex-end;margin-top:.4rem;display:flex}.routes-expand{color:var(--ink-3);font:inherit;text-underline-offset:.22em;cursor:pointer;background:0 0;border:0;padding:.2rem 0;font-size:.8rem;text-decoration:underline}.routes-expand:hover{color:var(--ink)}.route-panels{margin-top:1.1rem}.js .routes:not([data-expanded]) .route-panel:not([data-active]){display:none}.route-panel+.route-panel{margin-top:2.75rem}.route-panel-head{border-bottom:1px dashed var(--rule-strong);align-items:center;gap:.6rem;padding-bottom:.65rem;font-weight:750;line-height:1.5;display:flex;margin-bottom:1.1rem!important}.routes-merge{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-3);align-items:center;margin:2rem 0 0;font-size:.76rem;display:flex;position:relative}.routes-merge:before{--size:12px;z-index:1;left:calc(var(--rl-x) + 1px - var(--rl-pad) - var(--size) / 2);border-width:2.5px;position:absolute}.tags{color:var(--ink-3);flex-wrap:wrap;gap:.4rem .9rem;margin:2.5rem 0 0;font-size:.88rem;display:flex}.guide-foot{border-top:1px solid var(--rule);color:var(--ink-3);margin:1.25rem 0 0;padding-top:1rem;font-size:.84rem}.related{margin-top:4.5rem}.meta-red,.meta-pit,.meta-fork,.meta-wait{align-items:center;gap:.35rem;display:inline-flex}.meta-red,.meta-pit{color:var(--red)}.meta-red{font-weight:700}.meta-red:before{width:12px;height:4px;box-shadow:none}.meta-pit:before,.meta-fork:before{--size:10px}.meta-fork:before{background:var(--ink-3)}.meta-wait{color:var(--amber)}.meta-wait:before{--size:11px}.about{max-width:680px;margin-top:2rem}.search-page{max-width:760px}#search{--pagefind-ui-scale:.92;--pagefind-ui-primary:var(--ink);--pagefind-ui-text:var(--ink);--pagefind-ui-background:var(--surface);--pagefind-ui-border:var(--rule-strong);--pagefind-ui-tag:var(--paper-2);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:14px;--pagefind-ui-font:var(--sans);margin-top:1.75rem}#search mark{background:color-mix(in srgb, var(--red-fill) 22%, transparent);color:inherit}.search-cats{margin-top:2.5rem}.search-cats-title{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);margin:0;font-size:.74rem}.notfound{text-align:center;max-width:560px;margin-inline:auto;padding-block:3rem}.notfound .eyebrow{justify-content:center}.notfound h1{letter-spacing:-.02em;margin:0 0 .75rem;font-size:clamp(2.2rem,6vw,3.2rem)}.notfound p{color:var(--ink-2)}.barrier{border:2px solid var(--red-fill);background:repeating-linear-gradient(-45deg, var(--red-fill) 0 18px, var(--paper) 18px 36px);border-radius:8px;height:26px;margin:0 auto 2.25rem}.notfound-links{justify-content:center;gap:1.5rem;margin-top:1.75rem;display:flex}.notfound-links a{color:var(--ink);text-decoration-color:var(--red-fill);font-weight:600}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.guide-side,.toc-mobile,.routes-tabs,.routes-toolbar,.progress,.related{display:none!important}.route-panel{display:block!important}.step-end,.wait-timer,.flow-progress{display:none!important}.stamp{transform:none}}
