@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.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:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.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:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.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);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5d6ab80d-module__eK7ZrW__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5d6ab80d-module__eK7ZrW__variable{--font-inter:"Inter","Inter Fallback"}
.skills-scope{--font-display:var(--font-inter),"Inter",system-ui,sans-serif;--font-sans:var(--font-inter),"Inter",system-ui,sans-serif;--tracking-tight:-.03em;--tracking-display:-.055em;--tracking-label:.06em;--shadow-xs:0 1px 2px #1a19160a;--shadow-sm:0 2px 8px #1a19160f;--shadow-md:0 4px 24px #1a191614;color:#1a1916;font-family:var(--font-sans);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;background-color:#fff;font-size:15px;font-weight:400;line-height:1.55}.skills-scope *,.skills-scope :after,.skills-scope :before{box-sizing:border-box}.skills-scope .text-display{font-family:var(--font-display);letter-spacing:var(--tracking-display);font-weight:300;line-height:1.02}.skills-scope .text-heading{font-family:var(--font-sans);letter-spacing:var(--tracking-tight);font-weight:500;line-height:1.2}.skills-scope .text-label{letter-spacing:var(--tracking-label);text-transform:uppercase;font-size:.62rem;font-weight:500}.skills-scope .font-display{font-family:var(--font-display)}.skills-scope .font-sans{font-family:var(--font-sans)}.skills-scope .card{box-shadow:var(--shadow-xs);background:#fafafa;border:1px solid #e0e0de;border-radius:6px;transition:box-shadow .25s,transform .25s}.skills-scope .card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.skills-scope .btn-primary{color:#efefed;cursor:pointer;font-family:var(--font-sans);letter-spacing:-.02em;background:#1f3d2b;border:none;border-radius:3px;align-items:center;gap:8px;padding:14px 28px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .2s;display:inline-flex}.skills-scope .btn-primary:hover{background:#2c5e46}.skills-scope .btn-ghost{color:#141413;cursor:pointer;font-family:var(--font-sans);background:0 0;border:none;border-radius:3px;align-items:center;gap:8px;padding:13px 24px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .2s;display:inline-flex}.skills-scope .btn-ghost:hover{background:#1f3d2b0a}.skills-scope .container{width:100%;max-width:1120px;margin:0 auto;padding:0 2rem}.skills-scope .grid-dir-header{grid-template-columns:1fr auto;align-items:end;gap:5rem;display:grid}.skills-scope .grid-dir-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.skills-scope .dir-filter-bar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.skills-scope .dir-cat-tabs{scrollbar-width:none;gap:0;display:flex;overflow-x:auto}.skills-scope .dir-cat-tabs::-webkit-scrollbar{display:none}.skills-scope .dir-submit-cta{gap:1.5rem}.skills-scope .dir-submit-cta,.skills-scope .footer-inner{justify-content:space-between;align-items:center;display:flex}.skills-scope .footer-inner{flex-wrap:wrap;gap:1rem}.skills-scope .skill-prose{color:#2a2a28;font-size:1rem;line-height:1.8}.skills-scope .skill-prose h1,.skills-scope .skill-prose h2,.skills-scope .skill-prose h3,.skills-scope .skill-prose h4{color:#1a1916;line-height:1.3}.skills-scope .skill-prose h1{letter-spacing:-.03em;margin:2rem 0 .6rem;font-size:1.35rem;font-weight:500}.skills-scope .skill-prose h2{letter-spacing:-.03em;border-bottom:2px solid #00d4a0;margin:2.5rem 0 .5rem;padding-bottom:.5rem;font-size:1.15rem;font-weight:500}.skills-scope .skill-prose h3{color:#315f50;letter-spacing:-.02em;margin:2rem 0 .4rem;font-size:.95rem;font-weight:500}.skills-scope .skill-prose p{color:#3a3a38;margin-bottom:1.2rem}.skills-scope .skill-prose ol,.skills-scope .skill-prose ul{margin-bottom:1.4rem;padding:0;list-style:none}.skills-scope .skill-prose li{color:#3a3a38;margin-bottom:.45rem;padding-left:1.6rem;position:relative}.skills-scope .skill-prose ul>li:before{content:"";background:#00d4a0;border-radius:50%;width:7px;height:7px;position:absolute;top:.65em;left:0}.skills-scope .skill-prose strong{color:#1a1916;font-weight:500}.skills-scope .skill-prose code{color:#1f3d2b;background:#1f3d2b12;border:1px solid #1f3d2b1a;border-radius:4px;padding:2px 6px;font-size:.84em}.skills-scope .skill-prose pre{color:#e8ece9;background:#1a332a;border-radius:8px;margin:1.5rem 0;padding:1.25rem 1.5rem;font-size:.83rem;overflow-x:auto}.skills-scope .skill-prose pre code{color:inherit;background:0 0;border:none;padding:0}.skills-scope .skill-prose blockquote{background:#00d4a00a;border-left:3px solid #00d4a0;border-radius:0 6px 6px 0;margin:1.5rem 0;padding:.75rem 1.25rem;font-style:italic}@keyframes skillsDropIn{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.skills-scope .nav-dropdown{animation:.15s ease-out both skillsDropIn}@keyframes skillsFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.skills-scope .animate-fade-up{animation:.6s cubic-bezier(.25,.46,.45,.94) both skillsFadeUp}.skills-scope .delay-100{animation-delay:.1s}.skills-scope .delay-200{animation-delay:.2s}.skills-scope .delay-300{animation-delay:.3s}@media (max-width:768px){.skills-scope .container{padding:0 1.25rem}.skills-scope .grid-dir-header{grid-template-columns:1fr;gap:2rem}.skills-scope .grid-dir-cards{grid-template-columns:1fr}.skills-scope .dir-filter-bar{flex-direction:column;align-items:stretch}.skills-scope .dir-submit-cta,.skills-scope .footer-inner{flex-direction:column;align-items:flex-start}}@media (min-width:481px) and (max-width:768px){.skills-scope .grid-dir-cards{grid-template-columns:1fr 1fr}}.skills-scope .skill-tabs{border-bottom:1px solid #e0e0de;gap:1.75rem;display:flex}.skills-scope .skill-tab{color:#979795;cursor:pointer;font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:none;padding:.65rem 0 .85rem;font-size:.72rem;font-weight:500;transition:color .15s;position:relative}.skills-scope .skill-tab:hover{color:#5a5a58}.skills-scope .skill-tab:focus-visible{outline-offset:2px;outline:2px solid #00d4a0}.skills-scope .skill-tab-active{color:#141413;font-weight:500}.skills-scope .skill-tab-active:after{content:"";background:#00d4a0;border-radius:1px 1px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.skills-scope .skill-cta-preview{color:#fff;cursor:pointer;font-family:var(--font-sans);letter-spacing:-.02em;background:#141413;border:none;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 18px;font-size:.78rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.skills-scope .skill-cta-preview:hover{color:#fff;background:#2a2a28}.skills-scope .skill-toolbar-row{border-top:1px solid #e8e8e6;border-bottom:1px solid #e8e8e6;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:1.25rem;padding:1rem 0;display:grid}.skills-scope .skill-toolbar-actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:6px;display:flex}@media (max-width:720px){.skills-scope .skill-toolbar-row{grid-template-columns:1fr;gap:10px}.skills-scope .skill-toolbar-actions{flex-wrap:wrap;justify-content:flex-start}}.skills-scope .skill-toolbar-copy{color:#3a3a38;cursor:pointer;text-align:left;background:#fafafa;border:1px solid #e8e8e6;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-width:0;padding:10px 14px;font-family:SF Mono,Fira Code,ui-monospace,monospace;font-size:.72rem;line-height:1.2;transition:border-color .15s,background .15s;display:grid}.skills-scope .skill-toolbar-copy:hover{background:#f3f3f2;border-color:#d8d8d6}.skills-scope .skill-toolbar-copy-copied{background:#00d4a00f!important;border-color:#00d4a073!important}.skills-scope .skill-github-link{color:#5a5a58;border-radius:6px;align-items:center;padding:2px;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.skills-scope .skill-github-link:hover{color:#141413;background:#1f3d2b0f}.skills-scope .skill-hero-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1.25rem;margin-top:.35rem;display:flex}.skills-scope .skill-hero-meta-row--meta-only{justify-content:flex-end}.skills-scope .skill-hero-meta-row--meta-only .skill-hero-meta-end{margin-left:0}.skills-scope .skill-hero-tags-inline{flex-wrap:wrap;flex:auto;align-items:center;gap:.45rem;min-width:0;display:flex}.skills-scope .skill-hero-meta-primary{color:#7a7a78;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.8rem;line-height:1.4;display:flex}.skills-scope .skill-hero-meta-end{flex:0 auto;justify-content:flex-end;margin-left:auto}.skills-scope .skill-meta-sep{background:#e4e4e2;flex-shrink:0;align-self:center;width:1px;height:13px}.skills-scope .skill-tag-pill{color:#2bb693;font-family:var(--font-sans);letter-spacing:-.01em;text-transform:uppercase;background:#e8f8f2;border:1px solid #bde9d8;border-radius:5px;padding:5px 10px;font-size:.58rem;font-weight:500;line-height:1.2;display:inline-block}.skills-scope .skill-toolbar-icon-btn{box-sizing:border-box;color:#5a5a58;cursor:pointer;font-family:var(--font-sans);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;padding:0;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.skills-scope .skill-toolbar-icon-btn:hover{color:#141413;background:#1f3d2b0f}.skills-scope .skill-toolbar-icon-btn:focus-visible{outline-offset:2px;outline:2px solid #00d4a0}.skills-scope .skill-outcome-accent{border-left:3px solid #00d4a0;max-width:720px;margin-top:.5rem;padding:1rem 0 1rem 1.15rem}.skills-scope .skill-outcome-label{color:#1f3d2b;letter-spacing:.05em;text-transform:uppercase;margin:0 0 .5rem;font-size:.62rem;font-weight:500}.skills-scope .skill-outcome-body{color:#5a5a58;margin:0;font-size:.88rem;line-height:1.65}.skills-scope .skill-meta-author{color:#141413;letter-spacing:-.02em;border-bottom:1px solid #0000;font-size:.82rem;font-weight:500;transition:border-color .15s}.skills-scope .skill-meta-author:hover{border-bottom-color:#14141359}.skills-scope .code-preview::-webkit-scrollbar{width:5px}.skills-scope .code-preview::-webkit-scrollbar-track{background:#252a28}.skills-scope .code-preview::-webkit-scrollbar-thumb{background:#2f3835;border-radius:10px}.skills-scope .code-preview::-webkit-scrollbar-thumb:hover{background:#3a4542}.skills-scope .code-preview{scrollbar-color:#2f3835 #252a28;scrollbar-width:thin}.skills-scope .code-preview-light::-webkit-scrollbar{width:5px}.skills-scope .code-preview-light::-webkit-scrollbar-track{background:#fff}.skills-scope .code-preview-light::-webkit-scrollbar-thumb{background:#e8e8e6;border-radius:10px}.skills-scope .code-preview-light::-webkit-scrollbar-thumb:hover{background:#d8d8d6}.skills-scope .code-preview-light{scrollbar-color:#e8e8e6 #fff;scrollbar-width:thin}
