@font-face{font-family:Long Cang;src:url(/fonts/longcang-sub.woff2)format("woff2"),url(/fonts/longcang-sub.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Long Cang Fallback;src:local(PingFang SC),local(Hiragino Sans GB),local(Microsoft YaHei),local(Noto Sans CJK SC),local(Source Han Sans SC);ascent-override:88%;descent-override:12%;line-gap-override:0%;size-adjust:100%}:root{--paper:#f6f1e6;--paper-2:#ede5d3;--card:#fffdf7;--ink:#1d2436;--ink-2:#3b4358;--muted:#6f6b60;--line:#d8cfbb;--line-2:#b3a78c;--accent:#0f8f83;--accent-hover:#0b7469;--accent-soft:#d5ede7;--accent-fg:#fffdf7;--marker:#ffd66b;--ok:#2f8f4e;--ok-bg:#dcefdf;--warn:#b0731a;--warn-bg:#f8e9c6;--bad:#c43c3c;--bad-bg:#f7d9d5;--info-bg:#e9eef4;--shadow-ink:var(--ink);--radius:14px;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--hand:"Long Cang", "Long Cang Fallback", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--hand-radius:16px 6px 14px 8px / 8px 14px 6px 16px;--hand-radius-sm:9px 4px 8px 5px / 5px 8px 4px 9px;--bg:var(--paper);--fg:var(--ink);--fg-2:var(--ink-2);--navy:var(--ink);--navy-2:var(--ink-2);--on-navy:var(--paper);--on-navy-muted:var(--line-2)}@media (prefers-color-scheme:dark){:root{--paper:#0f1522;--paper-2:#151d2e;--card:#182133;--ink:#ece5d6;--ink-2:#cfc7b6;--muted:#948d7d;--line:#2b3549;--line-2:#4a5570;--accent:#3ccbb8;--accent-hover:#63dcc9;--accent-soft:#163f3b;--accent-fg:#0f1522;--marker:#c9a227;--ok:#5cc27a;--ok-bg:#123421;--warn:#d9a04a;--warn-bg:#3a2a0c;--bad:#e46a6a;--bad-bg:#3f1616;--info-bg:#1a2436;--shadow-ink:#05080f}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:15px/1.7 var(--sans);flex-direction:column;min-height:100vh;margin:0;display:flex;position:relative;overflow-x:clip}main{flex:1 0 auto}body:before{content:"";pointer-events:none;z-index:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body>*{z-index:1;position:relative}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}h1,h2{font-family:var(--hand);letter-spacing:.02em;color:var(--ink);font-weight:400}h1{margin:0 0 10px;font-size:44px;line-height:1.15}h2{margin:36px 0 12px;font-size:32px;line-height:1.15}h3{margin:20px 0 8px;font-size:16px}.hand{font-family:var(--hand);letter-spacing:.02em;font-weight:400}.sans{font-family:var(--sans);letter-spacing:0}h2.hand{margin:0}p.lead{color:var(--muted);max-width:760px;margin:0 0 22px;font-size:15.5px}.container{max-width:1080px;margin:0 auto;padding:0 20px}.muted{color:var(--muted)}.small{font-size:13px}.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;display:grid}ul.plain{margin:0;padding:0;list-style:none}ul.plain li{border-bottom:1px dashed var(--line-2);padding:10px 0}header.site{background:var(--paper);border-bottom:2px solid var(--ink)}header.site .container{align-items:center;gap:28px;height:62px;display:flex}header.site .brand{color:var(--ink);align-items:center;display:inline-flex}header.site nav{gap:6px;margin-left:auto;display:flex}header.site nav a{color:var(--ink-2);border-radius:6px;padding:4px 8px;font-size:14px;text-decoration:none}header.site nav a:hover{color:var(--ink);background:linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 92%, transparent 92%)}@media (max-width:720px){header.site nav{gap:2px;font-size:13px}header.site nav a{padding:4px 5px}header.site nav a.hide-sm{display:none}}.console{background:var(--paper);margin:-32px calc(50% - 50vw) 0;padding:48px 20px 8px;position:relative}.console>.inner{max-width:1040px;margin:0 auto;position:relative}.doodle-flight{pointer-events:none;width:min(1180px,100vw);height:240px;position:absolute;top:0;left:50%;transform:translate(-50%)}.console .intro{text-align:center;margin-bottom:30px}.console .intro .kicker{font-family:var(--mono);letter-spacing:.16em;color:var(--accent);text-transform:uppercase;margin-bottom:10px;font-size:12px;display:inline-block}.console .intro h1{color:var(--ink);letter-spacing:.02em;margin:0 0 14px;font-size:58px;line-height:1.1}.console .intro h1 .mark{white-space:nowrap;isolation:isolate;display:inline-block;position:relative}.doodle-underline{z-index:-1;width:104%;height:18px;position:absolute;bottom:-6px;left:-2%;right:-2%}.console .intro p{color:var(--ink-2);max-width:720px;margin:0 auto;font-size:16px}.trust{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:18px;margin:16px 0 0;font-size:13px;display:flex}.trust span:before{content:"✓";color:var(--accent);margin-right:6px;font-weight:700}@media (max-width:720px){.console{padding-top:32px}.console .intro h1{font-size:40px}.doodle-flight{height:160px}}.card{background:var(--card);border:1.5px solid var(--ink);border-radius:var(--hand-radius);box-shadow:4px 4px 0 var(--shadow-ink);margin-bottom:18px;padding:22px}.card.tool{box-shadow:7px 7px 0 var(--shadow-ink);padding:26px 28px}.card h3:first-child{margin-top:0}@media (max-width:720px){.card.tool{box-shadow:4px 4px 0 var(--shadow-ink);padding:18px 16px}}.stat{background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--hand-radius);padding:14px 16px}.stat .k{color:var(--muted);letter-spacing:.02em;font-size:12.5px}.stat .v{font-size:26px;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);margin-top:2px;font-weight:700}.stat .s{color:var(--muted);margin-top:2px;font-size:12px}.stepper{counter-reset:step;justify-content:space-between;align-items:center;margin:0 0 22px;display:flex;position:relative}.stepper:before{content:"";border-top:2px dashed var(--line-2);position:absolute;top:50%;left:30px;right:30px}.stepper .step{color:var(--muted);font-family:var(--hand);background:var(--card);align-items:center;gap:10px;padding:6px 12px 6px 0;font-size:22px;display:inline-flex;position:relative}.stepper .step:last-child{padding:6px 0 6px 12px}.stepper .step:before{counter-increment:step;content:counter(step);width:26px;height:26px;font-size:13px;font-family:var(--mono);border:1.5px solid var(--line-2);background:var(--card);color:var(--muted);border-radius:50% 46% 52% 48%/48% 52% 46% 54%;place-items:center;font-weight:700;display:inline-grid}.stepper .step.active{color:var(--ink)}.stepper .step.active:before{background:var(--ink);border-color:var(--ink);color:var(--paper)}.stepper .step.done{color:var(--ink-2)}.stepper .step.done:before{content:"✓";background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}textarea,input[type=text],input[type=url],input:not([type]),select{border:1.5px solid var(--line-2);border-radius:var(--hand-radius-sm);background:var(--paper);width:100%;color:var(--ink);font:inherit;padding:11px 13px;transition:border-color .15s,box-shadow .15s}textarea:focus,input:focus,select:focus{border-color:var(--ink);box-shadow:3px 3px 0 var(--accent);background:var(--card);outline:none}textarea{resize:vertical;min-height:120px;font-family:var(--mono);font-size:13px;line-height:1.6}textarea.big{min-height:132px;font-size:13.5px}.formats{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.formats code{font-family:var(--mono);background:var(--paper-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px 3px;padding:2px 7px;font-size:12px}button,.btn{border-radius:var(--hand-radius-sm);border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;cursor:pointer;box-shadow:3px 3px 0 var(--accent);justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:600;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background .15s;display:inline-flex}button:hover,.btn:hover{box-shadow:4px 4px 0 var(--accent);background:var(--ink-2);text-decoration:none;transform:translate(-1px,-1px)}button:active,.btn:active{box-shadow:0 0 0 var(--accent);transform:translate(2px,2px)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:3px 3px 0 var(--line-2);transform:none}button.secondary,.btn.secondary{color:var(--ink);box-shadow:3px 3px 0 var(--line-2);background:0 0}button.ghost{border-color:var(--line-2);color:var(--ink-2);box-shadow:none;background:0 0}button.ghost:hover{background:var(--paper-2);border-color:var(--ink);color:var(--ink);box-shadow:none;transform:none}button.small{padding:5px 11px;font-size:13px;font-weight:500}button.big{padding:13px 26px;font-size:16px}.region-group{margin-bottom:12px}.region-group .rg-head{color:var(--muted);align-items:center;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.region-group .rg-head b{color:var(--ink);font-size:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:var(--hand-radius-sm);border:1.5px solid var(--line-2);background:var(--card);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 12px;font-size:13.5px;transition:all .12s;display:inline-flex}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip .p{font-family:var(--mono);color:var(--muted);font-size:11px}.chip input{display:none}.nodes-scroll{max-height:360px;padding:4px 2px;overflow:auto}.opts{flex-wrap:wrap;gap:8px 18px;display:flex}.opts label{cursor:pointer;align-items:center;gap:7px;font-size:14px;display:inline-flex}.opts input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.table-wrap{border:1.5px solid var(--ink);border-radius:var(--hand-radius);background:var(--card);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px dashed var(--line-2);vertical-align:middle;white-space:nowrap;padding:10px 12px}thead th{background:var(--paper-2);color:var(--ink);letter-spacing:.04em;white-space:nowrap;z-index:1;border-bottom:1.5px solid var(--ink);font-size:12.5px;font-weight:600;position:sticky;top:0}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:color-mix(in srgb, var(--marker) 14%, var(--card))}td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.tag{border:1.5px solid var(--line);color:var(--muted);white-space:nowrap;letter-spacing:.02em;background:0 0;border-radius:5px 3px;align-items:center;gap:5px;padding:0 8px;font-size:12px;line-height:20px;display:inline-flex}.tag.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-bg)}.tag.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-bg)}.tag.bad{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}.tag.ok:before,.tag.bad:before,.tag.warn:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.notice{border:1.5px solid var(--warn);background:var(--warn-bg);color:var(--ink);border-radius:var(--hand-radius-sm);border-left-width:5px;margin:12px 0;padding:10px 14px;font-size:14px}.info{border:1.5px solid var(--accent);background:var(--info-bg);border-radius:var(--hand-radius-sm);border-left-width:5px;margin:12px 0;padding:10px 14px;font-size:14px}.error{border:1.5px solid var(--bad);background:var(--bad-bg);border-radius:var(--hand-radius-sm);border-left-width:5px;margin:12px 0;padding:10px 14px;font-size:14px}.progress{background:repeating-linear-gradient(90deg, var(--line-2) 0 6px, transparent 6px 12px) center / 100% 2px no-repeat;height:10px;margin:14px 0;position:relative}.progress>div{background:linear-gradient(var(--accent), var(--accent)) center / 100% 3px no-repeat;height:100%;transition:width .3s;position:relative}.progress>div:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 2 56 56' fill='none' stroke='%230f8f83' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 30 C 14 26, 30 18, 52 9 C 44 20, 39 30, 33 44 C 30 36, 26 32, 22 29 Z'/%3E%3Cpath d='M22 29 C 30 22, 40 15, 51 10'/%3E%3C/svg%3E") 50%/contain no-repeat;width:28px;height:28px;position:absolute;top:-9px;right:-14px}.progress.indeterminate>div{animation:1.4s ease-in-out infinite slide;width:30%!important}@keyframes slide{0%{margin-left:-30%}to{margin-left:100%}}.log{font-family:var(--mono);color:var(--muted);white-space:pre-wrap;background:var(--paper-2);border-radius:var(--hand-radius-sm);border:1px dashed var(--line-2);max-height:110px;padding:8px 10px;font-size:12px;overflow:auto}.how{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:12px 0 0;display:grid}.how .item{background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--hand-radius);padding:18px 18px 16px 70px;position:relative}.how .item .doodle-stamp{width:40px;height:40px;position:absolute;top:16px;left:16px}.how .item h3{margin:2px 0 6px;font-size:17px}.how .item p{color:var(--muted);margin:0;font-size:14px}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:44px 0 14px;display:flex}.section-head h2{margin:0}.section-head a{font-size:13.5px}.empty{border:1.5px dashed var(--line-2);border-radius:var(--hand-radius);text-align:center;color:var(--muted);padding:22px;font-size:14px}footer.site{border-top:2px solid var(--ink);background:var(--paper-2);color:var(--muted);margin-top:48px;padding:26px 0 34px;font-size:13px}footer.site .links{flex-wrap:wrap;gap:14px;margin-top:8px;display:flex}footer.site a{color:var(--ink-2)}main{padding:32px 0 48px}footer.site{flex-shrink:0}dl.faq dt{margin-top:18px;font-weight:600}dl.faq dd{color:var(--muted);margin:4px 0 0}details.adv{margin-top:14px}details.adv summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:13px}details.adv summary:hover{color:var(--ink)}details.adv .row{margin-top:8px}details.adv .row input{flex:1;min-width:220px}details.adv .small{margin-top:6px}.sortbar{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 10px;display:flex}.sortbar button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}th.hint{cursor:help;-webkit-text-decoration:underline dotted var(--line-2);text-decoration:underline dotted var(--line-2);text-underline-offset:3px}.speed-row{grid-template-columns:auto 1fr;align-items:center;gap:6px 14px;margin-top:12px;display:grid}.speed-row .speed-label{color:var(--ink);font-size:14px}.speed-row .small{grid-column:2}@media (max-width:720px){.speed-row{grid-template-columns:1fr}.speed-row .small{grid-column:1}}.fb-row{border:1.5px dashed var(--line-2);border-radius:var(--hand-radius-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;font-size:14px;display:flex}.fb-row .fb-q{color:var(--ink-2)}.fb-row .fb-btn.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.fb-form{flex:1;gap:8px;min-width:260px;display:flex}.fb-form input{flex:1;padding:6px 10px;font-size:13px}.fb-done{color:var(--accent);font-size:14px}.fb-fab{z-index:50;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:18px;right:18px}.fb-toggle{padding:8px 16px;font-size:14px}.fb-panel{background:var(--card);border:1.5px solid var(--ink);border-radius:var(--hand-radius);width:min(340px,100vw - 36px);box-shadow:5px 5px 0 var(--shadow-ink);padding:14px}.fb-panel-head{font-family:var(--hand);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:22px;display:flex}.fb-panel textarea{min-height:90px;font-family:var(--sans);margin-bottom:8px;font-size:14px}.fb-panel input{padding:7px 10px;font-size:13px}@media (max-width:720px){.fb-fab{bottom:12px;right:12px}}.recent-row{border-bottom:1px dashed var(--line-2);grid-template-columns:150px 1fr auto auto auto;align-items:center;gap:14px;padding:10px 0;display:grid}.recent-row .name{color:var(--ink)}@media (max-width:720px){.recent-row{grid-template-columns:1fr auto;row-gap:6px}.recent-row .name{grid-column:1/-1}}.btn.ghost{border-color:var(--line-2);color:var(--ink-2);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--paper-2);border-color:var(--ink);color:var(--ink);box-shadow:none;transform:none}.btn.small{padding:5px 11px;font-size:13px;font-weight:500}.report-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.report-actions .fb-row{flex:1;min-width:320px;margin-top:0}.opts-head{align-items:baseline;gap:14px;display:flex}button.linklike{all:unset;cursor:pointer;color:var(--accent);font-size:13px;font-weight:500}button.linklike:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.local-box{border:1.5px dashed var(--line-2);border-radius:var(--hand-radius-sm);margin-top:14px;padding:12px 14px}.local-box .row input{flex:1;min-width:200px;padding:8px 10px;font-size:13.5px}.local-box .help{margin-top:8px}.local-box .help summary{cursor:pointer;color:var(--muted);font-size:13px}.local-box .help ul{color:var(--muted);margin:6px 0 0;padding-left:18px;font-size:13px}.local-box .help code{font-family:var(--mono);background:var(--paper-2);border-radius:4px;padding:1px 5px;font-size:12px}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:6px;display:flex}.report-head h1{margin:0}.share-manual{align-items:center;gap:8px;display:inline-flex}.share-manual input{width:min(420px,70vw);font-family:var(--mono);padding:7px 10px;font-size:12.5px}
