@font-face{font-family:'JetBrains Mono';font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400.woff) format('woff')}
@font-face{font-family:'JetBrains Mono';font-weight:500;font-style:normal;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500.woff) format('woff')}
@font-face{font-family:'JetBrains Mono';font-weight:700;font-style:normal;font-display:swap;src:url(/assets/fonts/jetbrains-mono-700.woff) format('woff')}
@font-face{font-family:'IBM Plex Sans';font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-400.woff) format('woff')}
@font-face{font-family:'IBM Plex Sans';font-weight:500;font-style:normal;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-500.woff) format('woff')}
@font-face{font-family:'IBM Plex Sans';font-weight:600;font-style:normal;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-600.woff) format('woff')}

html{scroll-behavior:smooth}body{margin:0;background:#0D1321}
[hidden]{display:none!important}
.nz [id]{scroll-margin-top:72px}
a{color:#8FB0FF}a:hover{color:#FFFFFF}
.nz ::selection{background:#2B5A8C;color:#FFFFFF}
.nz a:focus-visible,.nz button:focus-visible,.nz input:focus-visible,.nz select:focus-visible,.nz textarea:focus-visible{outline:2px solid #3D7BFF;outline-offset:3px}
.nz .nz-row{transition:background-color .15s ease}
.nz .nz-row:hover{background:var(--hover)}
.nz .nz-btn{transition:background-color .15s ease,color .15s ease}
.nz .nz-btn-primary:hover{background:#3D7BFF}
.nz .nz-btn-ghost:hover{background:var(--hover)}
.nz .nz-chev{transition:transform .2s ease}
.nz .nz-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.nz .nz-items li{display:flex;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:16px;line-height:1.45}
.nz .nz-items li:last-child{border-bottom:none}
.nz .nz-items li::before{content:"›";flex:none;color:#3D7BFF;font-family:'JetBrains Mono',monospace;font-weight:700}
.nz .nz-strip{scrollbar-width:none}
.nz .nz-strip::-webkit-scrollbar{display:none}
.nz .nz-blink{animation:nz-blink 1.6s steps(1,end) infinite}
@keyframes nz-blink{0%{opacity:1}50%{opacity:0}}
.nz .nz-in{width:100%;box-sizing:border-box;background:rgba(13,19,33,.55);border:1px solid var(--line);border-radius:6px;padding:12px 14px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:14px;caret-color:#3D7BFF}
.nz .nz-in:focus{outline:none;border-color:#3D7BFF;box-shadow:0 0 0 3px rgba(61,123,255,.25)}
.nz .nz-in::placeholder{color:var(--muted)}
.nz .nz-blur{position:absolute;left:0;right:0;top:0;height:calc(100% + 28px);pointer-events:none;z-index:0}
.nz .nz-blur::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 70%,transparent) 0%,color-mix(in srgb,var(--bg) 40%,transparent) 55%,transparent 100%)}
.nz .nz-blur i{position:absolute;inset:0}
.nz .nz-blur i:nth-child(1){backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);mask-image:linear-gradient(to top,transparent 0%,#000 25%,#000 45%,transparent 65%);-webkit-mask-image:linear-gradient(to top,transparent 0%,#000 25%,#000 45%,transparent 65%)}
.nz .nz-blur i:nth-child(2){backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);mask-image:linear-gradient(to top,transparent 40%,#000 60%,#000 100%);-webkit-mask-image:linear-gradient(to top,transparent 40%,#000 60%,#000 100%)}
.nz .au{position:absolute;border-radius:50%;pointer-events:none;will-change:transform}
.nz .au1{animation:au1 14s ease-in-out infinite alternate}
.nz .au2{animation:au2 17s ease-in-out infinite alternate}
.nz .au3{animation:au3 12s ease-in-out infinite alternate}
.nz .au4{animation:au4 9s ease-in-out infinite alternate;will-change:opacity}
@keyframes au4{0%{opacity:0}100%{opacity:1}}
@keyframes au1{0%{transform:translate(-8%,-4%) scale(1)}100%{transform:translate(10%,6%) scale(1.25)}}
@keyframes au2{0%{transform:translate(12%,4%) scale(1.15)}100%{transform:translate(-10%,-6%) scale(.9)}}
@keyframes au3{0%{transform:translate(0,10%) scale(.9)}100%{transform:translate(6%,-8%) scale(1.2)}}
.nz .fx{font-family:'JetBrains Mono',monospace;white-space:nowrap;pointer-events:none;user-select:none}
@keyframes mx-fall{0%{transform:translateY(-55%)}100%{transform:translateY(0)}}
@keyframes mx-glint{0%,86%,100%{opacity:.25}90%{opacity:1}}
.nz .fx-layer .fx{will-change:transform}
@media (prefers-reduced-motion: reduce){.nz .au,.nz .au-wrap,.nz .fx,.nz .fx *{animation:none!important}.nz .fx-hide-rm{display:none}}
.nz .nz-read{font-family:'IBM Plex Sans',system-ui,sans-serif}
.nz .nz-items li{font-size:15px}
/* V2: mono = brand and system layer (headlines, labels, tags, numbers, paths, case box); sans = everything people read */
.nz p:not(.nz-mono),.nz .nz-items li,.nz .nz-stitle,.nz .nz-steptitle,.nz header nav a,.nz [role=tab],.nz .nz-in,.nz .nz-btn,.nz dd,.nz li > span[style*="font-size: 14px; line-height: 1.6"],.nz section[aria-labelledby="book-h"] p{font-family:'IBM Plex Sans',system-ui,sans-serif!important}
.nz .nz-sub span{font-size:17px}
.nz p:not(.nz-mono):not(.nz-sub){font-size:max(16px,1em)}
.nz .nz-items li{font-size:16px}
.nz .nz-steptitle{font-size:19px!important;font-weight:600!important}
.nz .nz-stitle{font-size:22px!important}
.nz li > span[style*="font-size: 14px; line-height: 1.6"]{font-size:15px!important}
.nz header nav a{font-size:15px}
@media (max-width: 760px){
.nz .nz-book{grid-template-columns:minmax(0,1fr)!important}
.nz header nav a:not(.nz-btn-primary){display:none}
.nz header > div{padding-top:10px!important;padding-bottom:10px!important}
.nz header nav a.nz-btn-primary{padding:8px 14px!important;font-size:14px}
.nz .nz-blur{height:calc(100% + 12px)}
.nz .nz-blur i{display:none}
.nz .nz-blur::before{background:linear-gradient(to bottom,rgba(13,19,33,.94) 0%,rgba(13,19,33,.82) 75%,transparent 100%)}
.nz .fx-layer .fx:nth-child(2n){display:none}
.nz .fx-layer .fx div[style*="mx-glint"]{animation:none!important;opacity:.3}
}
.nz .nz-cal:empty{min-height:480px}
@media (prefers-reduced-motion: reduce){.nz *{transition:none!important}.nz .nz-blink{animation:none}}
