.su[data-astro-cid-75wjdcun]{position:relative}.su-inline[data-astro-cid-75wjdcun],.su-band[data-astro-cid-75wjdcun],.su-compact[data-astro-cid-75wjdcun]{border:1px solid var(--rule);background:#fff;border-radius:8px}.su-inline[data-astro-cid-75wjdcun]{max-width:720px;margin-top:2rem;padding:1.3rem 1.4rem}.su-band[data-astro-cid-75wjdcun]{border-top:3px solid var(--layer-blue);margin-top:3.5rem;padding:1.8rem 1.6rem 1.6rem}.su-compact[data-astro-cid-75wjdcun]{margin-top:1.4rem;padding:.9rem 1.1rem .8rem}.su-kicker[data-astro-cid-75wjdcun]{color:var(--layer-blue)}.su-title[data-astro-cid-75wjdcun]{font-size:1.05rem;font-weight:700;line-height:1.35}.su-kicker[data-astro-cid-75wjdcun]+.su-title[data-astro-cid-75wjdcun]{margin-top:.35rem}.su-band[data-astro-cid-75wjdcun] .su-title[data-astro-cid-75wjdcun]{letter-spacing:-.01em;font-size:1.35rem;font-weight:800}.su-compact[data-astro-cid-75wjdcun] .su-title[data-astro-cid-75wjdcun]{font-size:.98rem}.su-blurb[data-astro-cid-75wjdcun]{max-width:62ch;margin-top:.45rem;font-size:.95rem}.su-kicker[data-astro-cid-75wjdcun]+.su-blurb[data-astro-cid-75wjdcun]{margin-top:.6rem}.su-compact[data-astro-cid-75wjdcun] .su-blurb[data-astro-cid-75wjdcun]{color:var(--slate);margin-top:.15rem;font-size:.88rem}.su-form[data-astro-cid-75wjdcun]{flex-wrap:wrap;gap:.5rem;margin-top:.9rem;display:flex}.su-compact[data-astro-cid-75wjdcun] .su-form[data-astro-cid-75wjdcun]{margin-top:.6rem}.su-field[data-astro-cid-75wjdcun]{flex:240px;min-width:0;max-width:420px;display:flex}.su-field[data-astro-cid-75wjdcun] input[data-astro-cid-75wjdcun]{font:inherit;width:100%;min-width:0;color:var(--ink);background:#fff;border:1px solid #7d8a9c;border-radius:6px;padding:.65rem .9rem}.su-form[data-astro-cid-75wjdcun] button[data-astro-cid-75wjdcun]{font:inherit;background:var(--layer-blue);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:.65rem 1.2rem;font-weight:600}.su-form[data-astro-cid-75wjdcun] button[data-astro-cid-75wjdcun]:hover{filter:brightness(1.08)}.su-form[data-astro-cid-75wjdcun] button[data-astro-cid-75wjdcun]:disabled{opacity:.7;cursor:progress}.su-msg[data-astro-cid-75wjdcun]{color:var(--slate);margin-top:.6rem;font-size:.82rem}.su-sr[data-astro-cid-75wjdcun]{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.su-hero[data-astro-cid-75wjdcun] .su-form[data-astro-cid-75wjdcun]{justify-content:center;margin-top:2rem}.su-hero[data-astro-cid-75wjdcun] .su-field[data-astro-cid-75wjdcun]{flex:0 auto;max-width:none}.su-hero[data-astro-cid-75wjdcun] .su-field[data-astro-cid-75wjdcun] input[data-astro-cid-75wjdcun]{min-width:260px;padding:.7rem 1rem}.su-hero[data-astro-cid-75wjdcun] .su-form[data-astro-cid-75wjdcun] button[data-astro-cid-75wjdcun]{padding:.7rem 1.3rem}.su-hero[data-astro-cid-75wjdcun] .su-msg[data-astro-cid-75wjdcun]{margin-top:.75rem;font-size:.85rem}@media (max-width:600px){.su-form[data-astro-cid-75wjdcun]{flex-direction:column;align-items:stretch}.su-field[data-astro-cid-75wjdcun]{flex:none;max-width:none}.su-hero[data-astro-cid-75wjdcun] .su-form[data-astro-cid-75wjdcun]{max-width:340px;margin-left:auto;margin-right:auto}.su-hero[data-astro-cid-75wjdcun] .su-field[data-astro-cid-75wjdcun] input[data-astro-cid-75wjdcun]{min-width:0}.su-inline[data-astro-cid-75wjdcun],.su-band[data-astro-cid-75wjdcun]{padding:1.2rem 1.1rem}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);size-adjust:107.12%;ascent-override:90.44%;descent-override:22.52%;line-gap-override:0%}:root{--ink:#0e1b2c;--slate:#5a6b7e;--fog:#f5f7fa;--layer-blue:#2563eb;--allow-green:#12805c;--review-amber:#b7791f;--deny-red:#c0392b;--review-amber-text:#8a5a10;--rule:#e3e8ef;--sans:"Inter", "Inter Fallback", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.2, .8, .2, 1);--dur-fast:.16s;--dur-base:.24s;--dur-slow:.56s;--dur-linger:.9s;--beat:.15s;--layer-blue-wash:#eef3fe;--layer-blue-hairline:#c7d5f7}[hidden]{display:none!important}*{box-sizing:border-box;margin:0}body{font-family:var(--sans);background-color:var(--fog);color:var(--ink);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cg font-family='Arial, sans-serif' font-weight='800' fill='%232563EB' opacity='0.7'%3E%3Ctext x='18' y='42' font-size='30' fill-opacity='0.05'%3EAI%3C/text%3E%3Ctext x='148' y='58' font-size='20' fill-opacity='0.04' transform='rotate(40 158 52)'%3EAI%3C/text%3E%3Ctext x='222' y='34' font-size='16' fill-opacity='0.06' transform='rotate(-15 230 28)'%3EAI%3C/text%3E%3Ctext x='58' y='128' font-size='18' fill-opacity='0.06' transform='rotate(180 68 121)'%3EAI%3C/text%3E%3Ctext x='128' y='140' font-size='38' fill-opacity='0.035' transform='rotate(-52 148 128)'%3EAI%3C/text%3E%3Ctext x='232' y='128' font-size='24' fill-opacity='0.05' transform='rotate(-78 242 118)'%3EAI%3C/text%3E%3Ctext x='24' y='196' font-size='22' fill-opacity='0.05' transform='rotate(-32 38 188)'%3EAI%3C/text%3E%3Ctext x='168' y='192' font-size='28' fill-opacity='0.045' transform='rotate(118 182 182)'%3EAI%3C/text%3E%3Ctext x='96' y='250' font-size='16' fill-opacity='0.06' transform='rotate(65 104 244)'%3EAI%3C/text%3E%3Ctext x='190' y='256' font-size='21' fill-opacity='0.05' transform='rotate(206 200 248)'%3EAI%3C/text%3E%3Ctext x='250' y='210' font-size='15' fill-opacity='0.055' transform='rotate(95 256 204)'%3EAI%3C/text%3E%3Ctext x='80' y='86' font-size='14' fill-opacity='0.05' transform='rotate(148 88 80)'%3EAI%3C/text%3E%3Ctext x='106' y='24' font-size='17' fill-opacity='0.05' transform='rotate(82 114 18)'%3EAI%3C/text%3E%3Ctext x='52' y='66' font-size='15' fill-opacity='0.055' transform='rotate(-102 60 60)'%3EAI%3C/text%3E%3Ctext x='196' y='92' font-size='19' fill-opacity='0.045' transform='rotate(27 206 85)'%3EAI%3C/text%3E%3Ctext x='104' y='182' font-size='16' fill-opacity='0.055' transform='rotate(-138 112 176)'%3EAI%3C/text%3E%3Ctext x='56' y='238' font-size='18' fill-opacity='0.05' transform='rotate(16 66 231)'%3EAI%3C/text%3E%3Ctext x='138' y='218' font-size='14' fill-opacity='0.06' transform='rotate(172 145 212)'%3EAI%3C/text%3E%3Ctext x='252' y='168' font-size='17' fill-opacity='0.05' transform='rotate(-48 259 161)'%3EAI%3C/text%3E%3C/g%3E%3C/svg%3E");background-size:280px 280px;line-height:1.6}a{color:var(--layer-blue);text-decoration:none}a:hover{text-decoration:underline}a,button,input{transition:color var(--dur-fast), background-color var(--dur-fast), border-color var(--dur-fast), box-shadow var(--dur-fast), opacity var(--dur-fast)}:focus-visible{outline:2px solid var(--layer-blue);outline-offset:2px;border-radius:3px}@media (prefers-reduced-motion:no-preference){:focus-visible{animation:pl-focus var(--dur-fast) var(--ease-out)}}@keyframes pl-focus{0%{outline-offset:5px}}.skip{z-index:10;background:var(--ink);color:#fff;border-radius:6px;padding:.5rem 1rem;transition:top .15s;position:absolute;top:-3rem;left:1rem}.skip:focus{text-decoration:none;top:1rem}.card,.cat,.issue-card{transition:box-shadow var(--dur-fast), border-color var(--dur-fast)}a.card:hover{border-color:#d2dae5;box-shadow:0 3px 14px #0e1b2c12}.arr,.arrow,.ext{display:inline-block}@media (prefers-reduced-motion:no-preference){.arr,.arrow,.ext{transition:transform var(--dur-fast) var(--ease-out)}a:focus-visible .arr{transform:translate(3px)}a:focus-visible .arrow{transform:translate(4px)}a:focus-visible .ext{transform:translate(2px,-2px)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){a:hover .arr{transform:translate(3px)}a:hover .arrow{transform:translate(4px)}a:hover .ext{transform:translate(2px,-2px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}:is(.tool,.launch,.incident,.pattern):target{box-shadow:inset 3px 0 0 var(--layer-blue)}@media (prefers-reduced-motion:no-preference){:is(.tool,.launch,.incident,.pattern):target{animation:pl-located var(--dur-linger) var(--ease-out)}:is(.term,.qcard li):target{animation:pl-located-row var(--dur-linger) var(--ease-out);border-radius:4px}}@keyframes pl-located{0%,22%{background-color:var(--layer-blue-wash)}}@keyframes pl-located-row{0%,22%{background-color:var(--layer-blue-wash);box-shadow:0 0 0 .5rem var(--layer-blue-wash)}}@media (prefers-reduced-motion:no-preference){.is-filtering :is(.tool,.launch,.incident),.cats.is-filtering>.cat{transition:opacity var(--dur-fast) var(--ease-out)}@starting-style{.is-filtering :is(.tool,.launch,.incident),.cats.is-filtering>.cat{opacity:.4}}@supports selector(::details-content){details:is(.method,.sources){interpolate-size:allow-keywords}details:is(.method,.sources)::details-content{opacity:0;block-size:0;transition:block-size var(--dur-base) var(--ease-out), opacity var(--dur-fast) var(--ease-out), content-visibility var(--dur-base) allow-discrete;display:flow-root;overflow:clip}details:is(.method,.sources)[open]::details-content{opacity:1;block-size:auto}}}.wrap{max-width:720px;margin:0 auto;padding:0 1.25rem}.wrap-wide{max-width:1080px;margin:0 auto;padding:0 1.25rem}.wordmark-svg{white-space:nowrap;color:var(--ink);line-height:1.61}.wordmark-svg svg{vertical-align:-.24em;width:10.9121em;height:1.21em}.wm-intro svg{overflow:visible}@media (prefers-reduced-motion:no-preference){html.pl-intro .wm-intro .wm-lb{animation:pl-wm-lb var(--dur-slow) var(--ease-out) var(--beat) backwards}html.pl-intro .wm-intro .wm-rb{animation:pl-wm-rb var(--dur-slow) var(--ease-out) var(--beat) backwards}}@keyframes pl-wm-lb{0%{transform:translate(-18px)}}@keyframes pl-wm-rb{0%{transform:translate(18px)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}header.site{border-bottom:1px solid var(--rule)}header.site .bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;max-width:1080px;margin:0 auto;padding:1rem 1.25rem;display:flex}header.site nav{flex-wrap:wrap;gap:.4rem 1.2rem;display:flex}header.site nav a{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);padding:.2rem 0;font-size:.78rem}header.site nav a:hover{color:var(--layer-blue);text-decoration:none}header.site nav a.nav-subscribe{color:var(--layer-blue);box-shadow:inset 0 0 0 1px var(--layer-blue-hairline);border-radius:4px;padding:.2rem .55rem}header.site nav a.nav-subscribe:hover{box-shadow:inset 0 0 0 1px var(--layer-blue)}@media (max-width:680px){header.site .bar{flex-direction:column;align-items:center;gap:.5rem;padding:.8rem 1rem}header.site nav{flex-wrap:wrap;justify-content:center;gap:1rem}header.site nav a{font-size:.72rem}}.kicker{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-size:.75rem}footer.site{border-top:1px solid var(--rule);color:var(--slate);margin-top:4rem;padding:2rem 0 3rem;font-size:.85rem}footer.site .wrap{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}
