@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-400.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.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:700;font-display:swap;src:url(../fonts/ibm-plex-mono-700.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:300;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-300.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;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-400.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:500;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-500.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:600;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-600.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:700;font-stretch:100%;font-display:swap;src:url(../fonts/ibm-plex-sans-700.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{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--bg:#1a1f2b;--bg-2:#10141c;--bg-3:#252b3a;--line:hsla(0,0%,100%,.08);--line-2:hsla(0,0%,100%,.16);--text:#e6e9f0;--text-dim:rgba(230,233,240,.62);--text-fade:rgba(230,233,240,.36);--blue:#5ec2f2;--teal:#3fe0c5;--orange:#ff9e5a;--red:#ff6479;--green:#7cdf8c;--yellow:#ffd56a;--violet:#a88fff}*,:after,:before{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif;font-weight:400;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}body{min-height:100vh;background-color:var(--bg);background-image:linear-gradient(hsla(0,0%,100%,.018) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.018) 1px,transparent 0),linear-gradient(hsla(0,0%,100%,.04) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.04) 1px,transparent 0);background-size:24px 24px,24px 24px,120px 120px,120px 120px;background-attachment:fixed}::-moz-selection{background:var(--teal);color:var(--bg)}::selection{background:var(--teal);color:var(--bg)}a{color:inherit}.wrap{max-width:1400px;margin:0 auto;padding:0 32px;min-height:100vh;display:flex;flex-direction:column}main{flex:1 0 auto}header.top{margin-top:20px;padding:12px 18px;border:1px solid var(--line-2);background:rgba(16,20,28,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);justify-content:space-between;gap:18px;flex-wrap:wrap}.brand,header.top{display:flex;align-items:center}.brand{gap:12px;font-family:IBM Plex Mono,monospace;font-weight:700;font-size:16px;letter-spacing:.04em;color:var(--text);text-decoration:none}.brand .brand-ic{width:26px;height:26px;flex-shrink:0;background:var(--teal)}nav.menu{display:flex;gap:0;align-items:center;flex-wrap:wrap}nav.menu a{color:var(--text-dim);text-decoration:none;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-right:1px solid var(--line);border-bottom:2px solid transparent;transition:all .2s ease}nav.menu a:first-child{border-left:1px solid var(--line)}nav.menu a:hover{color:var(--text);background:var(--bg-3)}nav.menu a.cur{color:var(--teal);border-bottom-color:var(--teal)}.top .lang{display:flex;gap:6px}.top .lang a{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);text-decoration:none;border:1px solid var(--line-2);padding:6px 10px}.top .lang a.cur{background:var(--teal);color:var(--bg);border-color:var(--teal)}.hero{margin-top:24px;padding:36px;background:rgba(16,20,28,.7);border:1px solid var(--line-2);display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:center}.hero-text{position:relative}.hero-text .label{display:inline-flex;align-items:center;gap:10px;background:rgba(255,158,90,.12);border:1px solid var(--orange);color:var(--orange);padding:4px 12px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:20px}.hero-text .label .star{width:7px;height:7px;border-radius:50%;background:var(--orange);box-shadow:0 0 8px var(--orange)}.hero-text h1{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(32px,4.2vw,54px);line-height:1.08;letter-spacing:-.022em;color:var(--text)}.hero-text h1 a{color:inherit;text-decoration:none}.hero-text h1 a:hover{color:var(--teal)}.hero-text .lede{margin-top:18px;font-size:clamp(14px,1.9vw,16px);line-height:1.65;color:var(--text-dim);max-width:600px}.hero-text .row{margin-top:26px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn-jelly{background:var(--teal);color:var(--bg);border:1px solid var(--teal);padding:12px 22px;font-family:IBM Plex Mono,monospace;font-weight:500;font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:opacity .2s ease}.btn-jelly:hover{opacity:.85}.btn-jelly.mint{background:transparent;border-color:var(--line-2);color:var(--text)}.hero-vis{position:relative;aspect-ratio:4/3;display:block;border:1px solid var(--line);background:rgba(0,0,0,.2);padding:14px}.scene{overflow:hidden;position:relative}.scene,.scene img{width:100%;height:100%;display:block}.scene img{-o-object-fit:cover;object-fit:cover}.scene.empty{background-image:linear-gradient(hsla(0,0%,100%,.05) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.05) 1px,transparent 0);background-size:28px 28px,28px 28px;background-color:rgba(0,0,0,.25)}.scene.empty:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(63,224,197,.28),rgba(63,224,197,.04));clip-path:polygon(0 100%,0 72%,14% 60%,28% 68%,42% 44%,56% 52%,70% 30%,84% 38%,100% 16%,100% 100%)}.scene.empty:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,158,90,.22),transparent);clip-path:polygon(0 100%,0 86%,18% 78%,34% 84%,50% 66%,66% 74%,82% 56%,100% 62%,100% 100%);z-index:1}.section-h{margin-top:48px;margin-bottom:18px;padding:16px 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}.section-h .scribble{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-fade);margin-bottom:8px}.section-h h2{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(24px,3vw,36px);line-height:1.12;letter-spacing:-.018em;color:var(--text)}.section-h h2 em{color:var(--teal);font-style:normal}.chapters{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.chapter{background:rgba(16,20,28,.6);border:1px solid var(--line-2);text-decoration:none;color:var(--text);display:flex;flex-direction:column;transition:border-color .2s ease}.chapter:hover{border-color:var(--teal)}.chapter .cover{height:150px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.chapter .cover img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.chapter .cover.empty{background-color:rgba(0,0,0,.25);background-image:linear-gradient(hsla(0,0%,100%,.05) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.05) 1px,transparent 0);background-size:22px 22px,22px 22px}.chapter .cover.empty:after{content:"";position:absolute;inset:0}.chapter .cover.empty.s1:after{background:linear-gradient(180deg,rgba(63,224,197,.32),transparent);clip-path:polygon(0 100%,0 70%,20% 56%,40% 64%,60% 38%,80% 48%,100% 22%,100% 100%)}.chapter .cover.empty.s2:after{background:linear-gradient(180deg,rgba(255,158,90,.3),transparent);clip-path:polygon(0 100%,0 50%,25% 60%,50% 36%,75% 52%,100% 30%,100% 100%)}.chapter .cover.empty.s3:after{background:linear-gradient(180deg,rgba(94,194,242,.3),transparent);clip-path:polygon(0 100%,0 82%,16% 70%,32% 76%,48% 54%,64% 62%,80% 40%,100% 48%,100% 100%)}.chapter .cover.empty.s4:after{background:linear-gradient(180deg,rgba(168,143,255,.3),transparent);clip-path:polygon(0 100%,0 64%,22% 72%,44% 46%,66% 58%,88% 34%,100% 42%,100% 100%)}.chapter .cover.empty.s5:after{background:linear-gradient(180deg,rgba(124,223,140,.3),transparent);clip-path:polygon(0 100%,0 58%,20% 66%,40% 48%,60% 60%,80% 36%,100% 50%,100% 100%)}.chapter .cover.empty.s6:after{background:linear-gradient(180deg,rgba(255,213,106,.28),transparent);clip-path:polygon(0 100%,0 76%,18% 62%,36% 70%,54% 44%,72% 56%,90% 32%,100% 38%,100% 100%)}.chapter .ribbon{position:absolute;top:12px;left:12px;background:rgba(94,194,242,.12);border:1px solid var(--blue);color:var(--blue);padding:2px 9px;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;z-index:3}.chapter .body{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column}.chapter .tag{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-fade);margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--line)}.chapter h3{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:18px;line-height:1.28;letter-spacing:-.008em;margin-bottom:9px;color:var(--text)}.chapter p{font-size:13px;line-height:1.6;color:var(--text-dim);flex:1;margin-bottom:14px}.chapter .meta{padding-top:10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.04em;color:var(--text-dim)}.chapter .arrow{width:26px;height:26px;border:1px solid var(--line-2);display:grid;place-items:center;color:var(--text);font-size:12px;flex-shrink:0;transition:all .2s ease}.chapter:hover .arrow{background:var(--teal);color:var(--bg);border-color:var(--teal)}.empty-state{margin:18px 0;background:rgba(16,20,28,.6);border:1px solid var(--line-2);padding:52px 40px;text-align:center;font-family:IBM Plex Mono,monospace;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.bubble{margin-top:48px;padding:36px 44px;background:rgba(16,20,28,.7);border:1px solid var(--orange);position:relative}.bubble:before{content:"! INSIGHT";position:absolute;top:-10px;left:28px;background:var(--bg);color:var(--orange);padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.18em}.bubble blockquote{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(20px,2.6vw,32px);line-height:1.2;letter-spacing:-.015em;color:var(--text);max-width:880px}.bubble cite{display:block;margin-top:18px;font-family:IBM Plex Mono,monospace;font-style:normal;font-size:11px;letter-spacing:.06em;color:var(--text-fade)}.bubble cite b{color:var(--orange);font-weight:500}.bubble .stars{position:absolute;top:18px;right:24px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.14em;color:var(--orange)}.subscribe{margin-top:32px;padding:40px 48px;background:linear-gradient(135deg,rgba(63,224,197,.08),rgba(94,194,242,.08));border:1px solid var(--line-2);text-align:center}.subscribe .scribble{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}.subscribe h2{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.1;letter-spacing:-.018em;color:var(--text);max-width:680px;margin:0 auto}.subscribe p{margin:14px auto 24px;font-size:14px;color:var(--text-dim);max-width:520px;line-height:1.6}.subscribe form{max-width:480px;margin:0 auto;display:flex;background:rgba(16,20,28,.6);border:1px solid var(--line-2)}.subscribe input{flex:1;background:transparent;border:none;outline:none;padding:13px 18px;font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--text)}.subscribe input::-moz-placeholder{color:var(--text-fade)}.subscribe input::placeholder{color:var(--text-fade)}.subscribe button{background:var(--teal);color:var(--bg);border:none;padding:0 24px;font-weight:500;letter-spacing:.14em;cursor:pointer}.breadcrumb,.subscribe button{font-family:IBM Plex Mono,monospace;font-size:11px;text-transform:uppercase}.breadcrumb{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;letter-spacing:.08em}.breadcrumb a{color:var(--text-dim);text-decoration:none}.breadcrumb a:hover{color:var(--teal)}.breadcrumb .cur{color:var(--text)}.breadcrumb .sep{color:var(--text-fade)}.pagination{margin-top:36px;display:flex;justify-content:center;align-items:center;gap:12px}.pagination .disabled,.pagination a{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:11px 22px;border:1px solid var(--line-2)}.pagination a{background:rgba(16,20,28,.6);color:var(--text);text-decoration:none;transition:all .2s ease}.pagination a:hover{border-color:var(--teal);color:var(--teal)}.pagination .disabled{color:var(--text-fade)}.pagination .progress{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--teal)}.article-head{margin-top:24px;background:rgba(16,20,28,.7);border:1px solid var(--line-2);padding:36px 40px 30px;text-align:center}.article-head .label{display:inline-block;background:rgba(63,224,197,.12);border:1px solid var(--teal);color:var(--teal);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 12px;margin-bottom:16px}.article-head h1{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(28px,3.8vw,48px);line-height:1.14;letter-spacing:-.022em;color:var(--text)}.article-head .byline{margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;color:var(--text-dim)}.article-head .byline b{color:var(--teal);font-weight:500}.article-cover{margin-top:24px;border:1px solid var(--line-2)}.article-cover img{width:100%;aspect-ratio:16/9;max-height:min(56vh,520px);-o-object-fit:cover;object-fit:cover;display:block}.article-lede{border-left:2px solid var(--teal);padding:6px 0 6px 20px;font-family:IBM Plex Sans,sans-serif;font-size:clamp(15px,2vw,18px);line-height:1.55;color:var(--text-dim)}.article-foot,.article-lede{margin:24px auto 0;max-width:760px}.article-foot{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;color:var(--text-fade);border-top:1px solid var(--line);padding-top:14px}.article-nav{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.article-nav a{background:rgba(16,20,28,.6);border:1px solid var(--line-2);padding:18px 22px;text-decoration:none;display:block;transition:border-color .2s ease}.article-nav a:hover{border-color:var(--teal)}.article-nav a.next{text-align:right}.article-nav .dir{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}.article-nav .t{margin-top:8px;font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:17px;line-height:1.25;color:var(--text)}.page-head{margin-top:24px;background:rgba(16,20,28,.7);border:1px solid var(--line-2);padding:34px 40px}.page-head .label{display:inline-block;background:rgba(94,194,242,.12);border:1px solid var(--blue);color:var(--blue);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:4px 12px;margin-bottom:14px}.page-head h1{font-family:IBM Plex Sans,sans-serif;font-weight:500;font-size:clamp(30px,4vw,52px);line-height:1.1;letter-spacing:-.022em;color:var(--text)}.page-head .desc{margin:12px 0 0;max-width:620px;font-size:14px;color:var(--text-dim);line-height:1.65}.single-page{padding-bottom:24px}.err{margin:28px 0}.err-panel{background:rgba(16,20,28,.7);border:1px solid var(--line-2)}.err-panel-head{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--line-2);font-family:IBM Plex Mono,monospace}.err-panel-title{font-size:12px;letter-spacing:.14em;color:var(--text-dim)}.err-panel-status{font-size:12px;letter-spacing:.1em;color:var(--bg);background:var(--red);padding:4px 10px}.err-body{display:flex;flex-wrap:wrap;align-items:center;gap:40px;padding:48px 40px}.err-gauge{position:relative;width:200px;height:200px;flex-shrink:0;margin:0 auto}.err-ring{width:100%;height:100%;transform:rotate(-90deg)}.err-ring-bg{fill:none;stroke:var(--line);stroke-width:8}.err-ring-fg{fill:none;stroke:var(--red);stroke-width:8;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;animation:err-fill 2.4s ease-out forwards}@keyframes err-fill{to{stroke-dashoffset:18}}.err-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:IBM Plex Mono,monospace;font-weight:700;font-size:clamp(48px,10vw,64px);letter-spacing:-.03em;color:var(--teal)}.err-info{flex:1;min-width:260px}.err-title{margin:0;font-weight:700;font-size:clamp(22px,3.6vw,30px);color:var(--text)}.err-msg,.err-title{font-family:IBM Plex Mono,monospace}.err-msg{margin:10px 0 0;font-size:14px;color:var(--text-dim);line-height:1.6}.err-stats{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}.err-stat{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--text-fade);border:1px solid var(--line-2);border-left:3px solid var(--blue);padding:8px 14px}.err-stat:nth-child(2){border-left-color:var(--red)}.err-stat:nth-child(3){border-left-color:var(--orange)}.err-stat b{color:var(--text)}.err-actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px}.err-actions .err-btn{display:inline-block;font-family:IBM Plex Mono,monospace;font-weight:500;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:13px 26px;text-decoration:none;cursor:pointer}.err-actions .pri{background:var(--teal);color:var(--bg)}.err-actions .sec{background:transparent;color:var(--text-dim);border:1px solid var(--line-2)}.err-actions .pri:hover{opacity:.85}.err-actions .sec:hover{color:var(--text);border-color:var(--text-dim)}.err-popular{padding:24px 40px 32px;border-top:1px solid var(--line-2)}.err-popular-h{display:block;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-fade);margin-bottom:14px}.err-popular-list{display:flex;flex-wrap:wrap;gap:10px}.err-popular-list a{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--text-dim);text-decoration:none;padding:8px 14px;border:1px solid var(--line-2);background:var(--bg-3)}.err-popular-list a:hover{color:var(--teal);border-color:var(--teal)}.article-content,.page-content{max-width:760px;margin:28px auto 0;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:16px;line-height:1.8;color:var(--text);overflow-wrap:break-word}.article-content p,.page-content p{margin:0 0 1.3em}.article-content>p:first-child:first-letter,.page-content>p:first-child:first-letter{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:3.2em;float:left;line-height:.9;margin:.05em .14em 0 0;color:var(--teal)}.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6,.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{font-family:IBM Plex Sans,sans-serif;font-weight:600;line-height:1.25;letter-spacing:-.018em;color:var(--text)}.article-content h1,.page-content h1{font-size:1.85em;margin:1.4em 0 .4em}.article-content h2,.page-content h2{font-size:1.5em;margin:1.5em 0 .45em}.article-content h2:before,.page-content h2:before{content:"// ";font-family:IBM Plex Mono,monospace;font-weight:400;color:var(--teal)}.article-content h3,.page-content h3{font-size:1.25em;margin:1.4em 0 .35em;color:var(--teal)}.article-content h4,.page-content h4{font-size:1.08em;margin:1.3em 0 .35em}.article-content ol,.article-content ul,.page-content ol,.page-content ul{padding-left:1.5em;margin:1em 0 1.3em}.article-content ul li,.page-content ul li{list-style-type:none;position:relative}.article-content ul li:before,.page-content ul li:before{content:"";position:absolute;left:-1.2em;top:.62em;width:7px;height:7px;background:var(--teal)}.article-content ol li,.page-content ol li{list-style-type:decimal}.article-content ol li::marker,.page-content ol li::marker{color:var(--teal);font-family:IBM Plex Mono,monospace}.article-content li,.page-content li{margin-bottom:.4em}.article-content li>p,.page-content li>p{margin:0}.article-content blockquote,.page-content blockquote{margin:1.6em 0;background:rgba(255,158,90,.08);border:1px solid var(--line-2);border-left:3px solid var(--orange);padding:14px 22px;font-size:1.05em;line-height:1.6;color:var(--text)}.article-content blockquote p:last-child,.page-content blockquote p:last-child{margin-bottom:0}.article-content pre,.page-content pre{background:var(--bg-2);border:1px solid var(--line-2);padding:18px 20px;overflow-x:auto;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;line-height:1.7;margin:1.6em 0;color:var(--teal)}.article-content code,.page-content code{background:var(--bg-3);border:1px solid var(--line);padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.86em;color:var(--orange)}.article-content pre code,.page-content pre code{background:none;border:none;padding:0;color:inherit}.article-content img,.page-content img{max-width:100%;height:auto;display:block;margin:1.7em auto;border:1px solid var(--line-2)}.article-content a,.page-content a{color:var(--teal);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}.article-content a:hover,.page-content a:hover{color:var(--blue)}.article-content hr,.page-content hr{border:none;border-top:1px solid var(--line-2);margin:2.4em 0}.article-content table,.page-content table{border-collapse:collapse;width:100%;margin:1.7em 0;font-size:13.5px;border:1px solid var(--line-2);font-variant-numeric:tabular-nums}.article-content th,.page-content th{background:var(--bg-3);font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.article-content td,.article-content th,.page-content td,.page-content th{border:1px solid var(--line);padding:9px 13px;text-align:left}.comments{max-width:760px;margin:44px auto 0}.comments .c-head{display:inline-block;background:var(--bg-3);border:1px solid var(--line-2);font-family:IBM Plex Mono,monospace;font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:8px 18px;margin-bottom:18px;color:var(--text)}.comment-item{background:rgba(16,20,28,.6);border:1px solid var(--line-2);padding:16px 20px;margin-bottom:12px}.comment-item.is-reply{margin-left:28px;border-left:2px solid var(--teal)}.comment-item .c-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.comment-item .c-name{font-family:IBM Plex Sans,sans-serif;font-weight:600;font-size:14px;color:var(--text)}.comment-item .c-date{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--text-fade)}.comment-item .c-body{margin-top:6px;font-size:14px;line-height:1.65;color:var(--text-dim)}.comments .c-empty{border:1px dashed var(--line-2);padding:26px;text-align:center;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-fade)}.comment-form{max-width:760px;margin:20px auto 0;background:rgba(16,20,28,.7);border:1px solid var(--line-2);padding:26px 30px}.comment-form .f-title{font-family:IBM Plex Sans,sans-serif;font-weight:600;font-size:20px;margin-bottom:16px;color:var(--text)}.comment-form .f-notice{margin-bottom:16px;background:rgba(63,224,197,.08);border:1px solid var(--line-2);border-left:3px solid var(--teal);padding:12px 16px;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--text-dim)}.comment-form .f-row{display:flex;gap:14px;flex-wrap:wrap}.comment-form .f-row>*{flex:1;min-width:200px}.comment-form input,.comment-form textarea{width:100%;background:var(--bg-2);border:1px solid var(--line-2);font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--text);padding:11px 14px;outline:none}.comment-form input:focus,.comment-form textarea:focus{border-color:var(--teal)}.comment-form textarea{margin-top:14px;resize:vertical;min-height:120px;line-height:1.6}.comment-form button{margin-top:16px;background:var(--teal);color:var(--bg);border:none;font-family:IBM Plex Mono,monospace;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:13px 30px;cursor:pointer}.comment-form button:hover{opacity:.85}.related{margin-top:24px}footer.foot{margin-top:32px;margin-bottom:24px;padding:36px 32px 28px;background:rgba(16,20,28,.6);border:1px solid var(--line-2);display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px}footer.foot .brand-block .brand{font-family:IBM Plex Mono,monospace;font-weight:700;font-size:16px;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:12px}footer.foot .brand-block .brand .brand-ic{width:22px;height:22px;background:var(--teal)}footer.foot .brand-block .brand a{color:inherit;text-decoration:none}footer.foot .brand-block p{font-size:12.5px;color:var(--text-dim);line-height:1.65;max-width:320px}footer.foot h5{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:12px}footer.foot ul{list-style:none;padding:0;margin:0}footer.foot li{margin-bottom:6px}footer.foot a{color:var(--text);text-decoration:none;font-size:13px}footer.foot ul a:before{content:"\2192  ";color:var(--text-fade)}footer.foot a:hover{color:var(--teal)}.colophon{padding:18px 2px 36px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-fade)}.colophon .heart{color:var(--teal)}@media (max-width:960px){.wrap{padding:0 16px}header.top{justify-content:center}.hero{padding:26px;gap:32px}.article-nav,.hero{grid-template-columns:1fr}.article-nav a.next{text-align:left}footer.foot{grid-template-columns:1fr 1fr}}.block{display:block}.hidden{display:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}