:root{color-scheme:dark;--pm-paper:#1b1a18;--pm-paper-2:#100f0e;--pm-ink:#d8d2c3;--pm-ink-soft:rgba(216, 210, 195, 0.22);--pm-ink-mid:rgba(216, 210, 195, 0.34);--pm-ink-mute:#a19d91;--ns-accent:oklch(0.92 0.09 240);--pm-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--pm-label:.64rem;--pm-body:.78rem;--pm-small:.72rem;--pm-title:1.3rem;--pm-track:.2em;--pm-track-title:.3em;--pm-hair:1px solid var(--pm-ink);--pm-hair-soft:1px solid var(--pm-ink-soft);--pm-ease:cubic-bezier(0.215, 0.61, 0.355, 1);--pm-fast:120ms}@media(prefers-color-scheme:light){:root{color-scheme:light;--pm-paper:#d6d3ca;--pm-paper-2:#cbc8bf;--pm-ink:#2f2f31;--pm-ink-soft:rgba(47, 47, 49, 0.34);--pm-ink-mid:rgba(47, 47, 49, 0.40);--pm-ink-mute:#5f5d59;--ns-accent:oklch(0.36 0.195 265)}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--pm-paper);color:var(--pm-ink);font:var(--pm-body)/1.8 var(--pm-mono);font-variant-numeric:tabular-nums}a{color:var(--pm-ink);text-decoration:underline;text-decoration-color:var(--pm-ink-mid);text-underline-offset:.22em}a:hover{text-decoration-color:var(--pm-ink)}:focus-visible{outline:2px solid var(--pm-ink);outline-offset:2px}.ns-sheet{min-height:100dvh;padding:3rem 1.25rem;overflow-x:clip}.ns-frame{position:relative;max-width:60rem;margin:0 auto}.ns-inner{padding:2.5rem clamp(1.5rem,8%,5rem)3rem;display:flex;flex-direction:column}.ns-label{position:absolute;top:15px;left:11px;transform:translateY(-50%);display:flex;max-width:calc(100% - 2.75rem);white-space:nowrap;padding:0 .6rem;background:var(--pm-paper);font:500 var(--pm-label)/1.2 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-label__dir{flex:none;color:var(--pm-ink-mute)}.ns-label__file{min-width:0;overflow:hidden;text-overflow:ellipsis}.ns-mark{position:absolute;background:var(--pm-ink);pointer-events:none}.ns-mark--slash{top:-.2rem;left:.35rem;width:1px;height:1.75rem;transform:rotate(35deg)}.ns-mark--tr-h{top:-1px;right:-.8rem;width:2.05rem;height:1px}.ns-mark--tr-v{top:-1px;right:-1px;width:1px;height:1.25rem}.ns-mark--bl-v{bottom:-1.3rem;left:0;width:1px;height:2.1rem}.ns-mark--bl-h{bottom:-1px;left:0;width:.75rem;height:1px}.ns-mark--br-v{bottom:-.95rem;right:-1px;width:1px;height:2.3rem}.ns-mark--br-h{bottom:-1px;right:-.95rem;width:3.1rem;height:1px}.ns-header{display:flex;justify-content:flex-end}.ns-nav{display:flex;flex-wrap:wrap;gap:1rem 2rem;padding-left:1rem;font:500 var(--pm-label)/1 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-nav a{position:relative;text-decoration:none;color:var(--pm-ink-mute);transition:color var(--pm-fast)var(--pm-ease)}.ns-nav a:hover,.ns-nav a.is-active{color:var(--pm-ink)}.ns-nav a.is-active::before,.ns-nav a.is-active::after{position:absolute;color:var(--ns-accent);font-weight:500}.ns-nav a.is-active::before{content:"[";right:calc(100% + .45rem)}.ns-nav a.is-active::after{content:"]";left:calc(100% + .45rem)}.ns-head{padding:3.5rem 0 3rem;display:flex;flex-direction:column;gap:.75rem}.ns-head--post{padding-bottom:2.5rem;border-bottom:var(--pm-hair-soft)}.ns-title{margin:0;font:500 var(--pm-title)/1.3 var(--pm-mono);letter-spacing:var(--pm-track-title);text-transform:uppercase;text-wrap:pretty}.ns-lede,.ns-lede p{margin:0;color:var(--pm-ink-mute)}.ns-lede a{color:var(--pm-ink-mute)}.ns-meta{margin:0;display:flex;flex-wrap:wrap;gap:.2rem .6rem;color:var(--pm-ink-mute);font-size:var(--pm-small);letter-spacing:.06em}.ns-meta time{color:var(--pm-ink)}.ns-section{display:flex;flex-direction:column;gap:1rem}.ns-years{display:flex;flex-direction:column;gap:3rem}.ns-h{margin:0 0 .35rem;display:flex;align-items:center;gap:1rem;font:500 var(--pm-label)/1.3 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-rule{flex:1 1 2.5rem;min-width:2.5rem;align-self:center;border-top:var(--pm-hair-soft)}[data-rule=ladder] .ns-rule{border:0;height:7px;background:repeating-linear-gradient(90deg,var(--pm-ink-mid) 0 1px,transparent 1px 35px)0/100% 7px repeat-x,repeating-linear-gradient(90deg,var(--pm-ink-mid) 0 1px,transparent 1px 7px)0/100% 3px repeat-x}.ns-rule.is-morse{border:0;height:9px;background-repeat:no-repeat;background-size:1px 9px,1px 9px,100% 1px;background-position:0,100%,0}.ns-list{display:flex;flex-direction:column;gap:.5rem}.ns-box{--ns-inner:var(--pm-ink-soft);position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.8rem .9rem;border:1px solid transparent;color:var(--pm-ink);text-decoration:none;transition:border-color var(--pm-fast)var(--pm-ease)}@media(hover:hover){.ns-box:hover{border-color:var(--pm-ink);--ns-inner:var(--ns-accent)}}.ns-box:active,.ns-box:focus-visible{border-color:var(--pm-ink);--ns-inner:var(--ns-accent)}.ns-box{-webkit-tap-highlight-color:transparent}.ns-box::before,.ns-box::after{content:"";position:absolute;width:.75rem;height:.75rem;pointer-events:none;border:0 solid var(--pm-ink)}.ns-box::before{top:-1px;left:-1px;border-top-width:1px;border-left-width:1px}.ns-box::after{bottom:-1px;right:-1px;border-bottom-width:1px;border-right-width:1px}.ns-box,.ns-plate{background-image:linear-gradient(var(--ns-inner),var(--ns-inner)),linear-gradient(var(--ns-inner),var(--ns-inner));background-repeat:no-repeat;background-size:.4rem 1px,1px .4rem;background-position:right 4px top 4px,right 4px top 4px}.ns-box__title{font-weight:600}.ns-box__desc{opacity:.75;text-wrap:pretty}.ns-box--social{gap:.35rem;padding:.75rem .9rem}.ns-box__label{font:500 var(--pm-label)/1 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-socials{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:.5rem}.ns-toc{--ns-inner:var(--pm-ink-soft);position:relative;margin-top:2.5rem;max-width:47rem;padding:1.1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.9rem}.ns-toc::before,.ns-toc::after{content:"";position:absolute;width:.75rem;height:.75rem;border:0 solid var(--pm-ink)}.ns-toc::before{top:0;left:0;border-top-width:1px;border-left-width:1px}.ns-toc::after{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}.ns-toc__label{font:500 var(--pm-label)/1.3 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-toc nav,.ns-toc ul{margin:0;padding:0;list-style:none}.ns-toc>nav>ul{display:flex;flex-direction:column;gap:.4rem;counter-reset:ns-toc}.ns-toc>nav>ul>li{counter-increment:ns-toc}.ns-toc ul ul{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.ns-toc a{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;text-decoration:none}.ns-toc>nav>ul>li>a{color:var(--pm-ink)}.ns-toc>nav>ul>li>a:hover{color:var(--ns-accent)}.ns-toc>nav>ul>li>a::before{content:counter(ns-toc,decimal-leading-zero);color:var(--pm-ink-mute)}.ns-toc ul ul a{color:var(--pm-ink-mute)}.ns-toc ul ul a:hover{color:var(--pm-ink)}.ns-toc ul ul a::before{content:"├─";text-align:right}.ns-toc ul ul li:last-child>a::before{content:"└─"}.ns-prose{display:flex;flex-direction:column;gap:1.1rem;text-wrap:pretty;overflow-wrap:break-word;min-width:0}.ns-box,.ns-title,.ns-h,.ns-toc a{overflow-wrap:anywhere}.ns-post{max-width:47rem;padding-top:2.5rem;counter-reset:ns-h}.ns-prose>*{margin:0}.ns-prose h1{margin:0 0 .4rem;font:500 var(--pm-title)/1.3 var(--pm-mono);letter-spacing:.06em}.ns-prose .ns-h{margin:1.5rem 0 .1rem}.ns-home .ns-h{margin:0 0 .35rem}.ns-home .ns-h~.ns-h{margin-top:2rem}.ns-h__n{display:none}.ns-post .ns-h{counter-increment:ns-h}.ns-post .ns-h__n{display:inline;color:var(--pm-ink-mute)}.ns-post .ns-h__n::before{content:counter(ns-h,decimal-leading-zero)}.ns-h3{margin:.8rem 0 0;display:flex;gap:.6rem;font:600 var(--pm-body)/1.5 var(--pm-mono)}.ns-h3__g{color:var(--pm-ink-mute);font-weight:400}.ns-prose ul,.ns-prose ol{padding:0;list-style:none;display:flex;flex-direction:column;gap:.55rem}.ns-prose ul>li{position:relative;padding-left:1.3rem}.ns-prose ul>li::before{content:"–";position:absolute;left:0;top:0;color:var(--pm-ink-mute)}.ns-home ul>li::before{content:"";top:7px;width:8px;height:8px;background:linear-gradient(45deg,transparent calc(50% - .6px),var(--pm-ink) calc(50% - .6px) calc(50% + .6px),transparent calc(50% + .6px)),linear-gradient(-45deg,transparent calc(50% - .6px),var(--pm-ink) calc(50% - .6px) calc(50% + .6px),transparent calc(50% + .6px))}.ns-prose ol{counter-reset:ns-ol}.ns-prose ol>li{counter-increment:ns-ol;position:relative;padding-left:2rem}.ns-prose ol>li::before{content:counter(ns-ol,decimal-leading-zero);position:absolute;left:0;top:0;color:var(--pm-ink-mute)}.ns-prose strong{font-weight:600}.ns-prose blockquote{padding-left:1rem;border-left:var(--pm-hair-soft);color:var(--pm-ink-mute)}.ns-prose code{font-family:var(--pm-mono);font-size:var(--pm-small)}.ns-prose pre{padding:.9rem 1rem;background:var(--pm-paper-2);overflow-x:auto;line-height:1.6}.ns-prose img{max-width:100%;height:auto;display:block}.ns-prose hr{width:100%;border:0;border-top:var(--pm-hair-soft)}.ns-prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--pm-small)}.ns-prose th,.ns-prose td{padding:.6rem .9rem;border-bottom:var(--pm-hair-soft);text-align:left}.ns-prose th{font-weight:500;letter-spacing:var(--pm-track);text-transform:uppercase;font-size:var(--pm-label)}.ns-home .ns-socials{margin-top:-.1rem}.ns-back{margin-top:3rem;padding-top:1rem;border-top:var(--pm-hair-soft);font:500 var(--pm-label)/1 var(--pm-mono);letter-spacing:var(--pm-track);text-transform:uppercase}.ns-back a{color:var(--pm-ink-mute);text-decoration:none}.ns-back a:hover{color:var(--pm-ink)}@media(max-width:40rem){.ns-sheet{padding:2rem 1.1rem}.ns-inner{padding:2.5rem 1.1rem}.ns-head{padding:2.5rem 0 2.25rem}.ns-head--post{padding-bottom:2rem}.ns-title{font-size:1.15rem;letter-spacing:.18em}.ns-socials{grid-template-columns:minmax(0,1fr)}.ns-toc{margin-top:2rem;padding:1rem 1rem 1.1rem}.ns-post{padding-top:2rem}.ns-prose h1{font-size:1.1rem}}@media(max-width:22.5rem){.ns-inner{padding-left:.85rem;padding-right:.85rem}.ns-nav{gap:.9rem 1.5rem}.ns-title{font-size:1.05rem;letter-spacing:.14em}.ns-h{gap:.75rem}.ns-toc a{grid-template-columns:1.6rem minmax(0,1fr);gap:.6rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}