@font-face{font-family:Exchange Directory;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/f3.woff2) format("woff2")}
@font-face{font-family:Exchange Directory;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/f5.woff2) format("woff2")}

:root{
  --bg:#f6f5ec;--sf:#fffffa;--sf2:#eceee2;--bd:#dcdfd0;--bd2:#c3c8b4;
  --tx:#141513;--mu:#5d6257;--mu2:#8b9086;
  --ink:#141513;--onk:#fffffa;--lm:#d9f52f;--lmh:#c6e318;
  --nv:#141513;--nv2:#2a2b27;--nvt:#5d6257;
  --bl:#4a6a0c;--blh:#354d06;--blt:#eef5c8;
  --am:#6e7f10;--amt:#eef5c8;
  --gr:#3d7a3a;--grt:#dfeedc;
  --fd:"Exchange Directory",system-ui,sans-serif;--fb:"Public Sans",system-ui,sans-serif;
  --r:.3rem;
  --sh:0 .0625rem .125rem rgba(20,21,19,.04),0 .625rem 1.75rem -.875rem rgba(20,21,19,.16);
  --sh2:0 .125rem .25rem rgba(20,21,19,.05),0 1rem 2.25rem -.75rem rgba(20,21,19,.22);
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#131411;--sf:#1b1c18;--sf2:#24261f;--bd:#33362c;--bd2:#4a4e40;
  --tx:#f0f1e6;--mu:#a6aa9b;--mu2:#7c8074;
  --ink:#eaecdc;--onk:#141513;--lm:#d9f52f;--lmh:#e6fb5e;
  --nv:#1b1c18;--nv2:#24261f;--nvt:#a6aa9b;
  --bl:#cfe34a;--blh:#e0f26e;--blt:#2c3216;
  --am:#c9dc4a;--amt:#2c3216;
  --gr:#84c46e;--grt:#1e3320;
  --sh:0 .0625rem .125rem rgba(0,0,0,.3),0 .625rem 1.75rem -.875rem rgba(0,0,0,.6);
  --sh2:0 .125rem .25rem rgba(0,0,0,.4),0 1rem 2.25rem -.75rem rgba(0,0,0,.7);
}}
:root[data-theme=dark]{
  --bg:#131411;--sf:#1b1c18;--sf2:#24261f;--bd:#33362c;--bd2:#4a4e40;
  --tx:#f0f1e6;--mu:#a6aa9b;--mu2:#7c8074;
  --ink:#eaecdc;--onk:#141513;--lm:#d9f52f;--lmh:#e6fb5e;
  --nv:#1b1c18;--nv2:#24261f;--nvt:#a6aa9b;
  --bl:#cfe34a;--blh:#e0f26e;--blt:#2c3216;
  --am:#c9dc4a;--amt:#2c3216;
  --gr:#84c46e;--grt:#1e3320;
  --sh:0 .0625rem .125rem rgba(0,0,0,.3),0 .625rem 1.75rem -.875rem rgba(0,0,0,.6);
  --sh2:0 .125rem .25rem rgba(0,0,0,.4),0 1rem 2.25rem -.75rem rgba(0,0,0,.7);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:4.5rem}
