:root{--px-ink:var(--nw-ink,#9a0002);--px-bg:var(--nw-paper,#efe6de);--px-text:var(--nw-ink,#9a0002)}html[data-research-theme=dark]{--px-ink:var(--nw-theme-heading,#efe6de);--px-bg:#1b0305;--px-text:var(--nw-theme-heading,#efe6de)}.px-box{--px-s:4px;--px-b:2px;isolation:isolate;color:var(--px-text);background:var(--px-ink);clip-path:polygon(0 var(--px-s), var(--px-s) var(--px-s), var(--px-s) 0, calc(100% - var(--px-s)) 0, calc(100% - var(--px-s)) var(--px-s), 100% var(--px-s), 100% calc(100% - var(--px-s)), calc(100% - var(--px-s)) calc(100% - var(--px-s)), calc(100% - var(--px-s)) 100%, var(--px-s) 100%, var(--px-s) calc(100% - var(--px-s)), 0 calc(100% - var(--px-s)));position:relative}.px-box:before{content:"";inset:var(--px-b);z-index:-1;background:var(--px-bg);clip-path:polygon(0 var(--px-b), var(--px-b) var(--px-b), var(--px-b) 0, calc(100% - var(--px-b)) 0, calc(100% - var(--px-b)) var(--px-b), 100% var(--px-b), 100% calc(100% - var(--px-b)), calc(100% - var(--px-b)) calc(100% - var(--px-b)), calc(100% - var(--px-b)) 100%, var(--px-b) 100%, var(--px-b) calc(100% - var(--px-b)), 0 calc(100% - var(--px-b)));transition:background-color .12s steps(2,end);position:absolute}button.px-box,a.px-box{cursor:pointer}button.px-box:hover:before,button.px-box:focus-visible:before,button.px-box[aria-pressed=true]:before{background:var(--px-ink)}button.px-box:hover,button.px-box:focus-visible,button.px-box[aria-pressed=true]{color:var(--px-bg)}button.px-box:focus-visible{outline:2px dashed var(--px-ink);outline-offset:3px}.nw-search-pill{height:34px;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex:none;align-items:center;gap:10px;padding:0 12px;font-size:12px;font-weight:500;display:inline-flex}.nw-search-pill svg{flex:none;width:18px;height:18px;margin-left:-3px}.nw-search-pill kbd{font:inherit;opacity:.75;letter-spacing:0;border:1px solid;padding:0 5px}@media (max-width:1100px){.nw-search-pill kbd{display:none}}.nw-search-icon{width:44px;height:44px;color:var(--nw-ink);place-items:center;display:grid}.nw-search-icon svg{width:28px;height:28px}@media (max-width:767px){.nw-research-menu-burger{width:28px;height:28px}}.fl{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--px-text);gap:14px;margin:0 0 clamp(20px,3vw,36px);scroll-margin-top:120px;display:grid}.fl-search{align-items:center;gap:10px;height:46px;padding:0 14px;display:flex}.fl-search:focus-within{--px-ink:var(--px-text);outline:2px dashed var(--px-ink);outline-offset:3px}.fl-search svg{shape-rendering:crispedges;flex:none;width:16px;height:16px}.fl-search input{min-width:0;height:100%;color:inherit;font:inherit;caret-color:currentColor;caret-shape:block;background:0 0;border:0;outline:0;flex:1;font-size:14px}.fl-search input::placeholder{color:inherit;opacity:.5}.fl-search input::-webkit-search-cancel-button{display:none}.fl-key{opacity:.6;border:1px solid;padding:0 6px;font-size:11px}.fl-clear{width:26px;height:26px;font-size:16px;line-height:1}.fl-chips{flex-wrap:wrap;gap:8px;display:flex}.fl-chip{--px-s:3px;--px-b:2px;height:34px;font:inherit;text-transform:uppercase;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:inline-flex}.fl-chip small{font:inherit;opacity:.6}.fl-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;font-size:12px;display:flex}.fl-count{opacity:.8}.fl-tools{align-items:center;gap:14px;display:flex}.fl-tools label{align-items:center;gap:8px;display:inline-flex}.fl-select{--px-s:3px;height:34px;font:inherit;text-transform:uppercase;color:inherit;appearance:none;cursor:pointer;background-color:#0000;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 15px) 14px,calc(100% - 10px) 14px;background-repeat:no-repeat;background-size:5px 5px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:0;padding:0 28px 0 10px;font-size:12px}.fl-select option{background:var(--px-bg);color:var(--px-text)}.fl-reset{height:34px;font:inherit;text-transform:uppercase;padding:0 12px;font-size:12px}.fl-empty{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;justify-items:start;gap:14px;padding:36px 0;font-size:13px;display:grid}.fl-empty button{height:36px;font:inherit;text-transform:uppercase;padding:0 14px}@media (max-width:767px){.fl-tools{justify-content:space-between;width:100%}.fl-key{display:none}}@media (prefers-reduced-motion:reduce){.px-box:before{transition:none}}.hs{padding:clamp(36px, 5vw, 72px) var(--hw-teams-pad-x,24px) 0;color:var(--px-text);justify-items:center;gap:16px;display:grid}.hs-bar{--px-s:5px;--px-b:2px;width:min(100%,720px);height:58px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;text-align:left;align-items:center;gap:14px;padding:0 18px;font-size:14px;display:flex}.hs-bar svg{shape-rendering:crispedges;flex:none;width:20px;height:20px}.hs-text{text-overflow:ellipsis;white-space:nowrap;opacity:.7;flex:1;min-width:0;overflow:hidden}.hs-text:after{content:"";vertical-align:-.15em;background:currentColor;width:.55em;height:1em;margin-left:6px;animation:1.1s step-end infinite hs-blink;display:inline-block}@keyframes hs-blink{50%{opacity:0}}.hs-keys{flex:none;gap:4px;display:inline-flex}.hs-keys kbd{font:inherit;opacity:.75;border:1px solid;padding:2px 7px;font-size:12px}.hs-quick{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.hs-quick>span{opacity:.6;margin-right:4px}.hs-quick a{--px-s:3px;align-items:center;height:32px;padding:0 12px;text-decoration:none;display:inline-flex}.hs-quick a:hover,.hs-quick a:focus-visible{color:var(--px-bg)}.hs-quick a:hover:before,.hs-quick a:focus-visible:before{background:var(--px-ink)}@media (max-width:767px){.hs-bar{height:52px;font-size:12px}.hs-keys{display:none}}@media (prefers-reduced-motion:reduce){.hs-text:after{animation:none}}@media (max-width:767px){nav[data-pro-nav] .nw-research-badge,nav[data-pro-nav] .nw-research-pinned-badge{width:min(150px,40vw)!important;height:auto!important}nav[data-pro-nav] .nw-search-icon,nav[data-pro-nav] button[aria-label=Open\ menu]{width:44px!important;height:44px!important}nav[data-pro-nav] .nw-search-icon svg,nav[data-pro-nav] .nw-research-menu-burger{width:24px!important;height:24px!important}nav[data-pro-nav]>.flex.md\:hidden{gap:4px;margin-right:-6px}}.nw-pinned-brand{width:auto;height:auto}nav[data-pro-nav] .nw-research-pinned-badge{width:150px!important;height:auto!important}@media (max-width:767px){nav[data-pro-nav] .nw-research-pinned-badge{width:min(150px,40vw)!important}.nw-pinned-brand{width:min(150px,40vw)}}@media (min-width:768px){nav[data-pro-nav]>div.max-md\:hidden{justify-content:space-between}nav[data-pro-nav]>div.max-md\:hidden>span{flex:none}}.nw-header-icons{flex:none;justify-content:flex-end;align-items:center;gap:2px;width:84px;display:inline-flex}.nw-header-icons-balance{visibility:hidden}.nw-header-icon{width:40px;height:40px;color:inherit;opacity:.8;cursor:pointer;place-items:center;transition:opacity .15s;display:grid}.nw-header-icon:hover,.nw-header-icon:focus-visible{opacity:1}.nw-header-icon:focus-visible{outline-offset:2px;outline:2px dashed}.nw-header-icon svg{width:20px;height:20px}.nw-header-theme svg{shape-rendering:crispedges;width:17px;height:17px}.nw-menu-theme{color:var(--nw-paper,#efe6de)}.nw-menu-theme svg{shape-rendering:crispedges;width:18px;height:18px}.nw-ai-panel{isolation:isolate;color:var(--nw-paper);--label-width:134px;padding:8px 8px 0;position:relative}@media (max-width:767px){.nw-ai-panel{--label-width:74px}}.nw-ai-body{border-bottom:1px solid color-mix(in srgb, currentColor 18%, transparent);grid-area:1/2;min-width:0;padding:10px 8px 14px}.nw-ai-text{font:15px/1.55 var(--font-rules);overflow-wrap:anywhere;margin:0}.nw-ai-muted{opacity:var(--nw-muted,.7);font-size:13px}.nw-ai-cite{min-width:1.35em;height:1.35em;font:600 10px/1 var(--font-mono);vertical-align:.15em;opacity:.85;border:1px solid;place-items:center;margin:0 1px;padding:0 3px;text-decoration:none;display:inline-grid}.nw-ai-cite:hover,.nw-ai-cite:focus-visible{opacity:1;color:var(--nw-ink);background:var(--nw-paper);border-color:var(--nw-paper)}.nw-ai-meta{font:11px/1.5 var(--hpv2-font-meta,var(--font-mono));letter-spacing:.02em;opacity:var(--nw-muted,.7);margin:8px 0 0}.nw-ai-title{align-items:flex-start;gap:8px;display:flex}.nw-ai-spark{shape-rendering:crispedges;flex:none;width:14px;height:14px;margin-top:2px;animation:.5s steps(2,end) 3 nw-ai-spark}@keyframes nw-ai-spark{0%{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.55;transform:scale(.7)rotate(45deg)}}.nw-ai-stream{position:relative}.nw-ai-thinking{pointer-events:none;animation:nw-ai-fade-out .18s ease-out var(--think) both;gap:9px;display:grid;position:absolute;inset:4px 0 auto}.nw-ai-thinking span{background:linear-gradient(90deg, color-mix(in srgb, currentColor 10%, transparent) 0%, color-mix(in srgb, currentColor 38%, transparent) 50%, color-mix(in srgb, currentColor 10%, transparent) 100%);background-size:200% 100%;height:10px;animation:.9s linear infinite nw-ai-shimmer}.nw-ai-thinking span:nth-child(2){width:86%}.nw-ai-thinking span:nth-child(3){width:58%}@keyframes nw-ai-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes nw-ai-fade-out{to{opacity:0;visibility:hidden}}.nw-ai-w{animation:.32s cubic-bezier(.2,.7,.2,1) both nw-ai-word;animation-delay:calc(var(--think) + var(--i) * var(--step));display:inline}@keyframes nw-ai-word{0%{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur()}}@media (prefers-reduced-motion:reduce){.nw-ai-spark,.nw-ai-w,.nw-ai-thinking span{animation:none}.nw-ai-thinking{display:none}}.nf{text-align:center;color:var(--nw-ink);justify-items:center;gap:20px;padding:clamp(64px,12vw,160px) 24px clamp(80px,12vw,160px);display:grid}html[data-research-theme=dark] .nf{color:var(--nw-theme-heading)}.nf-code{font-family:var(--font-rules-gothic-cmp);margin:0;font-size:clamp(120px,26vw,320px);line-height:.8}.nf-title{font-family:var(--font-rules-gothic-cnd);text-transform:uppercase;margin:0;font-size:clamp(28px,4vw,48px);font-weight:400}.nf-copy{max-width:44ch;font:15px/1.5 var(--font-rules);opacity:.85;margin:0}.nf-search{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid;align-items:center;gap:12px;margin-top:8px;padding:12px 18px;font-size:12px;display:inline-flex}.nf-search:hover,.nf-search:focus-visible{background:currentColor}.nf-search:hover>*,.nf-search:hover{color:var(--nw-stage)}.nf-search kbd{font:inherit;border:1px solid;padding:0 6px}.nf-links{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin:8px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.nf-links a{color:inherit;text-underline-offset:4px;text-decoration:underline}.nw-work-card{color:var(--nw-paper,#efe6de);background:radial-gradient(120% 90% at 85% 0%, #ffffff24, transparent 60%), var(--nw-ink,#9a0002);grid-template-rows:1fr auto;gap:16px;padding:clamp(18px,2.2vw,30px);text-decoration:none;transition:background-color .3s;display:grid;position:absolute;inset:0;overflow:hidden}html[data-research-theme=dark] .nw-work-card,html[data-research-theme=dark] .nw-work-card>*{color:#1b0305!important}html[data-research-theme=dark] .nw-work-card{background:radial-gradient(120% 90% at 85% 0%, #ffffff4d, transparent 60%), var(--nw-theme-heading,#efe6de)}.nw-work-card:before{content:"";background-image:linear-gradient(color-mix(in srgb, currentColor 10%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, currentColor 10%, transparent) 1px, transparent 1px);pointer-events:none;background-size:24px 24px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 70%);mask-image:linear-gradient(#0000,#000 70%)}.nw-work-card>*{position:relative}.nw-work-card-repo{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;opacity:.8;font-size:11px}.nw-work-card-blurb{font-family:var(--font-rules-gothic-cnd);text-wrap:balance;align-self:center;font-size:clamp(22px,2.3vw,34px);line-height:1.12}.nw-work-card-repo:after{content:" ↗"}.nw-work-card:hover .nw-work-card-blurb,.nw-work-card:focus-visible .nw-work-card-blurb{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:1px}.nw-work-card:focus-visible{outline-offset:-6px;outline:2px solid}.nw-term-band{isolation:isolate;background:#1b0305}.nw-term-band video{filter:grayscale()contrast(1.25)brightness(.9)}.nw-term-tint{pointer-events:none;mix-blend-mode:color;background:#9a0002;position:absolute;inset:0}.nw-term-tint:before{content:"";mix-blend-mode:multiply;background:repeating-linear-gradient(#00000038 0 1px,#0000 1px 3px);position:absolute;inset:0}.nw-term-tint:after{content:"";mix-blend-mode:normal;background:radial-gradient(120% 90%,#0000 40%,#140002bf 100%),linear-gradient(#0000 45%,#140002d9),linear-gradient(90deg,#140002bf,#0000 65%);position:absolute;inset:0}.nw-term{color:#efe6de;font-family:var(--font-mono);pointer-events:none;text-shadow:0 0 12px #ff3c3c59;grid-template-rows:auto 1fr;padding:clamp(16px,2.4vw,36px);display:grid;position:absolute;inset:0}.nw-term-bar{letter-spacing:.08em;text-transform:uppercase;opacity:.85;align-items:center;gap:10px;font-size:11px;display:flex}.nw-term-rec{background:#efe6de;border-radius:50%;width:8px;height:8px;animation:1.4s steps(2,start) infinite nw-term-rec;box-shadow:0 0 10px #efe6de}@keyframes nw-term-rec{to{opacity:.25}}.nw-term-count{margin-left:auto}.nw-term-body{align-self:end;gap:clamp(10px,1.4vw,18px);max-width:min(900px,100%);padding-bottom:clamp(36px,4vw,56px);display:grid}.nw-term-line,.nw-term-blurb{text-transform:none!important}.nw-term-line{letter-spacing:.02em;overflow-wrap:anywhere;margin:0;font-size:clamp(13px,1.5vw,20px)}.nw-term-prompt{color:#ff6b6b}.nw-term-caret{vertical-align:-.18em;background:currentColor;width:.6em;height:1.1em;margin-left:2px;animation:.9s steps(2,start) infinite nw-term-rec;display:inline-block}.nw-term-out{opacity:0;gap:6px;margin:0;transition:opacity .35s,translate .35s;display:grid;translate:0 6px}.nw-term-out.is-shown{opacity:1;translate:0}.nw-term-tag{letter-spacing:.08em;text-transform:uppercase;color:#ff8a8a;font-size:11px}.nw-term-title{font-family:var(--font-rules-gothic-cmp);text-transform:uppercase;font-size:clamp(36px,6vw,96px);line-height:.95}.nw-term-blurb{max-width:52ch;font-family:var(--font-rules);opacity:.9;font-size:clamp(13px,1.2vw,17px);line-height:1.45}.nw-term-link{color:#efe6de;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid #efe6de99;padding:9px 14px;font-size:11px;text-decoration:none;transition:background-color .2s,color .2s;position:absolute;bottom:clamp(16px,2.4vw,36px);right:clamp(16px,2.4vw,36px)}.nw-term-link:hover,.nw-term-link:focus-visible{color:#9a0002;background:#efe6de}@media (max-width:767px){.nw-term-band{aspect-ratio:auto;min-height:470px;height:auto!important}.nw-term-body{padding-bottom:64px}.nw-term-line{font-size:12px}.nw-term-title{font-size:36px}.nw-term-blurb{font-size:13px}.nw-term-link{left:clamp(16px,2.4vw,36px);right:auto}}@media (prefers-reduced-motion:reduce){.nw-term-rec,.nw-term-caret{animation:none}.nw-term-out{transition:none}}.nw-dismiss-touch{font-size:18px;line-height:1;display:none}@media (hover:none) and (pointer:coarse){.nw-dismiss-key{display:none}.nw-dismiss-touch{display:inline}}.nw-article-action-body .nw-article-action-note,.nw-article-action-body .nw-article-action-title{color:var(--nw-editorial-text,#4d0001)}html[data-research-theme=dark] .nw-article-action-body .nw-article-action-note,html[data-research-theme=dark] .nw-article-action-body .nw-article-action-title{color:var(--nw-theme-text,#dccfc5)}
