._controls_1e5rw_1{grid-template-columns:repeat(auto-fit,minmax(12em,1fr));align-items:end;gap:14px 16px;padding:4px 0 16px;display:grid}._controls_1e5rw_1 button{place-self:end start}._controls_1e5rw_1 input,._controls_1e5rw_1 select{width:100%;min-width:0}._note_1e5rw_4{color:var(--muted);overflow-wrap:anywhere;margin:0 0 16px;font-size:.78rem}._samples_1e5rw_6{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:12px;font-size:.74rem;display:flex}._samples_1e5rw_6 button{border:1px solid var(--line);color:var(--ink);cursor:pointer;font-family:var(--mono);transition:border-color var(--fast) linear, background-color var(--fast) linear, transform var(--press) var(--ease-out);background:0 0;border-radius:2px;padding:4px 9px;font-size:.72rem}._samples_1e5rw_6 button:hover{border-color:var(--accent);background:var(--accent-soft)}._samples_1e5rw_6 button:active{transform:scale(.97)}._environment_1e5rw_15{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}._environmentTitle_1e5rw_16{color:var(--ink);margin:0 0 10px;font-size:.76rem;font-weight:680}._trace_1e5rw_19{color:var(--muted);font-family:var(--mono);grid-template-columns:3ch 7ch minmax(6em,max-content) minmax(2ch,1fr) auto;margin:22px 0 8px;padding:0;font-size:.8rem;line-height:1.85;list-style:none;display:grid}._trace_1e5rw_19>li{display:contents}._trace_1e5rw_19>li>span{white-space:nowrap;min-width:0;animation:_trace-in_1e5rw_1 .24s var(--ease-out) both;animation-delay:calc(var(--row,0) * 30ms);padding:2px 12px 2px 0}._branch_1e5rw_26{color:var(--texture);padding-right:6px!important}._range_1e5rw_27{font-variant-numeric:tabular-nums}._name_1e5rw_28{color:var(--ink);font-family:SF Pro Text,PingFang SC,Noto Sans SC,sans-serif;font-size:.88rem}._leader_1e5rw_29{color:var(--texture);overflow:hidden}._outcome_1e5rw_30{font-family:SF Pro Text,PingFang SC,Noto Sans SC,sans-serif;font-size:.82rem;padding-right:0!important}._trace_1e5rw_19>li[data-state=skip] ._outcome_1e5rw_30{color:var(--faint)}._trace_1e5rw_19>li[data-state=hit] ._name_1e5rw_28,._trace_1e5rw_19>li[data-state=uncertain] ._name_1e5rw_28{font-weight:680}._trace_1e5rw_19>li[data-state=hit] ._leader_1e5rw_29{color:var(--accent)}._trace_1e5rw_19>li[data-state=hit] ._outcome_1e5rw_30{background:var(--accent);color:var(--on-accent);border-radius:2px;font-weight:680;padding:2px 8px!important}._trace_1e5rw_19>li[data-state=uncertain] ._outcome_1e5rw_30{color:var(--danger);font-weight:680}._detail_1e5rw_36{flex-wrap:wrap;grid-column:3/-1;align-items:baseline;gap:4px 12px;display:flex;white-space:normal!important}._detail_1e5rw_36 code{color:var(--ink);overflow-wrap:anywhere;font-size:.8rem}._detail_1e5rw_36 small{color:var(--muted);font-family:SF Pro Text,PingFang SC,Noto Sans SC,sans-serif;font-size:.76rem}._detail_1e5rw_36 strong{color:var(--accent);font-family:SF Pro Text,PingFang SC,Noto Sans SC,sans-serif;font-size:.88rem;font-weight:650}@keyframes _trace-in_1e5rw_1{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}._showStation_1e5rw_42{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:8px;margin:4px 0 6px;padding:0;font-size:.78rem;font-weight:680;display:inline-flex}._showStation_1e5rw_42 svg{width:14px;height:14px;transition:transform var(--move) var(--ease-out)}._showStation_1e5rw_42:hover svg{transform:translateY(3px)}@media (width<=640px){._controls_1e5rw_1{grid-template-columns:minmax(0,1fr)}._trace_1e5rw_19{grid-template-columns:3ch 7ch minmax(0,1fr)}._leader_1e5rw_29{display:none}._outcome_1e5rw_30{grid-column:3;justify-self:start}._detail_1e5rw_36{grid-column:2/-1}}@media (prefers-reduced-motion:reduce){._trace_1e5rw_19>li>span{animation:none}}._settings_1qj8b_1 label textarea{flex:none;min-width:0;min-height:6rem}._ipv6_1qj8b_7{align-items:center;gap:.5rem;display:flex}._settings_1qj8b_1 ._ipv6_1qj8b_7 input{width:1rem;height:1rem;accent-color:var(--accent);margin:0;padding:0}._workspace_dpv7r_1{gap:1.5rem;min-width:0;display:grid}._privacy_dpv7r_2{border-block:1px solid var(--line);align-items:flex-start;gap:.75rem;padding-block:1.25rem;display:flex}._privacy_dpv7r_2>svg{flex:none}._workspace_dpv7r_1 p{margin-block:.65rem;line-height:1.65}._connection_dpv7r_5,._actions_dpv7r_5{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}._fields_dpv7r_6{border:0;gap:1.5rem;min-width:0;margin:0;padding:0;display:grid}._fields_dpv7r_6>button{justify-self:end}._workspace_dpv7r_1 .button:not(.button-primary){background:var(--surface);border-color:var(--line);color:var(--ink)}._workspace_dpv7r_1 .button:not(.button-primary):hover:not(:disabled){border-color:var(--line-strong)}._step_dpv7r_10{border-top:1px solid var(--line);gap:1rem;min-width:0;padding-block:1.5rem;display:grid}._step_dpv7r_10 h2,._result_dpv7r_11 h2{margin:0;font-size:1.25rem}._step_dpv7r_10>button{justify-self:start}._grid_dpv7r_13{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}._grid_dpv7r_13 input,._grid_dpv7r_13 select,._workspace_dpv7r_1 textarea,._workspace_dpv7r_1 select{width:100%;min-width:0}._workspace_dpv7r_1 textarea{resize:vertical}._editor_dpv7r_16{gap:1rem;padding-block:1rem;display:grid}._help_dpv7r_17 summary{cursor:pointer;font-weight:600}._help_dpv7r_17>label{margin-top:1rem}._note_dpv7r_19,._help_dpv7r_17 p,._connection_dpv7r_5>span{color:var(--muted);font-size:.875rem}._chain_dpv7r_20{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}._chain_dpv7r_20 svg{flex:none}._chain_dpv7r_20 span{overflow-wrap:anywhere}._result_dpv7r_11{border-top:2px solid var(--accent);gap:1rem;padding-top:1.5rem;display:grid}._workspace_dpv7r_1 code{overflow-wrap:anywhere}._rules_dpv7r_25{font-family:ui-monospace,monospace;font-size:.9rem}@media (width<=640px){._grid_dpv7r_13{grid-template-columns:minmax(0,1fr)}._actions_dpv7r_5>*,._fields_dpv7r_6>button{justify-content:center;width:100%}}@font-face{font-family:Flacier Display;src:url(/assets/flacier-display-iG8QD1kj.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:400}:root{color:var(--ink);background:var(--paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--paper:#eeede8;--surface:#f8f7f3;--surface-muted:#e4e3dd;--ink:#1e1d1a;--muted:#4d4b45;--faint:#66635b;--line:#d3d1c9;--line-strong:#a9a69c;--accent:#2e5a7e;--accent-hover:#244a69;--accent-soft:#dce3e9;--on-accent:#fff;--success:#3b6e46;--danger:#a73838;--code:#26251f;--code-ink:#eceae4;--trunk:color-mix(in srgb, var(--muted) 42%, var(--surface));--texture:color-mix(in srgb, var(--faint) 58%, var(--paper));--mono:"SFMono-Regular", Consolas, monospace;--ease-out:cubic-bezier(.19, 1, .22, 1);--fast:.14s;--press:.1s;--move:.24s;--enter:.42s;font-family:SF Pro Text,Avenir Next,PingFang SC,Noto Sans SC,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#1b1a18;--surface:#23221f;--surface-muted:#141311;--ink:#eceae4;--muted:#b5b1a7;--faint:#918d83;--line:#34322e;--line-strong:#57544d;--accent:#9dbcd9;--accent-hover:#b7cfe6;--accent-soft:#2a3540;--on-accent:#12202b;--success:#9fcda5;--danger:#ec9090;--code:#141311;--code-ink:#eceae4}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#1b1a18;--surface:#23221f;--surface-muted:#141311;--ink:#eceae4;--muted:#b5b1a7;--faint:#918d83;--line:#34322e;--line-strong:#57544d;--accent:#9dbcd9;--accent-hover:#b7cfe6;--accent-soft:#2a3540;--on-accent:#12202b;--success:#9fcda5;--danger:#ec9090;--code:#141311;--code-ink:#eceae4}*{box-sizing:border-box;scrollbar-color:var(--accent) var(--surface-muted);scrollbar-width:thin}::selection{background:var(--accent);color:var(--paper)}html{scroll-behavior:smooth;scroll-padding-top:76px}body{background:var(--paper);min-height:100vh;margin:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--surface-muted)}::-webkit-scrollbar-thumb{border:3px solid var(--surface-muted);background:var(--accent)}button,input,select,textarea{caret-color:var(--accent);font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 34%, transparent);outline-offset:2px}.app-shell{overflow:clip}.page-width{width:min(1440px,100% - 40px);margin-inline:auto}.site-header{z-index:20;border-bottom:1px solid var(--line-strong);background:var(--paper);position:sticky;top:0}.header-inner{grid-template-columns:auto 1fr auto;align-items:center;min-height:64px;display:grid}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:10px;padding-right:30px;font-size:1.08rem;font-weight:760;text-decoration:none;display:inline-flex}.brand-mark{flex:none;width:28px;height:28px}.brand-mark-tile{fill:var(--ink)}.brand-mark-glyph{fill:var(--paper)}.header-tools{align-items:center;gap:10px;display:flex}.header-theme{min-height:36px;color:var(--muted);cursor:pointer;transition:color var(--fast) linear, border-color var(--fast) linear;background:0 0;border:1px solid #0000;padding-inline:12px;font-size:.8rem;font-weight:650}.header-theme:hover{border-color:var(--line);color:var(--ink)}.site-header nav{scrollbar-width:none;align-self:stretch;align-items:stretch;min-width:0;display:flex;position:relative}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{color:var(--muted);transition:color var(--fast) linear;flex:none;align-items:center;padding-inline:22px;font-size:.88rem;font-weight:650;text-decoration:none;display:flex}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ink)}.site-header nav:has(a:hover) a:not(:hover){color:color-mix(in srgb, var(--muted) 70%, var(--paper))}.nav-indicator{background:var(--accent);pointer-events:none;height:2px;transition:transform var(--move) var(--ease-out), width var(--move) var(--ease-out), opacity var(--fast) linear;position:absolute;bottom:-1px;left:0}.header-github{border:1px solid var(--line);min-height:36px;color:var(--ink);align-items:center;gap:8px;padding-inline:12px;font-size:.8rem;font-weight:650;text-decoration:none;display:inline-flex}.header-github:hover{border-color:var(--line-strong)}.header-github img{width:18px;height:18px}.route-section{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface) 60%, transparent);margin-top:44px}.route-main{min-width:0;max-width:1080px;padding:40px 38px 28px}.route-intro h2{letter-spacing:-.015em;max-width:760px;margin:0;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:clamp(1.7rem,3vw,2.7rem);font-weight:400;line-height:1.02}.route-intro p{color:var(--muted);margin:8px 0 0;font-size:.82rem}.route-form{margin-top:28px}.route-form-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid;position:relative}.route-form-row>label{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.route-form-row input,.field input,.field select,.field textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);transition:border-color var(--fast) linear;border-radius:2px}.route-form-row input{height:52px;font-family:var(--mono);padding:0 44px 0 16px;font-size:.86rem}.route-form-row input:hover,.route-form-row input:focus{border-color:var(--accent)}.route-form-row input:focus:not(:focus-visible){outline:0}.route-form-row input::placeholder{color:var(--faint)}.route-shortcut{border:1px solid var(--line);width:20px;height:20px;color:var(--muted);font-family:var(--mono);pointer-events:none;transition:opacity var(--fast) linear;border-radius:2px;place-items:center;font-size:.68rem;display:grid;position:absolute;top:50%;right:172px;transform:translateY(-50%)}.route-form-row input:focus~.route-shortcut,.route-form-row input:not(:placeholder-shown)~.route-shortcut{opacity:0}.route-form-row>button{border:1px solid var(--accent);background:var(--accent);min-width:146px;color:var(--on-accent);cursor:pointer;transition:background-color var(--fast) linear, border-color var(--fast) linear, transform var(--press) var(--ease-out);border-radius:2px;justify-content:center;align-items:center;gap:10px;font-weight:720;display:inline-flex}.route-form-row>button:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}.route-form-row>button:active:not(:disabled){transform:scale(.97)}.route-form-row>button:disabled{cursor:wait;opacity:.5}.route-form-row>button svg{width:17px;height:17px;transition:transform var(--move) var(--ease-out)}.route-form-row>button:hover:not(:disabled) svg{transform:translate(3px)}.route-result{min-height:220px;margin-top:20px;padding-inline:24px;position:relative}.route-line{z-index:0;background:var(--line-strong);pointer-events:none;height:1px;position:absolute;bottom:27px;left:calc(16.666% + 16px);right:calc(16.666% + 16px)}.route-steps{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:16px 0 0;list-style:none;display:grid;position:relative}.route-steps li{text-align:center;grid-template-rows:minmax(132px,auto) 54px;align-items:center;min-width:0;display:grid;position:relative}.route-step-copy{flex-direction:column;justify-content:center;align-items:center;width:min(100%,250px);min-height:0;padding-inline:10px;display:flex}.route-step-body{flex-direction:column;align-items:center;min-width:0;display:flex}.route-step-label{color:var(--muted);letter-spacing:.06em;font-size:.72rem;font-weight:680}.route-marker-row{place-items:center;width:100%;height:54px;display:grid;position:relative}.route-marker{z-index:2;border:2px solid var(--accent);background:var(--paper);width:20px;height:20px;color:var(--paper);border-radius:50%;place-items:center;display:grid;position:relative}.route-marker-matched{background:var(--success);border:0;width:28px;height:28px}.route-marker-default{border-color:var(--muted)}.route-marker-uncertain{border-style:dashed;border-color:var(--muted)}.route-marker svg{width:13px;height:13px}.route-value{max-width:100%;color:var(--ink);overflow-wrap:break-word;margin-top:10px;font-size:.92rem;line-height:1.35}.route-value-machine{font-family:SFMono-Regular,Consolas,monospace}.route-value-result{letter-spacing:0;font-size:1.08rem}.route-value-rule{flex-wrap:wrap;justify-content:center;display:flex}.route-value-rule span:first-child{white-space:nowrap}.route-value-rule span:last-child{overflow-wrap:anywhere;min-width:0}.route-step-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;min-height:1rem;margin-top:7px;display:flex}.route-status{white-space:nowrap;font-size:.72rem;font-weight:760;line-height:1.35}.route-status:before{color:var(--muted);content:"·";margin-right:8px}.route-status-matched{color:var(--success)}.route-status-default{color:var(--muted)}.route-step-detail{color:var(--muted);overflow-wrap:anywhere;font-size:.72rem;line-height:1.35}.route-message{border-top:1px solid var(--line);color:var(--ink);margin:0;padding-top:14px;font-size:.78rem}.subscription-section{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface) 60%, transparent);margin-top:28px;padding:44px 42px 36px}.subscription-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:32px;display:flex}.subscription-heading h2{letter-spacing:-.02em;margin:0;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:clamp(2.2rem,3.6vw,3.2rem);font-weight:400;line-height:.96}.subscription-heading p{color:var(--muted);margin:0;font-size:.86rem}.plain-heading{justify-content:space-between;align-items:baseline;gap:28px;margin-bottom:24px;display:flex}.plain-heading h2{color:var(--ink);letter-spacing:-.015em;margin:0;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:clamp(1.7rem,3vw,2.7rem);font-weight:400}.plain-heading p{color:var(--muted);margin:0;font-size:.82rem}.subscription-workspace{gap:20px;display:grid}.subscription-fields{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.subscription-name{width:min(100%,360px)}.field.subscription-source textarea{min-height:132px}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field>span:first-child{color:var(--muted);font-size:.72rem;font-weight:650}.field input,.field select{height:44px;padding:0 12px}.field textarea{resize:vertical;flex:1;min-height:220px;padding:14px;font-family:SFMono-Regular,Consolas,monospace;font-size:.78rem;line-height:1.65}.field input:hover,.field select:hover,.field textarea:hover,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field input:focus:not(:focus-visible),.field select:focus:not(:focus-visible),.field textarea:focus:not(:focus-visible){outline:0}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.subscription-format-picker{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.subscription-format-picker>summary{min-height:58px;color:var(--muted);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;font-size:.72rem;font-weight:650;display:flex}.subscription-format-current{align-items:center;gap:8px;min-width:0;display:inline-flex}.subscription-format-current img{object-fit:contain;border-radius:4px;flex:none;width:20px;height:20px}.subscription-format-current strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.subscription-format-current small{color:var(--faint);font-size:.65rem;font-weight:500}.subscription-format-picker-body{gap:20px;padding-bottom:18px;display:grid}.client-picker{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.client-picker legend{width:100%;margin-bottom:10px}.client-picker legend strong,.client-picker legend small{display:block}.client-picker legend strong{color:var(--ink);font-size:.76rem}.client-picker legend small{color:var(--muted);margin-top:3px;font-size:.66rem;font-weight:500}.client-picker button{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:54px;color:var(--muted);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;gap:6px;padding:7px 9px;font-size:.73rem;display:inline-flex}.client-picker img{object-fit:contain;border-radius:4px;flex:none;width:20px;height:20px}.client-picker button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.client-picker button:hover,.client-picker button.is-active{background:var(--surface-muted);color:var(--ink)}.client-picker button.is-active{border-color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);font-weight:700}.subscription-format-group+.subscription-format-group{border-top:1px solid var(--line);padding-top:4px}.subscription-more-settings,.subscription-link-loader{border-bottom:1px solid var(--line)}.subscription-more-settings summary,.subscription-link-loader summary{width:max-content;color:var(--muted);cursor:pointer;padding-block:12px;font-size:.76rem;font-weight:650}.subscription-link-loader-fields{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding-bottom:16px;display:grid}.subscription-link-loader .button{min-height:44px}.subscription-link-error{color:var(--danger);margin:-6px 0 16px;font-size:.72rem}.subscription-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-bottom:16px;display:grid}.subscription-user-agent{align-self:start}.subscription-user-agent input{margin-top:7px}.field-label{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.field-label strong{color:var(--muted);font-size:.72rem}.field-label small{color:var(--faint);text-align:right;font-size:.65rem;font-weight:500}.subscription-sort,.subscription-rename-rules,.subscription-option-list{grid-column:1/-1}.subscription-rename-rules{border:0;gap:9px;min-width:0;margin:0;padding:0;display:grid}.subscription-rename-rules legend{width:100%;padding:0}.subscription-rename-list{gap:9px;display:grid}.subscription-rename-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;align-items:end;gap:10px;display:grid}.subscription-rename-remove,.subscription-rename-add{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;display:inline-flex}.subscription-rename-remove{width:38px;height:44px;padding:0}.subscription-rename-add{gap:7px;width:max-content;min-height:36px;padding:0 11px;font-size:.7rem;font-weight:650}.subscription-rename-remove:hover:not(:disabled),.subscription-rename-add:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink)}.subscription-rename-remove:disabled,.subscription-rename-add:disabled{cursor:not-allowed;opacity:.4}.subscription-rename-remove svg,.subscription-rename-add svg{width:15px;height:15px}.subscription-rule-preset{max-width:360px}.subscription-section>.subscription-rule-preset{margin-bottom:22px}.subscription-workspace{max-width:960px}.subscription-workspace>.subscription-settings-grid{grid-template-columns:repeat(2,minmax(0,360px))}.subscription-option-list{flex-wrap:wrap;gap:9px 20px;padding-block:2px 4px;display:flex}.subscription-option-list label{color:var(--muted);cursor:pointer;grid-template-columns:15px minmax(0,1fr);align-items:start;gap:7px;font-size:.72rem;display:grid}.subscription-option-copy{gap:2px;display:grid}.subscription-option-copy strong{color:var(--muted);font-size:.72rem}.subscription-option-copy small{color:var(--faint);font-size:.65rem;font-weight:500}.subscription-option-list input{width:15px;height:15px;accent-color:var(--accent);margin:0}.subscription-action-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.subscription-action-row>span{color:var(--muted);font-size:.76rem}.subscription-action-row>div{gap:10px;display:flex}.subscription-result{border:1px solid var(--accent);background:var(--accent-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:18px;padding:16px;display:grid}.subscription-result-copy{gap:6px;min-width:0;display:grid}.subscription-result span{color:var(--muted);font-size:.72rem}.subscription-result small{color:var(--muted);font-size:.69rem}.subscription-result code{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.subscription-result-meta{flex-wrap:wrap;gap:6px 20px;margin:2px 0 0;display:flex}.subscription-result-meta div{align-items:baseline;gap:6px;display:inline-flex}.subscription-result-meta dt,.subscription-result-meta dd{margin:0;font-size:.69rem}.subscription-result-notes{gap:3px;margin-top:4px;display:grid}.subscription-result-notes p{color:var(--muted);margin:0;font-size:.69rem;line-height:1.45}.subscription-sync-tasks,.subscription-cloud-sync{gap:8px;min-width:0;margin-top:16px}.subscription-sync-tasks code{overflow-wrap:anywhere}.subscription-result-meta dt{color:var(--muted)}.subscription-result-meta dd{color:var(--ink);font-weight:680}.subscription-usage{border-top:1px solid var(--line);gap:7px;margin-top:6px;padding-top:10px;display:grid}.subscription-usage-total,.subscription-usage li{grid-template-columns:minmax(90px,.65fr) minmax(90px,.45fr) minmax(150px,1fr) minmax(110px,auto);align-items:baseline;gap:12px;display:grid}.subscription-usage-total>strong{grid-column:1/3}.subscription-usage-total>span,.subscription-usage-total>small{color:var(--ink);text-align:right;font-weight:680}.subscription-usage-total>small,.subscription-usage li>small{color:var(--muted);font-weight:500}.subscription-usage ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.subscription-usage li>span,.subscription-usage li>strong,.subscription-usage li>small,.subscription-usage-total>strong{font-size:.69rem}.subscription-usage li>span:first-child{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subscription-usage li>strong{color:var(--ink);text-align:right;font-weight:620}.subscription-result-actions{flex:none;justify-content:flex-end;gap:8px;display:flex}.subscription-result-actions .button{white-space:nowrap}.subscription-result-actions .button img{object-fit:contain;border-radius:4px;width:18px;height:18px}.field-error{color:var(--danger);margin:14px 0 0;font-size:.78rem}.network-checks{padding-block:54px 10px}.network-checks ul{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.network-checks li+li{border-left:1px solid var(--line)}.network-checks a{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:82px;padding:14px 16px;text-decoration:none;display:grid}.network-checks a:hover{background:var(--surface-muted)}.network-checks a>svg:first-child{width:20px;height:20px;color:var(--accent)}.network-checks a>svg:last-child{width:15px;height:15px;color:var(--muted)}.network-checks a span{gap:3px;display:grid}.network-checks a strong{font-size:.78rem}.network-checks a small{color:var(--muted);font-size:.68rem}.button{cursor:pointer;border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 15px;font-size:.79rem;font-weight:700;text-decoration:none;display:inline-flex}.button svg{width:16px;height:16px}.button:disabled{cursor:not-allowed;opacity:.45}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.button-primary:hover{border-color:var(--accent-hover);background:var(--accent-hover)}.button-secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.button-secondary:hover:not(:disabled){border-color:var(--line-strong)}.converter-section,.route-map{border-top:1px solid var(--line);padding-block:78px}.converter-section{margin-top:44px}.converter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.workspace-card{border:1px solid var(--line-strong);background:var(--surface);flex-direction:column;min-height:580px;padding:22px;display:flex}.card-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:30px;margin-bottom:18px;padding-bottom:12px;display:flex}.card-index,.result-count{color:var(--ink);font-size:.78rem;font-weight:700}.result-count{color:var(--accent-hover);font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:.75rem;font-weight:650}.text-button:hover{color:var(--accent-hover)}.grow-field{flex:1;margin-top:16px}.form-row,.provider-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.provider-fields{grid-template-columns:.55fr 1fr}.convert-button{width:100%;margin-top:18px}.output-card{background:var(--surface-muted)}.output-code{background:var(--code);min-height:420px;max-height:560px;color:var(--code-ink);white-space:pre-wrap;word-break:break-word;flex:1;margin:0;padding:18px;font-family:SFMono-Regular,Consolas,monospace;font-size:.76rem;line-height:1.7;overflow:auto}.result-state{border:1px dashed var(--line);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:420px;padding:36px;display:flex}.result-state svg{width:27px;height:27px;color:var(--faint);margin-bottom:14px}.result-state h3{margin:0;font-size:.95rem}.result-state p{color:var(--muted);margin:8px 0 0;font-size:.8rem}.error-state{border-color:var(--danger);color:var(--danger)}.warning-list{color:var(--muted);margin-top:12px;font-size:.75rem}.warning-list summary{cursor:pointer;color:var(--accent);font-weight:650}.warning-list ul{margin:8px 0 0;padding-left:20px;line-height:1.6}.output-actions{justify-content:flex-end;gap:9px;margin-top:12px;display:flex}.site-footer{border-top:1px solid var(--line);min-height:72px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-block:20px;font-size:.74rem;display:flex}.site-footer a{align-items:center;gap:7px;text-decoration:none;display:inline-flex}.site-footer a:hover{color:var(--ink)}.site-footer img{width:16px;height:16px}.build-details{flex-wrap:wrap;flex:0 0 100%;align-items:baseline;gap:8px 18px;min-width:0;line-height:1.7;display:flex}.build-details-list{flex-wrap:wrap;gap:6px 24px;margin:0;display:flex}.build-details-list>div{flex-wrap:wrap;gap:0 8px;display:flex}.build-details dd{font-variant-numeric:tabular-nums;margin:0}.build-details dd a,.build-details button{text-underline-offset:3px;text-decoration:underline}.build-details button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0}.build-version-notice{color:var(--ink);flex-basis:100%;margin:0}.route-map-heading{align-items:flex-end}.route-map-heading p{margin-top:8px}.route-map-actions{flex-wrap:wrap;gap:9px;display:flex}.route-map-body{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(0,1fr);display:grid}.route-map-list{--rail-x:78px;margin:0;padding:10px 0;list-style:none}.route-map-station{position:relative}.route-map-stop-button{width:100%;min-height:58px;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:background-color var(--fast) linear;background:0 0;border:0;grid-template-columns:52px 24px 3.4em minmax(0,1fr) auto 14px;align-items:center;column-gap:14px;padding:9px 14px 9px 0;display:grid;position:relative}.route-map-stop-button:before,.route-map-stop-button:after{top:0;bottom:0;left:var(--rail-x);content:"";pointer-events:none;width:1px;position:absolute}.route-map-stop-button:before{background:var(--line-strong)}.route-map-stop-button:after{background:var(--accent);transform-origin:top;width:3px;transition:transform var(--move) var(--ease-out);margin-left:-1px;transform:scaleY(0)}.route-map-body[data-tested] .route-map-stop-button:after{transition-delay:calc(var(--station-index) * 18ms)}.route-map-station[data-state=passed] .route-map-stop-button:after,.route-map-station[data-state=hit] .route-map-stop-button:after,.route-map-station[data-state=uncertain] .route-map-stop-button:after{transform:scaleY(1)}.route-map-station[data-state=hit] .route-map-stop-button:after,.route-map-station[data-state=uncertain] .route-map-stop-button:after{bottom:50%}.route-map-station:first-child .route-map-stop-button:before,.route-map-station:first-child .route-map-stop-button:after{top:50%}.route-map-station:last-child .route-map-stop-button:before{bottom:50%}.route-map-stop-button:hover,.route-map-station[data-selected] .route-map-stop-button{background:color-mix(in srgb, var(--surface-muted) 70%, transparent)}.route-map-stop-button:focus-visible{outline-offset:-3px}.route-map-position{color:var(--faint);font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-size:.7rem}.route-map-stop{z-index:1;border:2px solid var(--accent);background:var(--paper);width:13px;height:13px;color:var(--paper);transition:transform var(--move) var(--ease-out), background-color var(--fast) linear, border-color var(--fast) linear;border-radius:50%;justify-self:center;place-items:center;display:grid;position:relative}.route-map-station[data-direct] .route-map-stop,.route-map-stop[data-legend=direct]{border-color:var(--ink);background:var(--ink)}.route-map-station[data-state=hit] .route-map-stop{border-color:var(--accent);background:var(--accent);animation:stop-arrive var(--enter) var(--ease-out) backwards;animation-delay:calc(var(--station-index) * 18ms);transform:scale(1.7)}.route-map-station[data-state=uncertain] .route-map-stop{border-style:dashed;border-color:var(--muted);background:var(--paper)}.route-map-stop svg{width:8px;height:8px}.route-map-name{min-width:0}.route-map-name strong{transition:color var(--fast) linear;font-size:.9rem;font-weight:680;display:block}.route-map-name small{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:.72rem;line-height:1.45;display:block}.route-map-station[data-state=passed] .route-map-name strong{color:var(--muted)}.route-map-exit{border:1px solid var(--line);color:var(--accent-hover);font-family:var(--mono);white-space:nowrap;transition:transform var(--move) var(--ease-out);border-radius:2px;padding:3px 7px;font-size:.68rem}.route-map-station[data-direct] .route-map-exit{border-color:var(--ink);background:var(--ink);color:var(--paper)}.route-map-caret{width:14px;height:14px;color:var(--muted);opacity:0;transition:opacity var(--fast) linear, transform var(--move) var(--ease-out);transform:translate(-4px)}.route-map-stop-button:hover .route-map-caret,.route-map-station[data-selected] .route-map-caret{opacity:1;transform:none}.route-map-stop-button:hover .route-map-exit{transform:translate(-3px)}.route-map-station[data-selected] .route-map-caret{color:var(--accent)}.route-map-inline{animation:inline-open var(--move) var(--ease-out);grid-template-rows:1fr;display:grid;position:relative}.route-map-inline:before{top:0;bottom:0;left:var(--rail-x);background:var(--line-strong);content:"";width:1px;position:absolute}.route-map-station:last-child .route-map-inline:before{display:none}.route-map-inline>div{min-height:0;padding:6px 14px 26px calc(var(--rail-x) + 26px);overflow:hidden}.route-map-panel{border-top:1px solid var(--line-strong);min-width:0}.route-map-panel>*{overscroll-behavior:contain;max-height:calc(100vh - 96px);padding:26px 4px 26px 30px;position:sticky;top:80px;overflow:auto}.route-map-guide h3{margin:0 0 12px;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:1.6rem;font-weight:400}.route-map-guide p{color:var(--muted);margin:0 0 14px;font-size:.82rem;line-height:1.75}.route-map-guide ul{flex-wrap:wrap;gap:10px 22px;margin:0 0 16px;padding:0;font-size:.78rem;list-style:none;display:flex}.route-map-guide li{align-items:center;gap:8px;display:flex}.route-map-guide p.route-map-guide-count{color:var(--faint);font-family:var(--mono);font-size:.72rem}.station-detail{animation:rise-in var(--enter) var(--ease-out) backwards}.station-detail-head p{color:var(--faint);font-family:var(--mono);margin:0;font-size:.7rem}.station-detail-head h3{letter-spacing:-.01em;margin:4px 0 8px;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.1}.station-detail-head p.station-detail-purpose{color:var(--ink);font-family:inherit;font-size:.86rem;line-height:1.65}.station-family{flex-wrap:wrap;gap:6px 0;margin:18px 0 0;padding:0;list-style:none;display:flex}.station-family li{align-items:center;display:flex}.station-family li+li:before{background:var(--line-strong);content:"";width:10px;height:1px}.station-family button{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;font:inherit;transition:border-color var(--fast) linear, background-color var(--fast) linear;border-radius:2px;align-items:center;gap:6px;padding:4px 8px;font-size:.72rem;display:inline-flex}.station-family button span{color:var(--faint);font-family:var(--mono);font-size:.66rem}.station-family button:hover{border-color:var(--line-strong)}.station-family button[aria-current]{border-color:var(--accent);background:var(--accent-soft)}.station-facts{border-top:1px solid var(--line);margin:20px 0 0}.station-facts>div{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);gap:12px;padding-block:14px;display:grid}.station-facts dt{color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.9}.station-facts dd{min-width:0;margin:0;font-size:.82rem;line-height:1.65}.station-facts dd p{color:var(--muted);margin:6px 0 0}.station-facts dd p:first-child{margin-top:0}.station-exit-path{font-family:var(--mono);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.76rem;display:inline-flex}.station-exit-path span+span:before{color:var(--faint);content:"→";margin-right:6px}.station-exit-mode{border:1px solid var(--line);border-radius:2px;margin-left:10px;padding:1px 6px;font-size:.68rem}.station-exit-mode[data-direct]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.station-overlaps{color:var(--muted);margin:8px 0 0;padding-left:1.1em}.station-overlaps li+li{margin-top:4px}.station-overlaps code,.station-inline-rules code{color:var(--ink);font-family:var(--mono);overflow-wrap:anywhere;font-size:.72rem}.station-options{flex-wrap:wrap;gap:6px;display:flex}.station-options span{border:1px solid var(--line);border-radius:2px;padding:1px 7px;font-size:.72rem}.station-options span[data-default]{border-color:var(--accent);color:var(--accent-hover)}.station-rules h4{color:var(--muted);margin:24px 0 6px;font-size:.72rem;font-weight:650}.station-file{border-top:1px solid var(--line);padding-block:14px}.station-file>header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.station-file>header strong{font-size:.86rem}.station-file>header span{color:var(--muted);font-size:.72rem}.station-file>header a{color:var(--accent);font-family:var(--mono);align-items:center;gap:4px;font-size:.7rem;text-decoration:none;display:inline-flex}.station-file>header a:hover{text-decoration:underline}.station-file>header a svg{width:12px;height:12px}.station-file-stats{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin:6px 0 0;font-size:.72rem;display:flex}.station-file-stats span{color:var(--faint);font-family:var(--mono);font-size:.68rem}.station-examples{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.station-examples button{border:1px solid var(--line);color:var(--ink);cursor:pointer;font-family:var(--mono);transition:border-color var(--fast) linear, background-color var(--fast) linear, transform var(--press) var(--ease-out);background:0 0;border-radius:2px;align-items:center;gap:6px;padding:4px 8px;font-size:.72rem;display:inline-flex}.station-examples button svg{width:9px;height:9px;color:var(--accent)}.station-examples button:hover{border-color:var(--accent);background:var(--accent-soft)}.station-examples button:active{transform:scale(.97)}.station-rule-list{margin-top:10px}.station-rule-list>summary,.subscription-more>summary,.subscription-more-settings>summary,.subscription-link-loader>summary,.warning-list>summary{cursor:pointer;align-items:center;gap:8px;list-style:none;display:inline-flex}.station-rule-list>summary::-webkit-details-marker{display:none}.subscription-more>summary::-webkit-details-marker{display:none}.subscription-more-settings>summary::-webkit-details-marker{display:none}.subscription-link-loader>summary::-webkit-details-marker{display:none}.warning-list>summary::-webkit-details-marker{display:none}.station-rule-list>summary:before,.subscription-more>summary:before,.subscription-more-settings>summary:before,.subscription-link-loader>summary:before,.warning-list>summary:before,.route-section details>summary:before{content:"";width:5px;height:5px;transition:transform var(--move) var(--ease-out);border-bottom:1.5px solid;border-right:1.5px solid;flex:none;transform:rotate(-45deg)}details[open]>summary:before{transform:rotate(45deg)}.station-rule-list>summary{color:var(--accent);cursor:pointer;font-size:.74rem;font-weight:650}.station-rule-body{background:var(--code);max-height:420px;color:var(--code-ink);font-family:var(--mono);scrollbar-color:color-mix(in srgb, var(--code-ink) 40%, var(--code)) var(--code);border-radius:2px;margin-top:10px;padding:12px 14px;font-size:.72rem;line-height:1.7;overflow:auto}.station-rule-body ol{margin:0;padding:0;list-style:none}.station-rule-body code{font:inherit;overflow-wrap:anywhere}.station-rule-header,.station-rule-section{color:color-mix(in srgb, var(--code-ink) 58%, var(--code));white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 8px}.station-rule-section{margin:12px 0 2px}.station-rule-section:before{content:"# "}.station-inline-rules{gap:2px;margin:8px 0 0;padding:0;list-style:none;display:grid}.station-inline-rules li{grid-template-columns:30px minmax(0,1fr);gap:8px;display:grid}.station-inline-rules span{color:var(--faint);font-family:var(--mono);text-align:right;font-size:.68rem}.station-error{color:var(--danger);font-size:.76rem}.station-loading{color:var(--muted);font-size:.76rem}.button,.client-picker button,.text-button,.subscription-rename-add{transition:background-color var(--fast) linear, border-color var(--fast) linear, color var(--fast) linear, transform var(--press) var(--ease-out)}.button:active:not(:disabled),.client-picker button:active,.subscription-rename-add:active:not(:disabled){transform:scale(.97)}.network-checks a{transition:background-color var(--fast) linear}.network-checks a>svg:last-child{transition:transform var(--move) var(--ease-out), color var(--fast) linear}.network-checks a:hover>svg:last-child{color:var(--ink);transform:translate(2px,-2px)}.route-result:not([data-filled]) .route-steps li{grid-template-rows:minmax(84px,auto) 54px}.route-result:not([data-filled]) .route-value{color:var(--faint)}.route-result[data-filled] .route-step-copy{animation:rise-in var(--enter) var(--ease-out) backwards}.route-result[data-filled] li:nth-child(2) .route-step-copy{animation-delay:70ms}.route-result[data-filled] li:nth-child(3) .route-step-copy{animation-delay:.14s}.route-result[data-filled] .route-line{transform-origin:0;animation:line-draw .56s var(--ease-out) backwards}.route-result[data-filled] .route-marker-matched{animation:stop-arrive var(--enter) var(--ease-out) .12s backwards}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}details::details-content{height:0;transition:height var(--move) var(--ease-out), content-visibility var(--move) allow-discrete;overflow:clip}details[open]::details-content{height:auto}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@keyframes line-draw{0%{transform:scaleX(0)}}@keyframes stop-arrive{0%{opacity:0;transform:scale(.4)}}@keyframes inline-open{0%{opacity:0;grid-template-rows:0fr}}@media (width>=1100px){.route-map-body{grid-template-columns:minmax(0,1fr) minmax(380px,460px)}.route-map-panel{border-top:0;border-left:1px solid var(--line-strong)}}@media (width<=600px){.build-details-list{flex-direction:column}.build-details-list dt{min-width:7em}}@media (width<=1100px){.route-section{grid-template-columns:1fr}.client-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.field-label{flex-direction:column;align-items:flex-start;gap:3px}.field-label small{text-align:left}}@media (width<=820px){.page-width{width:min(100% - 24px,1440px)}.header-inner{grid-template-columns:auto minmax(0,1fr) auto}.brand{padding-right:14px;font-size:.92rem}.site-header nav{overflow-x:auto}.site-header nav a{padding-inline:12px;font-size:.78rem}.header-github span{display:none}.route-main{padding:30px 22px 24px}.route-form-row{grid-template-columns:1fr}.route-form-row>button{min-height:46px}.route-shortcut{display:none}.route-result{--route-label-column:90px;min-height:auto;margin-block:24px;padding-inline:0}.route-line{display:none}.route-steps{grid-template-columns:1fr;gap:0;padding:0}.route-steps li{grid-template-columns:var(--route-label-column) 28px minmax(0, 1fr);text-align:left;grid-template-rows:minmax(88px,auto);align-items:center;column-gap:12px;min-height:88px;display:grid}.route-steps li:before{z-index:0;top:0;bottom:0;left:calc(var(--route-label-column) + 26px);background:var(--line-strong);content:"";width:1px;position:absolute;transform:translate(-50%)}.route-steps li:first-child:before{top:50%}.route-steps li:last-child:before{bottom:50%}.route-step-copy{display:contents}.route-step-label{grid-area:1/1;align-self:center}.route-step-body{grid-area:1/3;justify-content:center;align-items:flex-start}.route-value{margin-top:0}.route-value-rule{justify-content:flex-start}.route-step-detail{margin:0}.route-step-meta{justify-content:flex-start}.route-marker-row{z-index:1;grid-area:1/2;justify-self:center;width:28px;height:100%}.route-message{padding-top:12px}.subscription-section{grid-template-columns:1fr;padding:26px 22px}.subscription-heading{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:24px}.plain-heading{flex-direction:column;align-items:flex-start;gap:6px}.subscription-fields,.converter-grid,.form-row,.provider-fields,.subscription-workspace{grid-template-columns:1fr}.subscription-fields,.client-picker,.subscription-action-row{grid-column:1}.client-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-result{grid-template-columns:minmax(0,1fr);align-items:stretch}.network-checks ul{grid-template-columns:repeat(2,minmax(0,1fr))}.network-checks li:nth-child(3){border-left:0}.network-checks li:nth-child(n+3){border-top:1px solid var(--line)}.converter-section,.route-map{padding-block:60px}.route-map-list{--rail-x:56px}.route-map-stop-button{grid-template-columns:36px 20px 3.4em minmax(0,1fr) auto;column-gap:10px;padding-right:10px}.route-map-caret{display:none}.route-map-inline>div{padding:4px 8px 22px calc(var(--rail-x) + 20px)}.station-facts>div{grid-template-columns:minmax(0,1fr);gap:4px}.workspace-card{min-height:auto}.field textarea{min-height:250px}.field.subscription-source textarea{min-height:140px}.result-state,.output-code{min-height:360px}}@media (width<=520px){.header-inner{grid-template-columns:1fr auto;grid-template-areas:"brand github""nav nav";row-gap:0}.brand{grid-area:brand;min-height:54px}.header-github{grid-area:github}.site-header nav{border-top:1px solid var(--line);grid-area:nav;min-height:42px;margin-inline:-12px;padding-inline:4px;overflow-x:auto}html{scroll-padding-top:108px}.route-map-stop-button{grid-template-columns:36px 20px 3.4em minmax(0,1fr);row-gap:6px}.route-map-exit{grid-column:4;justify-self:start}.route-map-inline>div{padding-left:calc(var(--rail-x) + 16px)}.route-section{margin-top:12px}.route-steps,.route-result{--route-label-column:76px}.route-intro h2{font-size:2.45rem}.route-form-row input{font-size:.75rem}.client-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-settings-grid,.subscription-link-loader-fields{grid-template-columns:minmax(0,1fr)}.subscription-sort,.subscription-rename-rules,.subscription-option-list{grid-column:1}.subscription-rename-row{grid-template-columns:minmax(0,1fr) 38px}.subscription-rename-row .field:nth-child(2){grid-column:1}.subscription-rename-remove{grid-area:2/2}.subscription-rule-preset{max-width:none}.subscription-name{width:100%}.subscription-heading h1{font-size:2.35rem}.subscription-action-row{flex-direction:column;align-items:stretch}.subscription-action-row>div,.subscription-action-row .button{width:100%}.subscription-result{gap:14px;padding:14px}.subscription-result-actions{grid-template-columns:minmax(0,1fr);display:grid}.subscription-result-actions .button{width:100%;min-width:0}.subscription-result small{line-height:1.5}.subscription-result-meta{grid-template-columns:minmax(0,1fr);gap:7px 12px;display:grid}.subscription-usage-total,.subscription-usage li{grid-template-columns:minmax(0,1fr) auto}.subscription-usage-total>strong{grid-column:auto}.subscription-usage li>strong,.subscription-usage li>small,.subscription-usage-total>small{text-align:left;grid-column:1/-1}.network-checks{padding-top:42px}.network-checks ul{grid-template-columns:minmax(0,1fr)}.network-checks li+li,.network-checks li:nth-child(3){border-top:1px solid var(--line);border-left:0}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;padding-block:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-delay:0s!important}::details-content{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-delay:0s!important}}:root[data-theme=dark] img[src="/brand/github-mark.svg"]{filter:invert(.9)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) img[src="/brand/github-mark.svg"]{filter:invert(.9)}}.hero{border-bottom:1px solid var(--line);position:relative;overflow:hidden}.ascii-field{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero-inner{z-index:1;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:start;gap:64px;padding-block:64px 112px;display:grid;position:relative}.hero-copy h1{letter-spacing:-.015em;max-width:9.5em;margin:0 0 18px;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:clamp(2.4rem,4vw,3.4rem);font-style:normal;font-weight:400;line-height:1.06}.hero-copy p{max-width:32em;color:var(--muted);margin:0;line-height:1.75}.hero-test{border:1px solid var(--line);background:var(--surface);height:48px;transition:border-color var(--fast) linear, box-shadow var(--fast) linear;border-radius:3px;align-items:center;gap:10px;margin-top:28px;padding:0 6px 0 14px;display:flex}.hero-test:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.hero-prompt{color:var(--faint);font-family:var(--mono);transition:color var(--fast) linear}.hero-test:focus-within .hero-prompt{color:var(--accent)}.hero-test input{min-width:0;color:var(--ink);font-family:var(--mono);background:0 0;border:0;flex:1;font-size:.9rem}.hero-test input:focus-visible{outline:none}.hero-test input::placeholder{color:var(--faint)}.hero-test button{background:var(--accent);height:36px;color:var(--on-accent);cursor:pointer;transition:background-color var(--fast) linear, transform var(--press) var(--ease-out);border:0;border-radius:2px;padding-inline:16px;font-weight:650}.hero-test button:hover{background:var(--accent-hover)}.hero-test button:active,.hero-try button:active{transform:scale(.98)}.hero-try{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:.8rem;display:flex}.hero-try button{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;font-family:var(--mono);transition:border-color var(--fast) linear, transform var(--press) var(--ease-out);border-radius:2px;padding:6px 9px;font-size:.78rem}.hero-try button:hover{border-color:var(--line-strong)}.hero-convert{margin-top:28px}.overview{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow:hidden}.overview-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding:14px 20px 13px;display:flex}.overview-head h2{letter-spacing:-.015em;margin:0;font-family:Flacier Display,Noto Sans SC,sans-serif;font-size:1.45rem;font-weight:400;line-height:1.1}.overview-head span{color:var(--muted);font-size:.8rem}.overview-body{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:16px 16px 10px 0;display:grid}.overview-root{align-items:center;gap:8px;height:38px;padding-left:16px;display:flex;position:relative}.overview-root:after{border-top:1px solid var(--trunk);content:"";width:14px;position:absolute;top:50%;right:-14px}.overview-in{color:var(--accent);font-family:var(--mono);font-size:.8rem;font-weight:700}.overview-root[data-busy] .overview-in{animation:.48s steps(2,jump-none) infinite overview-blink}@keyframes overview-blink{50%{opacity:.25}}.overview-node{color:var(--ink);white-space:nowrap;font-size:1.02rem;font-weight:650}.overview-node b{color:var(--accent);font-family:var(--mono);font-weight:700}.overview-tree{margin:0 0 0 14px;padding:0;list-style:none;position:relative}.overview-tree:before{top:var(--trunk-top,19px);bottom:var(--trunk-bottom,19px);border-left:1px solid var(--trunk);content:"";position:absolute;left:0}.overview-path{z-index:2;top:var(--trunk-top,19px);background:var(--accent);width:2px;transition:height 70ms linear;position:absolute;left:-.5px}.overview-packet{z-index:3;background:var(--accent);border-radius:1px;width:10px;height:10px;transition:top 70ms linear,opacity .12s linear;position:absolute;left:-4.5px;transform:translateY(-50%)}.overview-tree>li{grid-template-columns:6.2em 7.6em 6.6ch minmax(2ch,1fr) auto;align-items:center;min-height:38px;padding:0 10px 0 28px;display:grid;position:relative}.overview-tree>li:before{z-index:1;border-top:1px solid var(--trunk);content:"";width:20px;position:absolute;top:50%;left:0}.overview-tree>li:after{z-index:0;content:"";background:0 0;border-radius:4px;transition:background-color .15s;position:absolute;inset:3px 0 3px 20px}.overview-tree>li>*{z-index:1;position:relative}.overview-tree>li:hover:after,.overview-tree>li[data-state=hit]:after{background:var(--surface-muted)}.overview-modes{white-space:nowrap}.overview-name{color:var(--ink);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;padding:0;font-size:1rem}.overview-name:hover{text-underline-offset:3px;text-decoration:underline}.overview-range{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.78rem}.overview-leader{color:var(--texture);font-family:var(--mono);white-space:nowrap;padding-right:10px;font-size:.8rem;overflow:hidden}.overview-leader>span{display:inline-block}.overview-tree>li:hover .overview-leader>span{animation:.16s steps(2,end) infinite overview-march}@keyframes overview-march{0%{transform:translate(-2ch)}to{transform:translate(0)}}.overview-exit{color:var(--accent);white-space:nowrap;transition:background-color var(--fast) linear, color var(--fast) linear;border-radius:2px;margin-right:-6px;padding:2px 6px;font-size:.85rem}.overview-tree>li[data-state=hit]:before{border-top:2px solid var(--accent)}.overview-tree>li[data-state=hit] .overview-name{font-weight:650}.overview-tree>li[data-state=hit] .overview-leader{color:var(--accent)}.overview-tree>li[data-state=hit] .overview-exit{background:var(--accent);color:var(--on-accent);font-weight:650}.overview-tree>li[data-state=passed] .overview-name,.overview-tree>li[data-state=passed] .overview-exit{color:var(--faint)}.overview-note{border-top:1px solid var(--line);min-height:3.2em;color:var(--muted);margin:0;padding:10px 20px 14px;font-size:.8rem}.badge{white-space:nowrap;border:1px solid #0000;border-radius:3px;padding:3px 5px;font-size:12px;font-weight:500;line-height:1;display:inline-block}.badge+.badge{margin-left:4px}.badge[data-mode=直连]{border-color:color-mix(in srgb, var(--ink) 28%, transparent);color:var(--ink)}.badge[data-mode=代理]{border-color:color-mix(in srgb, var(--accent) 32%, transparent);background:color-mix(in srgb, var(--accent) 11%, transparent);color:var(--accent)}.badge[data-mode=拦下]{border-color:color-mix(in srgb, var(--danger) 32%, transparent);background:color-mix(in srgb, var(--danger) 9%, transparent);color:var(--danger)}[data-state=passed] .badge{border-color:color-mix(in srgb, var(--faint) 30%, transparent);color:var(--faint);background:0 0}@media (width<=1040px){.hero-inner{grid-template-columns:1fr;gap:48px;padding-block:44px 56px}.hero-copy h1{max-width:none}.overview-body{grid-template-columns:1fr;padding-left:0}.overview-root:after{border-top:0;border-left:1px solid var(--trunk);width:0;height:8px;top:100%;left:30px;right:auto}.overview-tree{margin:8px 0 0 30px}}@media (width<=620px){.overview-tree>li{grid-template-columns:3.4em minmax(0,1fr) auto;column-gap:8px;padding-block:4px}.overview-modes .badge+.badge,.overview-leader{display:none}.overview-name{white-space:normal}.overview-exit{grid-column:2/-1;justify-self:start;margin:0 0 0 -6px}}@media (prefers-reduced-motion:reduce){.overview-path,.overview-packet{transition:none}.overview-root[data-busy] .overview-in,.overview-tree>li:hover .overview-leader>span{animation:none}}