body{margin:0;font:300 1rem/1.6 var(--fd);color:var(--tx);background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--fd);line-height:1.15;letter-spacing:-.015em;margin:0;font-weight:500}
p{margin:0}
a{color:var(--bl);text-decoration:none}
a:hover{color:var(--blh);text-decoration:underline;text-underline-offset:.15em}
ul,ol{margin:0;padding:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
svg{display:inline-block;vertical-align:middle;flex:none}
:focus-visible{outline:.125rem solid var(--bl);outline-offset:.125rem;border-radius:var(--r)}
.sk{position:absolute;left:-999rem;top:0;background:var(--ink);color:var(--onk);padding:.5rem .75rem;z-index:99}
.sk:focus{left:.5rem;top:.5rem}
.shell{max-width:72rem;margin-inline:auto;padding-inline:1.25rem}
.vh{position:absolute!important;width:.0625rem;height:.0625rem;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* top bar */
.tb{position:sticky;top:0;z-index:50;background:var(--sf);color:var(--tx);border-bottom:.0625rem solid var(--bd)}
.tb .shell{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;height:3.75rem}
.lg{display:flex;align-items:center;gap:.625rem;min-width:0;color:var(--tx);font-family:var(--fd);font-weight:500;font-size:1rem;letter-spacing:-.01em;white-space:nowrap}
.lg span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.lg:hover{color:var(--tx);text-decoration:none}
.lg svg{width:1.75rem;height:1.75rem;fill:currentColor;flex:none;color:var(--bl)}
.lg small{display:none;font:500 .625rem/1 var(--fb);letter-spacing:.06em;color:var(--mu);margin-top:.2rem}
.nv{display:none;gap:.25rem;justify-self:center}
.nv a{color:var(--mu);font-weight:500;font-size:.9375rem;padding:.4rem .75rem;border-radius:var(--r)}
.nv a:hover{color:var(--tx);background:var(--sf2);text-decoration:none}
.tb .ct{display:flex;align-items:center;gap:.5rem;justify-self:end}
.ln{position:relative}
.ln summary{list-style:none;display:flex;align-items:center;gap:.4rem;height:2.25rem;padding:0 .625rem;border:.0625rem solid var(--bd);border-radius:var(--r);font-weight:500;font-size:.8125rem;color:var(--tx);cursor:pointer;user-select:none}
.ln summary::-webkit-details-marker{display:none}
.ln summary:hover{background:var(--sf2)}
.ln summary svg{width:1rem;height:1rem;color:var(--mu)}
.ln ul{position:absolute;right:0;top:calc(100% + .5rem);min-width:11rem;background:var(--sf);color:var(--tx);border:.0625rem solid var(--bd);border-radius:var(--r);box-shadow:var(--sh2);padding:.375rem;list-style:none;z-index:60}
.ln li a{display:flex;justify-content:space-between;align-items:center;padding:.5rem .625rem;border-radius:var(--r);color:var(--tx);font-size:.9375rem}
.ln li a:hover{background:var(--sf2);text-decoration:none}
.ln li a[aria-current]{color:var(--bl);font-weight:500}
.ln li a[aria-current] svg{width:.9rem;height:.9rem}
.th{width:2.25rem;height:2.25rem;display:grid;place-items:center;border:.0625rem solid var(--bd);border-radius:var(--r);color:var(--tx)}
.th:hover{background:var(--sf2)}
.th svg{width:1.0625rem;height:1.0625rem;display:none}
:root[data-theme=light] .th .l,:root[data-theme=dark] .th .d,:root:not([data-theme]) .th .a{display:block}

/* hero */
.hero{background:var(--bg);color:var(--tx);padding:3rem 0 4.75rem;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60rem 26rem at 50% -6rem,color-mix(in srgb,var(--lm) 34%,transparent),transparent 70%)}
.hero .shell{position:relative;display:grid;gap:2rem;justify-items:center;text-align:center}
.hero h1{font-size:clamp(2rem,5vw,3.375rem);letter-spacing:-.03em;max-width:min(28ch,100%);text-wrap:balance}
.hero .ld{margin:1.125rem auto 0;font-size:1.2rem;line-height:1.55;color:var(--mu);max-width:42rem}
.hero .ld b{color:var(--tx);font-weight:500}
.hero .mf{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin-top:1.5rem;font-size:.875rem;color:var(--mu)}
.hero .mf span{display:inline-flex;align-items:center;gap:.4rem}
.hero .mf svg{width:1rem;height:1rem;color:var(--am)}
.dc{grid-column:1/-1;display:flex;gap:.625rem;align-items:flex-start;font-size:.8125rem;line-height:1.5;color:var(--mu);margin:0 0 .5rem;padding:.875rem 1rem;border:.0625rem solid var(--bd);border-radius:var(--r);background:var(--sf2)}
.dc svg{width:1rem;height:1rem;margin-top:.15rem;color:var(--am)}
.dc b{color:var(--tx);font-weight:500}

/* sort control */
.srt{margin-top:-1.625rem;position:relative;z-index:2}
.srt .shell>div{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;background:var(--sf);border:.0625rem solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);padding:.75rem 1rem}
.srt p{font-size:.875rem;color:var(--mu);margin-right:auto}
.srt p b{color:var(--tx);font-weight:500}
.sg{display:inline-flex;background:var(--sf2);border:.0625rem solid var(--bd);border-radius:var(--r);padding:.1875rem;gap:.125rem}
.sg button{display:inline-flex;align-items:center;gap:.4rem;height:2rem;padding:0 .875rem;border-radius:calc(var(--r) - .0625rem);font-size:.8125rem;font-weight:500;color:var(--mu);white-space:nowrap}
.sg button svg{width:.9375rem;height:.9375rem}
.sg button:hover{color:var(--tx)}
.sg button[aria-pressed=true]{background:var(--ink);color:var(--onk);box-shadow:0 .0625rem .125rem rgba(0,0,0,.15)}

