:root{color-scheme:light;--npl-bg:#F3F4F7;--npl-bg-sunken:#EAECF0;--npl-panel:#FFFFFF;--npl-panel-raised:#F6F7FA;--npl-veil:rgba(255,255,255,.72);--npl-veil-strong:#FFFFFF;--npl-nav-veil:rgba(243,244,247,.76);--npl-panel-veil:rgba(255,255,255,.9);--npl-text:#0F1319;--npl-text-secondary:#3C424C;--npl-text-muted:#535863;--npl-text-faint:#646B77;--npl-text-on-fill:#F3F4F7;--npl-border:rgba(15,20,30,.13);--npl-border-subtle:rgba(15,20,30,.065);--npl-border-strong:#828799;--npl-hair:linear-gradient(90deg,transparent,rgba(15,20,30,.32),transparent);--npl-glow:rgba(20,30,55,.14);--npl-spec:rgba(25,35,65,.05);--npl-grid:rgba(18,24,38,.05);--npl-dot:#0F1319;--npl-glass-edge:rgba(20,26,40,.20);--npl-glass-tint:rgba(255,255,255,.34);--npl-glass-streak:rgba(255,255,255,.85);--npl-glass-rim:rgba(15,20,30,.24);--npl-cap-a:#E9ECF1;--npl-cap-b:#AEB6C2;--npl-cap-c:#7C8592;--npl-powder:#FBFCFD;--npl-powder-shadow:rgba(20,26,40,.10);--npl-success:#2E775C;--npl-success-subtle:#EDF8F4;--npl-warning:#8E6221;--npl-warning-subtle:#F8F3EC;--npl-danger:#C03B36;--npl-danger-subtle:#F8EDEC;--npl-info:#2E728A;--npl-info-subtle:#ECF5F8;--npl-foil:linear-gradient(100deg,#8E7ECB,#6B8ADB 18%,#5E9FDF 36%,#EDF0E7 48%,#6FCBDE 60%,#E3C691 82%,#8E7ECB);--npl-foil-conic:conic-gradient(from 140deg,#8E7ECB,#5E9FDF 28%,#6FCBDE 48%,#E3C691 66%,#6B8ADB 84%,#8E7ECB);--npl-foil-violet:#8E7ECB;--npl-foil-blue:#5E9FDF;--npl-foil-cyan:#6FCBDE;--npl-foil-specular:#EDF0E7;--npl-chrome-bright:#E6EBF1;--npl-chrome-mid:#B9C2D0;--npl-foil-wash:linear-gradient(104deg,rgba(142,126,203,0.26),rgba(107,138,219,0.22) 12%,rgba(94,159,223,0.2) 26%,rgba(111,203,222,0.19) 38%,rgba(227,198,145,0.22) 50%,rgba(142,126,203,0.26) 62%,rgba(107,138,219,0.22) 76%,rgba(94,159,223,0.2) 90%,rgba(142,126,203,0.26));--npl-foil-plate:linear-gradient(100deg,#BCB4C6,#E9E6E2 12%,#BCBDC3 25%,#D4D9D8 37%,#FBFBFC 50%,#BEBECB 62%,#C2C0C6 75%,#F9F9F7 87%,#C8CAD4);--npl-foil-ink:#0B0D11;--npl-foil-edge:rgba(15,19,25,0.32);--npl-foil-sheen:rgba(255,255,255,0.9);--npl-foil-sheen-lit:rgba(255,255,255,0.95);--npl-foil-under:rgba(15,19,25,0.16);--npl-foil-cast:rgba(80,100,140,0.45);--npl-foil-cast-lit:rgba(120,150,200,0.5);--npl-shadow-sm:0 16px 40px -26px rgba(25,32,55,.22);--npl-shadow:0 34px 80px -42px rgba(25,32,55,.30);--npl-beam-opacity:.45;--npl-ambient-opacity:.55;--npl-grain-opacity:.028}:root[data-theme=dark]{color-scheme:dark;--npl-bg:#08080A;--npl-bg-sunken:#0C0C0F;--npl-panel:#101014;--npl-panel-raised:#15151A;--npl-veil:rgba(255,255,255,.035);--npl-veil-strong:rgba(255,255,255,.06);--npl-nav-veil:rgba(8,8,10,.72);--npl-panel-veil:rgba(16,16,20,.84);--npl-text:#F4F6FA;--npl-text-secondary:#C6CBD5;--npl-text-muted:#9095A0;--npl-text-faint:#797F8D;--npl-text-on-fill:#08080A;--npl-border:rgba(255,255,255,.10);--npl-border-subtle:rgba(255,255,255,.055);--npl-border-strong:#5F6470;--npl-hair:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);--npl-glow:rgba(255,255,255,.16);--npl-spec:rgba(255,255,255,.085);--npl-grid:rgba(255,255,255,.028);--npl-dot:#FFFFFF;--npl-glass-edge:rgba(255,255,255,.18);--npl-glass-tint:rgba(255,255,255,.055);--npl-glass-streak:rgba(255,255,255,.5);--npl-glass-rim:rgba(255,255,255,.22);--npl-cap-a:#F2F4F8;--npl-cap-b:#A8B0BC;--npl-cap-c:#646C78;--npl-powder:#F2F4F7;--npl-powder-shadow:rgba(0,0,0,.35);--npl-success:#47B88E;--npl-success-subtle:#162C24;--npl-warning:#CF8F30;--npl-warning-subtle:#2C2316;--npl-danger:#D2625E;--npl-danger-subtle:#2C1716;--npl-info:#409DBF;--npl-info-subtle:#16262C;--npl-shadow-sm:0 18px 44px -26px rgba(0,0,0,.82);--npl-shadow:0 40px 90px -40px rgba(0,0,0,.92);--npl-beam-opacity:1;--npl-ambient-opacity:1;--npl-grain-opacity:.04}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--npl-bg:#08080A;--npl-bg-sunken:#0C0C0F;--npl-panel:#101014;--npl-panel-raised:#15151A;--npl-veil:rgba(255,255,255,.035);--npl-veil-strong:rgba(255,255,255,.06);--npl-nav-veil:rgba(8,8,10,.72);--npl-panel-veil:rgba(16,16,20,.84);--npl-text:#F4F6FA;--npl-text-secondary:#C6CBD5;--npl-text-muted:#9095A0;--npl-text-faint:#797F8D;--npl-text-on-fill:#08080A;--npl-border:rgba(255,255,255,.10);--npl-border-subtle:rgba(255,255,255,.055);--npl-border-strong:#5F6470;--npl-hair:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);--npl-glow:rgba(255,255,255,.16);--npl-spec:rgba(255,255,255,.085);--npl-grid:rgba(255,255,255,.028);--npl-dot:#FFFFFF;--npl-glass-edge:rgba(255,255,255,.18);--npl-glass-tint:rgba(255,255,255,.055);--npl-glass-streak:rgba(255,255,255,.5);--npl-glass-rim:rgba(255,255,255,.22);--npl-cap-a:#F2F4F8;--npl-cap-b:#A8B0BC;--npl-cap-c:#646C78;--npl-powder:#F2F4F7;--npl-powder-shadow:rgba(0,0,0,.35);--npl-success:#47B88E;--npl-success-subtle:#162C24;--npl-warning:#CF8F30;--npl-warning-subtle:#2C2316;--npl-danger:#D2625E;--npl-danger-subtle:#2C1716;--npl-info:#409DBF;--npl-info-subtle:#16262C;--npl-shadow-sm:0 18px 44px -26px rgba(0,0,0,.82);--npl-shadow:0 40px 90px -40px rgba(0,0,0,.92);--npl-beam-opacity:1;--npl-ambient-opacity:1;--npl-grain-opacity:.04}}:root{--npl-font-display:"Space Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;--npl-font-sans:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif;--npl-font-mono:"IBM Plex Mono",ui-monospace,"SF Mono","Cascadia Mono",Menlo,monospace;--npl-text-2xs:clamp(0.625rem,0.61rem + 0.06vw,0.6875rem);--npl-text-xs:clamp(0.6875rem,0.67rem + 0.08vw,0.75rem);--npl-text-sm:clamp(0.8125rem,0.79rem + 0.10vw,0.875rem);--npl-text-base:clamp(0.9375rem,0.91rem + 0.14vw,1.03125rem);--npl-text-md:clamp(1.0625rem,1.01rem + 0.24vw,1.1875rem);--npl-text-lg:clamp(1.1875rem,1.09rem + 0.40vw,1.40625rem);--npl-text-xl:clamp(1.375rem,1.20rem + 0.72vw,1.875rem);--npl-text-2xl:clamp(1.75rem,1.42rem + 1.40vw,2.75rem);--npl-text-3xl:clamp(2.0625rem,1.53rem + 2.25vw,3.625rem);--npl-text-4xl:clamp(2.875rem,1.86rem + 4.27vw,6rem);--npl-weight-regular:400;--npl-weight-medium:500;--npl-weight-semibold:600;--npl-weight-bold:700;--npl-leading-display:0.98;--npl-leading-tight:1.02;--npl-leading-snug:1.18;--npl-leading-normal:1.6;--npl-leading-relaxed:1.72;--npl-tracking-display:-0.04em;--npl-tracking-heading:-0.03em;--npl-tracking-title:-0.01em;--npl-tracking-body:0em;--npl-tracking-mono:0.08em;--npl-tracking-caps:0.14em;--npl-tracking-eyebrow:0.22em;--npl-measure-prose:66ch;--npl-measure-lead:58ch;--npl-measure-sub:47ch;--npl-space-3xs:0.25rem;--npl-space-2xs:0.5rem;--npl-space-xs:0.75rem;--npl-space-sm:1rem;--npl-space-md:1.5rem;--npl-space-lg:2rem;--npl-space-xl:3rem;--npl-space-2xl:4.5rem;--npl-space-3xl:6.75rem;--npl-space-4xl:10rem;--npl-section-y:clamp(4.875rem,3.2rem + 5.2vw,7rem);--npl-container-prose:52.5rem;--npl-container-page:77.5rem;--npl-container-wide:92rem;--npl-gutter:clamp(1.25rem,0.7rem + 2.3vw,2.5rem);--npl-grid-gap:clamp(0.625rem,0.4rem + 0.9vw,1.125rem);--npl-chrome-height:106px;--npl-bp-sm:480px;--npl-bp-md:680px;--npl-bp-lg:1080px;--npl-bp-xl:1280px;--npl-radius-xs:6px;--npl-radius-sm:9px;--npl-radius-md:12px;--npl-radius-lg:16px;--npl-radius-xl:20px;--npl-radius-2xl:24px;--npl-radius-full:999px;--npl-dur-instant:90ms;--npl-dur-fast:250ms;--npl-dur-base:300ms;--npl-dur-slow:450ms;--npl-dur-slower:800ms;--npl-dur-reveal:1150ms;--npl-ease:cubic-bezier(.22,1,.36,1);--npl-ease-reveal:cubic-bezier(.19,1,.22,1);--npl-ease-in-out:cubic-bezier(.65,0,.35,1);--npl-stagger:65ms;--npl-z-base:0;--npl-z-raised:10;--npl-z-sticky:100;--npl-z-to-top:150;--npl-z-nav:180;--npl-z-annc:181;--npl-z-progress:200;--npl-z-drawer:300;--npl-z-modal:400;--npl-z-toast:500;--npl-z-agegate:1000;--npl-z-grain:9999;--npl-steel:linear-gradient(135deg,#F2F4F8,#9AA3B0 50%,#E7EAF0)}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-400-700-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ibm-plex-sans-400-700-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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-400-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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-500-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--npl-bg);color:var(--npl-text);font-family:var(--npl-font-sans);font-size:var(--npl-text-base);line-height:var(--npl-leading-normal);letter-spacing:var(--npl-tracking-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::selection{background:var(--npl-text);color:var(--npl-bg)}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer}canvas,img,svg,video{display:block;max-width:100%}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-family:var(--npl-font-display);font-weight:var(--npl-weight-semibold);letter-spacing:var(--npl-tracking-heading);line-height:var(--npl-leading-snug);text-wrap:balance}:focus-visible{outline:2px solid var(--npl-text);outline-offset:3px;border-radius:var(--npl-radius-xs)}body:before{z-index:0;opacity:var(--npl-ambient-opacity);background:radial-gradient(900px 620px at 72% -12%,rgba(255,255,255,.05),transparent 60%),radial-gradient(700px 560px at 4% 34%,rgba(196,190,235,.03),transparent 62%),radial-gradient(760px 620px at 98% 82%,rgba(170,215,222,.028),transparent 62%)}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{z-index:var(--npl-z-grain);opacity:var(--npl-grain-opacity);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}.npl-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.npl-main{flex:1 1;padding-top:var(--npl-chrome-height)}@media (max-width:760px){:root{--npl-chrome-height:88px}}.npl-bleed-top{margin-top:calc(-1 * var(--npl-chrome-height))}.npl-container{width:min(var(--npl-container-page),92vw);margin-inline:auto;position:relative;z-index:1}.npl-container--wide{width:min(var(--npl-container-wide),94vw)}.npl-container--prose{width:min(var(--npl-container-prose),92vw)}.npl-section{padding-block:var(--npl-section-y);position:relative}.npl-section--sunken{background:var(--npl-bg-sunken);border-block:1px solid var(--npl-border)}.npl-cv{content-visibility:auto;contain-intrinsic-size:auto 760px}.npl-mono{font-family:var(--npl-font-mono);letter-spacing:var(--npl-tracking-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.npl-eyebrow{display:inline-flex;align-items:center;gap:var(--npl-space-2xs);font-family:var(--npl-font-mono);font-size:var(--npl-text-2xs);font-weight:var(--npl-weight-medium);letter-spacing:var(--npl-tracking-eyebrow);text-transform:uppercase;color:var(--npl-text-muted)}.npl-eyebrow:before{content:"";width:26px;height:1px;background:var(--npl-hair);flex:none}.npl-eyebrow em{font-style:normal;color:var(--npl-text-faint)}@media (max-width:420px){.npl-eyebrow{flex-wrap:wrap;letter-spacing:.16em}.npl-eyebrow:before{display:none}}.npl-display{font-family:var(--npl-font-display);font-weight:var(--npl-weight-bold);font-size:var(--npl-text-3xl);line-height:var(--npl-leading-tight);letter-spacing:var(--npl-tracking-display)}.npl-hollow{color:transparent;-webkit-text-stroke:1.5px var(--npl-text)}@supports not (-webkit-text-stroke:1px #000){.npl-hollow{color:var(--npl-text)}}.npl-lead{margin-top:var(--npl-space-md);color:var(--npl-text-secondary);font-size:var(--npl-text-md);max-width:var(--npl-measure-lead)}.npl-lead b{color:var(--npl-text);font-weight:var(--npl-weight-semibold)}.npl-prose{max-width:var(--npl-measure-prose);color:var(--npl-text-secondary);line-height:var(--npl-leading-relaxed)}.npl-prose>*+*{margin-top:var(--npl-space-sm)}.npl-prose h2{margin-top:var(--npl-space-xl);font-size:var(--npl-text-xl);color:var(--npl-text)}.npl-prose h3{margin-top:var(--npl-space-lg);font-size:var(--npl-text-lg);color:var(--npl-text)}.npl-prose b,.npl-prose strong{color:var(--npl-text);font-weight:var(--npl-weight-semibold)}.npl-prose ol,.npl-prose ul{padding-left:var(--npl-space-md)}.npl-prose li+li{margin-top:var(--npl-space-3xs)}.npl-prose a{color:var(--npl-text);border-bottom:1px solid var(--npl-border-strong);transition:border-color var(--npl-dur-fast)}.npl-prose a:hover{border-bottom-color:var(--npl-text)}.npl-reveal{transition-delay:var(--npl-reveal-delay,0s)}html.npl-js .npl-reveal{opacity:0;transform:translateY(22px);filter:blur(6px);transition:opacity var(--npl-dur-slower) var(--npl-ease),transform var(--npl-dur-slower) var(--npl-ease),filter var(--npl-dur-slower) var(--npl-ease);transition-delay:var(--npl-reveal-delay,0s)}html.npl-js .npl-reveal.is-in{opacity:1;transform:none;filter:blur(0)}.npl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.npl-skip{position:fixed;top:-60px;left:16px;z-index:3000;background:var(--npl-text);color:var(--npl-bg);padding:11px 18px;border-radius:var(--npl-radius-sm);font-weight:var(--npl-weight-semibold);transition:top var(--npl-dur-instant)}.npl-skip:focus{top:16px}body.npl-cursor,body.npl-cursor [role=button],body.npl-cursor a,body.npl-cursor button,body.npl-cursor label{cursor:none}@media (pointer:coarse),(prefers-reduced-motion:reduce){body.npl-cursor{cursor:auto}body.npl-cursor [role=button],body.npl-cursor a,body.npl-cursor button,body.npl-cursor label{cursor:pointer}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}html.npl-js .npl-reveal{opacity:1!important;transform:none!important;filter:none!important}}html{scrollbar-width:thin;scrollbar-color:var(--npl-border-strong) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--npl-border-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:var(--npl-text-faint)}::-webkit-scrollbar-corner{background:transparent}.npl-page{animation:npl-page-enter .2s var(--npl-ease) backwards}@keyframes npl-page-enter{0%{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.npl-page{animation:none}}.npl-preloader{display:grid;place-items:center;position:fixed;inset:0;z-index:9000;background:var(--npl-bg);transition:opacity .44s var(--npl-ease),visibility .44s}.npl-preloader[data-done]{opacity:0;visibility:hidden}.npl-preloader__in{display:grid;justify-items:center;grid-gap:18px;gap:18px}.npl-preloader img{width:132px;height:auto;display:block;animation:npl-preloader-mark .7s var(--npl-ease) backwards}.npl-preloader__rail{position:relative;width:132px;height:2px;border-radius:999px;background:var(--npl-border);overflow:hidden}.npl-preloader__rail span{position:absolute;inset:0;transform:scaleX(0);transform-origin:left center;background-image:var(--npl-foil-plate);background-size:300% 100%;transition:transform .2s var(--npl-ease)}.npl-preloader__pct{font-family:var(--npl-font-mono);font-size:var(--npl-text-2xs);letter-spacing:var(--npl-tracking-caps);color:var(--npl-text-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes npl-preloader-mark{0%{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.npl-preloader{display:none}}html[data-consent=ask] body{padding-bottom:14rem}@media (min-width:761px){html[data-consent=ask] body{padding-bottom:12rem}}