/* directory */
.dir{padding:2rem 0 3rem}
.grid{display:grid;gap:1.25rem;grid-template-columns:1fr}
.cd{display:flex;flex-direction:column;background:var(--sf);border:.0625rem solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);transition:transform .25s,box-shadow .25s,border-color .25s}
.cd:hover{border-color:var(--bd2);box-shadow:var(--sh2)}
.cd>header{display:flex;align-items:center;gap:.875rem;padding:1.125rem 1.25rem 0}
.mg{width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:var(--r);background:var(--sf);border:.0625rem solid var(--bd);padding:.375rem;flex:none;overflow:hidden}
.mg img{width:100%;height:100%;display:block;object-fit:contain}
.cd h3{font-size:1.1875rem;letter-spacing:-.01em}
.cd .tg{display:inline-block;margin-top:.15rem;font-size:.95rem;font-weight:400;color:var(--mu)}
.cd .rk{margin-left:auto;align-self:flex-start;font-family:var(--fd);font-weight:500;color:var(--mu2);letter-spacing:.02em}
.mt{margin:1rem 1.25rem 0;display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.mt>div{background:var(--sf2);border-radius:var(--r);padding:.625rem .75rem}
.mt dt{font-size:.85rem;font-weight:500;letter-spacing:.02em;color:var(--mu);margin-bottom:.25rem}
.mt dd{margin:0;display:flex;align-items:center;gap:.4rem;font-family:var(--fd);font-weight:500;font-size:1.1rem;line-height:1;color:var(--tx)}
.mt dd svg{width:1rem;height:1rem;color:var(--am)}
.mt dd small{font:500 .75rem/1 var(--fb);color:var(--mu)}
.cd ul{list-style:none;padding:1rem 1.25rem 0;display:grid;gap:.5rem;flex:1}
.cd li{display:flex;gap:.625rem;line-height:1.45;color:var(--tx)}
.cd li svg{width:1.05rem;height:1.05rem;color:var(--gr);margin-top:.1rem}
.cd>footer{padding:1.25rem;margin-top:.25rem}
.bt{display:flex;align-items:center;justify-content:center;gap:.5rem;height:2.625rem;border-radius:var(--r);background:var(--lm);color:#141513;font-weight:500;font-size:.9375rem;transition:background .2s}
.bt:hover{background:var(--lmh);color:#141513;text-decoration:none}
.bt svg{width:1rem;height:1rem;opacity:.7}

/* ad slots */
.ad{margin:0 auto 3rem;display:grid;place-items:center;min-height:6.5rem;border:.0625rem dashed var(--bd2);border-radius:var(--r);color:var(--mu2);font-size:.75rem;letter-spacing:.04em;overflow:hidden}
.ad img{display:block;width:100%;height:auto;border-radius:calc(var(--r) - .0625rem)}
a.ad{text-decoration:none}
.pr .ad.lb{margin:2.5rem 0 0;width:100%;max-width:45.5rem;min-height:5.625rem}
.rest{position:relative}
.skw{display:none;position:absolute;top:0;bottom:0;left:calc(50% + 36rem + 1rem);width:10rem;z-index:5}
.sky{position:sticky;top:4.5rem;display:grid;width:10rem;height:37.5rem;place-items:center;border:.0625rem dashed var(--bd2);border-radius:var(--r);background:var(--sf);color:var(--mu2);font-size:.6875rem;letter-spacing:.04em;writing-mode:vertical-rl}
@media (min-width:84rem) and (max-width:94.99rem){.shell{margin-inline:auto 12rem}.skw{display:block;left:auto;right:1rem}}
@media (min-width:95rem){.skw{display:block}}

/* section heads */
.sh{max-width:44rem;margin-bottom:1.5rem}
.sh h2{font-size:clamp(1.625rem,3.2vw,2.125rem);letter-spacing:-.025em}
.sh p{margin-top:.5rem;color:var(--mu);font-size:1.0625rem}

/* comparison table */
.cmp{padding:0 0 3.5rem}
.tw{background:var(--sf);border:.0625rem solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9375rem;min-width:40rem}
th,td{text-align:left;padding:.8125rem 1rem;border-bottom:.0625rem solid var(--bd);vertical-align:middle}
thead th{background:var(--sf2);font-weight:300;letter-spacing:.02em;color:var(--mu);white-space:nowrap;position:sticky;top:0}
thead button{display:inline-flex;align-items:center;gap:.3rem;color:inherit}
thead button svg{width:.875rem;height:.875rem;opacity:.5}
thead th[aria-sort] button{color:var(--tx)}
thead th[aria-sort] button svg{opacity:1;color:var(--bl)}
thead th[aria-sort=descending] button svg{transform:rotate(180deg)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:color-mix(in srgb,var(--sf2) 55%,transparent)}
td a{font-weight:500;color:var(--tx)}
td a:hover{color:var(--bl)}
td .pl{display:inline-flex;align-items:center;gap:.6rem}
td .pl b{width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:var(--r);background:var(--sf);border:.0625rem solid var(--bd);padding:.125rem;overflow:hidden;flex:none}
td .pl b img{width:100%;height:100%;display:block;object-fit:contain}
td .n{font-family:var(--fd);font-weight:500;font-size:1rem}
td .cr{display:inline-flex;align-items:center;gap:.5rem}
td .cr i{width:3.5rem;height:.3125rem;background:var(--bd);border-radius:.125rem;overflow:hidden;position:relative}
td .cr i::after{content:"";position:absolute;inset:0;width:var(--v,0%);background:var(--gr)}
td .mu{color:var(--mu)}

/* article */
.art{padding:3.5rem 0 4.5rem;background:var(--sf);border-top:.0625rem solid var(--bd)}
.art .shell{display:grid;gap:2.5rem;grid-template-columns:1fr}
.toc{display:none}
.pr{max-width:44rem}
.pr h2{font-size:clamp(1.5rem,3vw,1.875rem);font-weight:500;letter-spacing:-.025em;margin-top:2.75rem;scroll-margin-top:5rem}
.pr h2:first-child{margin-top:0}
.pr>p{margin-top:1rem;font-size:1.0625rem;line-height:1.7;color:var(--tx)}
.pr>p.ld{font-size:1.1875rem;color:var(--mu);line-height:1.6}
.pr ul,.pr ol{margin-top:1rem;padding-left:1.25rem;display:grid;gap:.625rem;font-size:1.0625rem;line-height:1.65}
.pr li::marker{color:var(--bl);font-weight:400}
.pr li b{font-weight:300}
.en{margin-top:1.75rem;display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.25rem 1.375rem;border:.0625rem solid var(--bd);border-left:.25rem solid var(--lm);border-radius:var(--r);background:var(--sf2)}
.en .av{width:3rem;height:3rem;border-radius:var(--r);background:var(--sf2);overflow:hidden;flex:none}
.en .av img{width:100%;height:100%;display:block;object-fit:cover}
.en h3{font-size:1rem}
.en h3 span{display:block;font:500 .8125rem/1.4 var(--fb);color:var(--mu);margin-top:.1rem}
.en p{margin-top:.75rem;font-size:.9375rem;line-height:1.6}
.en p b{font-weight:500}
.wn{margin-top:1.25rem;display:flex;gap:.75rem;padding:1rem 1.125rem;border-radius:var(--r);background:var(--amt);color:var(--tx);font-size:.9375rem;line-height:1.55}
.wn svg{width:1.125rem;height:1.125rem;color:var(--am);margin-top:.15rem}

/* footer */
.fo{background:var(--sf);color:var(--mu);padding:3rem 0 2rem;border-top:.0625rem solid var(--bd)}
.fo .shell{display:grid;gap:2rem;grid-template-columns:1fr}
.fo .lg{margin-bottom:.875rem}
.fo p{font-size:.875rem;line-height:1.6;max-width:32rem}
.fo .dc,.fo .cp{max-width:none}
.fo .fh{display:block;font-family:var(--fb);font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--tx);margin-bottom:.75rem}
.fo ul{list-style:none;display:grid;gap:.375rem;font-size:.875rem}
.fo a,.fo button{color:var(--mu);font-size:.875rem}
.fo a:hover,.fo button:hover{color:var(--tx);text-decoration:underline}
.fo .fols{grid-column:1/-1;padding-bottom:1.5rem;border-bottom:.0625rem solid var(--bd)}
.fo .fols .fh{margin-bottom:.75rem}
.fo .fols ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding:0}
.fo .fols li{font-size:.9375rem;line-height:1.35}
.fo .fols a{color:var(--mu)}
.fo .fols a:hover{color:var(--tx);text-decoration:underline}
.fo .fols a[aria-current]{color:var(--tx);font-weight:500}
.fo .cp{grid-column:1/-1;margin-top:.5rem;padding-top:1.25rem;border-top:.0625rem solid var(--bd);font-size:.8125rem;color:var(--mu2);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* responsive */
@media (max-width:30rem){.cd,.tw,.srt .shell>div{box-shadow:none}}
@media (max-width:48rem){table{min-width:34rem;font-size:.875rem}th,td{padding:.6875rem .75rem}td .pl,td.mu{white-space:nowrap}th:first-child,td:first-child{position:sticky;left:0;background:var(--sf);box-shadow:.0625rem 0 0 var(--bd);z-index:1}thead th:first-child{background:var(--sf2);z-index:2}}
@media (max-width:40rem){.cd footer{display:flex;justify-content:flex-end}.cd .bt{padding:0 1.25rem}.srt p{width:100%}.sg{display:flex;width:100%}.sg button{flex:1;min-width:0;justify-content:center;padding:0 .25rem;font-size:.75rem}.sg button svg{display:none}.ln summary{padding:0 .5rem}.ln summary span{display:none}.lg{font-size:.9375rem}}
@media (min-width:40rem){.grid{grid-template-columns:repeat(2,1fr)}.fo .shell{grid-template-columns:2fr 1fr}.lg{font-size:1.0625rem}.tb .lg small{display:block}}
@media (min-width:56rem){.hero{padding:3.5rem 0 5.5rem}}
@media (max-width:55.99rem){.tb .shell{grid-template-columns:1fr auto}}
@media (min-width:56rem){.nv{display:flex}}
@media (min-width:64rem){.art .shell{grid-template-columns:13rem minmax(0,46rem);justify-content:center;gap:4rem}.toc{display:block;position:sticky;top:5rem;align-self:start}.toc h2{font-family:var(--fb);font-size:.75rem;font-weight:500;letter-spacing:.03em;color:var(--mu);margin-bottom:.75rem}.toc ol{list-style:none;display:grid;gap:.125rem;border-left:.0625rem solid var(--bd)}.toc ol a{display:block;padding:.4rem .875rem;margin-left:-.0625rem;border-left:.125rem solid transparent;color:var(--mu);font-size:.875rem;line-height:1.35}.toc ol a:hover{color:var(--tx);text-decoration:none}.toc ol a.on{color:var(--bl);border-left-color:var(--bl);font-weight:500}.tsh{margin-top:1.5rem;padding-top:1.25rem;border-top:.0625rem solid var(--bd)}.tsh h3{font-family:var(--fb);font-size:.75rem;font-weight:500;letter-spacing:.04em;color:var(--mu);margin-bottom:.625rem;text-transform:uppercase}.tsh-r{display:flex;gap:.25rem}.tsh-b{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--r);color:var(--mu);background:transparent;border:0;cursor:pointer;padding:0;transition:color .15s ease,background .15s ease}.tsh-b:hover{color:var(--tx);background:var(--sf2);text-decoration:none}.tsh-b svg{width:1rem;height:1rem;display:block}.tsh-b.on{color:var(--gr)}}

/* back-to-top: square with bottom-rising scroll progress fill */
.svg-sprite{position:absolute}
.ad iframe,.sky iframe{border:0;display:block}
.b2t{position:fixed;right:1rem;bottom:1rem;width:2.75rem;height:2.75rem;border:.0625rem solid var(--bd);border-radius:0;background:var(--sf);color:var(--tx);display:grid;place-items:center;cursor:pointer;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(.5rem);transition:opacity .18s ease,transform .18s ease,border-color .15s ease;z-index:50;box-shadow:var(--sh);padding:0}
.b2t::before{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--sp,0%);background:var(--bl);opacity:.18;pointer-events:none}
.b2t.on{opacity:1;pointer-events:auto;transform:translateY(0)}
.b2t:hover{border-color:var(--bd2)}
.b2t:hover::before{opacity:.28}
.b2t:focus-visible{outline:.125rem solid var(--bl);outline-offset:.125rem}
.b2t svg{width:1.125rem;height:1.125rem;position:relative;z-index:1;fill:none;stroke:currentColor}
@media (prefers-reduced-motion:reduce){.b2t{transition:none}}
