﻿*,*::before,*::after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:16px}body{margin:0;padding:0}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;min-height:48px;min-width:48px;display:inline-flex;align-items:center}button{background:rgba(0,0,0,0);border:0;cursor:pointer;padding:0;font:inherit;color:inherit;min-height:48px;min-width:48px}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,h5,h6{margin:0}p{margin:0}dl,dd{margin:0}body{font-family:"IBM Plex Sans",system-ui,sans-serif;background:#0a1530;color:#d8e1f5;font-size:1rem;line-height:1.6}code,pre,.mono{font-family:"IBM Plex Mono",monospace}.v-terminal{position:relative}.v-terminal::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.012) 1px,transparent 1px);background-size:56px 56px;pointer-events:none;z-index:0}.v-terminal>*{position:relative;z-index:1}@keyframes blink{50%{opacity:0}}@keyframes error-flash{0%,100%{color:inherit}25%{color:#ff6b6b}75%{color:#ff6b6b}}.topbar{display:flex;align-items:center;justify-content:center;padding:10px 1rem;border-bottom:1px solid rgba(255,255,255,0.14);font-family:"IBM Plex Mono",monospace;font-size:13px;position:sticky;top:0;z-index:50;background:#0a1530;transition:opacity .2s}@media(min-width:768px){.topbar{padding:14px 3rem}}.topbar-inner{display:flex;align-items:center;justify-content:space-between;width:100%}@media(min-width:1440px){.topbar-inner{max-width:1400px}}.wordmark{display:flex;align-items:center;gap:12px;font-weight:500;color:#d8e1f5;flex-shrink:0}.wordmark.terminal-active{flex:1;min-width:0;margin-right:24px}.wordmark .prompt{color:#7ad6a3}.wordmark .path{color:#7aa2ff}.wordmark .cursor{width:8px;height:14px;background:#7aa2ff;display:inline-block;vertical-align:middle;animation:blink 1.1s infinite;cursor:pointer;transition:opacity .15s}.wordmark .cursor:hover{opacity:.7}.wordmark .kbd{font-size:11px;font-weight:400;font-family:"IBM Plex Mono",monospace;color:#5c6890;border:1px solid rgba(255,255,255,0.14);border-radius:2px;padding:2px 2px 2px 4px;line-height:1.4}.wordmark.terminal-active .cursor,.wordmark.terminal-active .kbd{display:none}.wordmark-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.wordmark-input{opacity:0;width:0;border:0;padding:0;margin:0;background:rgba(0,0,0,0);font-family:"IBM Plex Mono",monospace;font-size:inherit;font-weight:inherit;color:#d8e1f5;outline:0;flex:0;min-width:0;caret-color:#7aa2ff;letter-spacing:inherit}.wordmark-input.active{opacity:1;flex:1;width:auto}.wordmark-input::placeholder{color:#5c6890}.wordmark-input.command-error{animation:error-flash .6s ease}.topbar-right{display:flex;align-items:center;gap:16px;color:#9aa6c4}.topbar-right a{display:none;color:inherit;text-decoration:none;padding:4px 0;line-height:1}.topbar-right a:hover{color:#b8d0ff}@media(min-width:768px){.topbar-right{gap:28px}.topbar-right a{display:inline-flex;align-items:center}}.hamburger{width:48px;height:48px;background:rgba(0,0,0,0);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;border:0;position:relative}.hamburger .hamburger-line{display:block;width:20px;height:2px;background:#d8e1f5;border-radius:1px;transition:background .15s;position:relative}.hamburger .hamburger-line::before,.hamburger .hamburger-line::after{content:"";position:absolute;left:0;width:20px;height:2px;background:#d8e1f5;border-radius:1px;transition:background .15s}.hamburger .hamburger-line::before{top:-7px}.hamburger .hamburger-line::after{top:7px}.hamburger:hover .hamburger-line,.hamburger:hover .hamburger-line::before,.hamburger:hover .hamburger-line::after{background:#7aa2ff}.skip-link{position:absolute;top:-100%;left:0;z-index:100;padding:8px 16px;background:#0a1530;color:#7aa2ff;font-family:"IBM Plex Mono",monospace;font-size:14px;text-decoration:none;border:1px solid #7aa2ff}.skip-link:focus{top:0}body.menu-open .topbar{opacity:0;pointer-events:none;transition:opacity .3s ease}.hero{display:grid;grid-template-columns:1fr;gap:32px;padding:40px 1rem 48px;border-bottom:1px solid rgba(255,255,255,0.14);align-items:center;text-decoration:none;color:inherit;cursor:pointer;transition:background .15s}.hero:hover{background:rgba(122,162,255,.04)}@media(min-width:768px){.hero{grid-template-columns:1.05fr 1fr;gap:40px;padding:48px 3rem 56px}}@media(min-width:1024px){.hero{gap:56px;padding:64px 3rem 72px}}.hero-text{min-width:0}.hero-image-wrap{border:1px solid rgba(255,255,255,0.14);position:relative;aspect-ratio:16/11;overflow:hidden;order:-1}.hero-image-wrap .post-image{height:100%!important}@media(min-width:768px){.hero-image-wrap{order:unset}}.hero-tag{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#7ad6a3;margin-bottom:28px;display:flex;align-items:center;gap:12px}.hero-tag .bracket{color:#5c6890}.hero-tag .dash{color:#5c6890}.hero-title{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:36px;line-height:1.05;letter-spacing:-0.025em;font-weight:600;max-width:18ch;margin:0 0 28px;color:#d8e1f5;text-wrap:balance}.hero-title .cmd-prefix{color:#7aa2ff;font-family:"IBM Plex Mono",monospace;font-weight:500}@media(min-width:768px){.hero-title{font-size:48px}}@media(min-width:1024px){.hero-title{font-size:64px}}.hero-excerpt{font-size:16px;line-height:1.55;color:#9aa6c4;font-weight:300;max-width:62ch;margin:0 0 32px}@media(min-width:768px){.hero-excerpt{font-size:20px}}.hero-meta{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;display:flex;gap:24px;letter-spacing:.02em}.hero-meta .k{color:#7ad6a3}.post-image{position:relative;overflow:hidden}.post-image img{width:100%;height:100%;object-fit:cover}.post-image-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.06) 1px,transparent 1px);background-size:22px 22px;mix-blend-mode:overlay;pointer-events:none}.latest{padding:40px 1rem 48px;border-bottom:1px solid rgba(255,255,255,0.14)}@media(min-width:768px){.latest{padding:64px 3rem 80px}}.latest--category{padding-top:48px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:32px;margin-bottom:32px;font-family:"IBM Plex Mono",monospace}.section-head h2{margin:0;font-size:14px;color:#d8e1f5;font-weight:500;letter-spacing:.02em}.section-head h2 .punct{color:#5c6890}.section-head h2 .accent{color:#7aa2ff}.section-head .more{color:#7aa2ff;font-size:13px;text-decoration:none;white-space:nowrap;flex-shrink:0}.section-head .more:hover{color:#b8d0ff}.post-row{display:grid;grid-template-columns:72px 1fr auto;gap:4px 16px;padding:14px 0;border-top:1px solid rgba(255,255,255,0.06);align-items:start;cursor:pointer;transition:background .15s}.post-row:hover{background:rgba(122,162,255,.04)}.post-row:hover h3{color:#b8d0ff}.post-row:hover .num{color:#7aa2ff}.post-row:last-of-type{border-bottom:1px solid rgba(255,255,255,0.06)}.post-row .num{grid-column:1;grid-row:1;font-family:"IBM Plex Mono",monospace;color:#5c6890;font-size:13px;letter-spacing:.02em;opacity:0}.post-row .date{grid-column:2;grid-row:1;font-family:"IBM Plex Mono",monospace;color:#5c6890;font-size:13px}.post-row .thumb{grid-column:1;grid-row:2;width:72px;height:52px;border:1px solid rgba(255,255,255,0.14);overflow:hidden}.post-row .thumb>.post-image{height:100%}.post-row h3{grid-column:2;grid-row:2;margin:0 0 6px;font-size:16px;line-height:1.25;font-weight:400;letter-spacing:-0.01em;color:#d8e1f5;transition:color .15s}.post-row p{display:none;margin:0;color:#9aa6c4;font-size:14px;line-height:1.5;font-weight:300;max-width:60ch}.post-row .rt{grid-column:3;grid-row:1/3;align-self:center;font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;text-align:right;white-space:nowrap}@media(min-width:768px){.post-row{grid-template-columns:50px 90px 120px 1fr 70px;gap:20px;padding:22px 0;align-items:center}.post-row .num{grid-column:1;grid-row:1;opacity:1}.post-row .date{grid-column:2;grid-row:1}.post-row .thumb{grid-column:3;grid-row:1;width:120px;height:80px}.post-row h3{grid-column:4;grid-row:1;font-size:22px;font-weight:500}.post-row p{display:block;grid-column:4;grid-row:2}.post-row .rt{grid-column:5;grid-row:1;align-self:center}}@media(min-width:1024px){.post-row{grid-template-columns:60px 110px 160px 1fr 90px;gap:28px}.post-row .thumb{width:160px;height:100px}}.author{padding:48px 1rem;border-bottom:1px solid rgba(255,255,255,0.14)}.author-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}@media(min-width:768px){.author-grid{grid-template-columns:180px 1fr 220px;gap:48px}}@media(min-width:1440px){.author-grid{max-width:1400px;margin:0 auto}}.author-photo{width:120px;height:120px;border:1px solid rgba(255,255,255,0.14);background:linear-gradient(135deg,#1a2658 0%,#2c4ba0 50%,#4a7fff 100%);position:relative;overflow:hidden}.author-photo::before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,0.06) 1px,transparent 1px),linear-gradient(rgba(255,255,255,0.06) 1px,transparent 1px);background-size:18px 18px;z-index:1}.author-photo img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2}.author-photo .initials{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:"IBM Plex Mono",monospace;font-size:40px;font-weight:500;color:hsla(0,0,100%,.95);z-index:2}.author .tag{font-family:"IBM Plex Mono",monospace;font-size:11px;color:#7ad6a3;margin-bottom:12px}.author h2{font-size:32px;font-weight:600;letter-spacing:-0.02em;margin:0 0 6px}.author .role{font-family:"IBM Plex Mono",monospace;font-size:13px;color:#7aa2ff;margin-bottom:24px}.author p{font-size:17px;line-height:1.6;color:#9aa6c4;font-weight:300;margin:0}.author-meta{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,0.14);padding-top:24px}.author-meta dt{color:#7ad6a3;margin-bottom:6px;font-size:11px;letter-spacing:.04em}.author-meta dd{color:#d8e1f5;margin:0 0 18px;font-size:13px}.author-meta dd a{color:#7aa2ff;text-decoration:none;min-height:auto;display:inline}.author-meta dd a:hover{color:#b8d0ff}@media(min-width:768px){.author{padding:80px 3rem}.author-photo{width:180px;height:180px}.author-photo .initials{font-size:64px}.author-meta{border-top:0;padding-top:0;border-left:1px solid rgba(255,255,255,0.14);padding-left:24px}}.footer{padding:16px 1rem;font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;letter-spacing:.02em;border-top:1px solid rgba(255,255,255,0.14)}.footer .prompt{color:#7ad6a3}@media(min-width:768px){.footer{padding:16px 3rem}}.footer-inner{display:flex;flex-direction:column-reverse;gap:8px;justify-content:space-between;align-items:center;text-align:center;width:100%}@media(min-width:768px){.footer-inner{flex-direction:row;gap:0;text-align:left}}@media(min-width:1440px){.footer-inner{max-width:1400px;margin:0 auto}}.footer-links{display:flex;gap:20px}.footer-links a{color:#5c6890;text-decoration:none}.footer-links a:hover{color:#7aa2ff}.overlay{position:fixed;inset:0;background:rgba(8,15,36,.97);backdrop-filter:blur(6px);padding:10px 1rem 24px;display:flex;flex-direction:column;font-family:"IBM Plex Mono",monospace;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s ease}@media(min-width:768px){.overlay{padding:14px 3rem 40px}}.overlay[aria-hidden=false]{opacity:1;pointer-events:auto}.overlay-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,0.14);font-size:13px}@media(min-width:768px){.overlay-head{padding-bottom:14px}}.overlay-head-inner{display:flex;align-items:center;justify-content:space-between;width:100%}@media(min-width:1440px){.overlay-head-inner{max-width:1400px;margin:0 auto}}.overlay-close{background:rgba(0,0,0,0);border:0;color:#5c6890;cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:13px;padding:12px 0;min-height:48px;display:flex;align-items:center}.overlay-close::before{content:"[cerrar]"}.overlay-close:hover{color:#7aa2ff}@media(min-width:768px){.overlay-close::before{content:"[esc]"}}.overlay-prompt{margin:28px 0 8px;font-size:13px;color:#7ad6a3}.overlay-prompt .cmd{color:#d8e1f5}.overlay-prompt .cursor{width:7px;height:13px;background:#7aa2ff;display:inline-block;vertical-align:-2px;animation:blink 1.1s infinite;margin-left:4px}@media(min-width:1440px){.overlay-prompt-inner{max-width:1400px;margin:0 auto}}.overlay-body{flex:1;display:grid;grid-template-columns:1fr;gap:32px;padding-top:32px;overflow-y:auto}.overlay-body .category-list{order:2}.overlay-body .overlay-side{order:1}@media(min-width:768px){.overlay-body{grid-template-columns:1.6fr 1fr;gap:80px}.overlay-body .category-list{order:1}.overlay-body .overlay-side{order:2}}@media(min-width:1440px){.overlay-body{max-width:1400px;margin:0 auto;width:100%}}.category-list{border-top:1px solid rgba(255,255,255,0.06)}.category-list-label{font-size:11px;color:#5c6890;letter-spacing:.04em;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.06)}.category-list-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:18px;padding:22px 4px;border-bottom:1px solid rgba(255,255,255,0.06);text-decoration:none;color:inherit;cursor:pointer;transition:background .12s}.category-list-item:hover{background:rgba(122,162,255,.06)}.category-list-item:hover .category-list-title{color:#b8d0ff}.category-list-item:hover .category-list-num{color:#7aa2ff}.category-list-num{color:#5c6890;font-size:13px}.category-list-title{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:20px;font-weight:500;letter-spacing:-0.015em;color:#d8e1f5}@media(min-width:768px){.category-list-title{font-size:28px}}.category-list-count{font-size:12px;color:#5c6890}.overlay-side .side-label{font-size:11px;color:#5c6890;letter-spacing:.04em;padding:12px 0;border-top:1px solid rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.06)}.overlay-side .it{padding:18px 4px;border-bottom:1px solid rgba(255,255,255,0.06);cursor:pointer;display:block;text-decoration:none;color:inherit}.overlay-side .it:hover .t{color:#b8d0ff}.overlay-side .it .t{font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:15px;line-height:1.35;color:#d8e1f5;margin-bottom:8px;transition:color .15s}.overlay-side .it .m{font-size:11px;color:#5c6890;letter-spacing:.02em}.lang-selector{font-family:"IBM Plex Mono",monospace;border-top:1px solid rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.14);padding-bottom:8px;margin-bottom:16px}.lang-selector-label{font-size:11px;color:#5c6890;letter-spacing:.04em;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.06)}.lang-row{display:grid;grid-template-columns:18px 56px 1fr;align-items:center;gap:10px;padding:10px 4px;font-family:"IBM Plex Mono",monospace;font-size:13px;color:#9aa6c4;text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.06);transition:color .15s ease,background .12s ease}.lang-row:last-child{border-bottom:0}.lang-row .lang-prompt{color:#7ad6a3;font-weight:500;text-align:center}.lang-row .lang-code{color:#5c6890;letter-spacing:.04em;text-transform:lowercase}.lang-row .lang-name{color:inherit}.lang-row:hover{color:#7aa2ff;background:rgba(122,162,255,.04)}.lang-row:hover .lang-code{color:#7aa2ff}.lang-row:focus-visible{outline:1px solid #7aa2ff;outline-offset:2px}.lang-row[data-active=true]{color:#b8d0ff}.lang-row[data-active=true] .lang-code{color:#b8d0ff}.reader{padding:32px 1rem 80px}.reader-head{margin:0 auto 36px}.reader-figure{margin:0 auto 40px;display:flex;flex-direction:column}.reader-figure .post-image{width:100%;aspect-ratio:16/9;height:auto;border:1px solid rgba(255,255,255,0.14)}.reader-figure figcaption{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;margin-top:10px;letter-spacing:.02em;line-height:1.5}.reader-figure figcaption .caption-accent{color:#7aa2ff}.reader-title{font-size:32px;line-height:1.08;letter-spacing:-0.025em;font-weight:600;margin:0 0 20px;color:#d8e1f5;text-wrap:balance}.reader-deck{font-size:21px;line-height:1.5;color:#9aa6c4;font-weight:300;margin:0}.reader-body{font-size:16px;line-height:1.7;color:#d8e1f5;font-weight:400}.reader-body hr{border:0;height:1px;background-color:rgba(255,255,255,0.06);margin:2em 0}.reader-body a{color:#7aa2ff;text-decoration:underline;min-width:auto;min-height:auto}.reader-body p{margin:0 0 1.3em}.reader-body strong{font-weight:600}.reader-body h2{font-size:20px;font-family:"IBM Plex Mono",monospace;letter-spacing:.06em;font-weight:500;color:#7ad6a3;margin:2.4em 0 1em;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,0.06)}.reader-body h2::before{content:"## ";color:#5c6890}.reader-body h3{font-size:18px;font-family:"IBM Plex Mono",monospace;letter-spacing:.04em;font-weight:500;color:#7aa2ff;margin:2em 0 .8em}.reader-body h3::before{content:"### ";color:#5c6890}.reader-body h4{font-size:16px;font-family:"IBM Plex Mono",monospace;letter-spacing:.03em;font-weight:500;color:#b8d0ff;margin:1.6em 0 .6em}.reader-body h4::before{content:"#### ";color:#5c6890}.reader-body h5{font-size:14px;font-family:"IBM Plex Mono",monospace;letter-spacing:.02em;font-weight:500;color:#9aa6c4;margin:1.4em 0 .5em;text-transform:uppercase}.reader-body h5::before{content:"##### ";color:#5c6890}.reader-body blockquote{margin:1.8em 0;padding:18px 22px;font-family:"IBM Plex Mono",monospace;font-size:15px;line-height:1.6;color:#b8d0ff;background:rgba(122,162,255,.06);border-left:2px solid #7aa2ff}.reader-body blockquote::before{content:"> ";color:#5c6890;font-weight:500}.reader-body pre{background:#050b1d;border:1px solid rgba(255,255,255,0.14);border-radius:4px;padding:22px;overflow-x:auto;margin:1.6em 0;font-family:"IBM Plex Mono",monospace;font-size:13.5px;line-height:1.7;position:relative}.reader-body .language-python,.reader-body .language-bash,.reader-body .language-yaml,.reader-body .language-json,.reader-body .language-ruby,.reader-body .language-javascript,.reader-body .language-typescript,.reader-body .language-go,.reader-body .language-rust,.reader-body .language-markdown,.reader-body .language-shell{position:relative}.reader-body .language-python::before,.reader-body .language-bash::before,.reader-body .language-yaml::before,.reader-body .language-json::before,.reader-body .language-ruby::before,.reader-body .language-javascript::before,.reader-body .language-typescript::before,.reader-body .language-go::before,.reader-body .language-rust::before,.reader-body .language-markdown::before,.reader-body .language-shell::before{position:absolute;top:8px;right:14px;font-size:11px;font-family:"IBM Plex Mono",monospace;color:#9aa6c4;letter-spacing:.06em;z-index:2}.reader-body .language-python::before{content:"python"}.reader-body .language-bash::before{content:"sh"}.reader-body .language-yaml::before{content:"yaml"}.reader-body .language-json::before{content:"json"}.reader-body .language-ruby::before{content:"ruby"}.reader-body .language-javascript::before{content:"js"}.reader-body .language-typescript::before{content:"ts"}.reader-body .language-go::before{content:"go"}.reader-body .language-rust::before{content:"rust"}.reader-body .language-markdown::before{content:"markdown"}.reader-body .language-shell::before{content:"shell"}.reader-body .highlight{position:static}.reader-body code{color:#b8d0ff}.reader-body ul{margin:0 0 1.4em;padding:0;list-style:none}.reader-body ul li::before{content:"→"}.reader-body ol{margin:0 0 1.4em;padding:0;list-style:decimal}.reader-body ol li{padding-left:0;margin-left:1.6em}.reader-body li{padding-left:1.6em;position:relative;margin-bottom:.5em;color:#9aa6c4}.reader-body li::before,.reader-body li::marker{position:absolute;left:0;color:#7aa2ff;font-family:"IBM Plex Mono",monospace;font-weight:500}@media(min-width:768px){.reader{padding:48px 3rem 120px}.reader-title{font-size:48px}.reader-body{font-size:18px}}@media(min-width:1024px){.reader-head{max-width:760px;margin:0 auto 36px}.reader-figure{max-width:680px}.reader-body{max-width:680px;margin:0 auto}}.reader-body .table-wrapper{max-width:100%;display:block;overflow:auto}.reader-body table{width:100%;border-collapse:separate;border-spacing:0;margin:1.6em 0;font-size:14px;font-family:"IBM Plex Mono",monospace;background:#0d1a3a;border:1px solid rgba(255,255,255,0.14);border-radius:4px}.reader-body thead{background:rgba(122,162,255,.08);border-bottom:1px solid rgba(255,255,255,0.14)}.reader-body th{padding:12px 16px;text-align:left;font-weight:500;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#7aa2ff;border-bottom:1px solid rgba(255,255,255,0.14)}.reader-body th:first-child{padding-left:20px}.reader-body th:last-child{padding-right:20px}.reader-body td{padding:10px 16px;color:#9aa6c4;border-bottom:1px solid rgba(255,255,255,0.06);vertical-align:middle}.reader-body td:first-child{padding-left:20px}.reader-body td:last-child{padding-right:20px}.reader-body tbody tr{transition:background .15s ease}.reader-body tbody tr:last-child td{border-bottom:0}.reader-body tbody tr:hover{background:rgba(122,162,255,.04)}.reader-body tbody tr:nth-child(even){background:hsla(0,0,100%,.02)}.reader-body td:first-child,.reader-body th:first-child{color:#d8e1f5;font-weight:500}.reader-body td:last-child,.reader-body th:last-child{text-align:right}.reader-body code{font-family:"IBM Plex Mono",monospace;font-size:13px;color:#b8d0ff;background:rgba(122,162,255,.08);padding:2px 6px;border-radius:3px}.reader-body+p{font-size:13px;color:#5c6890;margin-top:-0.8em;font-family:"IBM Plex Mono",monospace}.reader-frontmatter{font-family:"IBM Plex Mono",monospace;font-size:12px;line-height:1.8;color:#9aa6c4;padding:14px 16px;border:1px solid rgba(255,255,255,0.14);border-radius:4px;background:hsla(0,0,100%,.015);margin-bottom:24px;overflow-x:auto}.reader-frontmatter .k{color:#5c6890}.reader-frontmatter .accent{color:#7aa2ff}.reader-frontmatter .str{color:#7ad6a3}.reader-frontmatter .dashes{color:#5c6890;user-select:none}.reader-frontmatter .cat-link{text-decoration:none;color:inherit;border-radius:2px;min-height:unset;min-width:unset;display:inline}.reader-frontmatter .cat-link:hover .str,.reader-frontmatter .cat-link:focus-visible .str{color:#b8d0ff;text-decoration:underline;text-underline-offset:2px}.reader-frontmatter .cat-link:focus-visible{outline:1px solid #7aa2ff;outline-offset:2px}@media(min-width:768px){.reader-frontmatter{font-size:13px;padding:18px 22px;margin-bottom:36px}}.cat-head{padding:40px 1rem 32px;border-bottom:1px solid rgba(255,255,255,0.14)}.cat-head .crumb{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;margin-bottom:28px}.cat-head .crumb .accent{color:#7aa2ff}.cat-head .crumb .slash{color:#5c6890;margin:0 6px}.cat-head h1{font-size:32px;line-height:1.05;letter-spacing:-0.025em;font-weight:600;margin:0 0 16px}.cat-head h1 .hash{color:#7aa2ff;font-family:"IBM Plex Mono",monospace;font-weight:500}.cat-head .stats{display:flex;flex-wrap:wrap;gap:16px;font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;margin-top:20px}.cat-head .stats .k{color:#7ad6a3;margin-right:8px}.cat-head .desc{color:#9aa6c4;font-size:17px;line-height:1.55;font-weight:300;max-width:64ch;margin:20px 0 0}@media(min-width:768px){.cat-head{padding:72px 3rem 56px}.cat-head h1{font-size:56px}.cat-head .stats{flex-wrap:nowrap;gap:32px}}.search-bar{display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,0.14);border-radius:4px;padding:14px 18px;background:hsla(0,0,100%,.02);margin-bottom:24px;font-family:"IBM Plex Mono",monospace;transition:border-color .15s}.search-bar:focus-within{border-color:#7aa2ff}.search-bar .prompt{color:#7ad6a3;font-size:14px}.search-bar .grep-input{flex:1;display:flex;align-items:center;min-width:0;overflow:hidden}.search-bar .grep-prefix,.search-bar .grep-suffix{color:#5c6890;font-size:14px;white-space:nowrap}.search-bar input{min-width:2ch;background:rgba(0,0,0,0);border:0;outline:0;color:#7ad6a3;font-family:"IBM Plex Mono",monospace;font-size:14px}.search-bar input::placeholder{color:#5c6890}.search-bar .kbd{font-size:11px;color:#5c6890;border:1px solid rgba(255,255,255,0.14);border-radius:2px;padding:2px 6px}.filter-row{display:flex;flex-wrap:wrap;gap:0;margin-bottom:32px;font-family:"IBM Plex Mono",monospace}@media(max-width:1024px){.filter-row .chip:nth-child(n+7){display:none}}@media(min-width:1024px){.filter-row .chip:nth-child(n+24){display:none}}.chip{font-size:12px;padding:8px 14px;min-height:48px;display:inline-flex;align-items:center;cursor:pointer;color:#9aa6c4;border-right:1px solid rgba(255,255,255,0.06);transition:color .15s,background .15s}.chip:hover{color:#b8d0ff}.chip.active{color:#0a1530;background:#7aa2ff}.chip:first-of-type{border-left:1px solid rgba(255,255,255,0.06)}.archive-list{font-family:"IBM Plex Sans",system-ui,sans-serif;border-top:1px solid rgba(255,255,255,0.06)}.archive-row{display:grid;grid-template-columns:1fr;gap:4px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.06);align-items:center;cursor:pointer;transition:background .12s}.archive-row:hover{background:rgba(122,162,255,.05)}.archive-row:hover h3{color:#b8d0ff}.archive-row .date{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890}.archive-row h3{margin:0;font-size:16px;font-weight:400;transition:color .15s}.archive-row .rt{font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890;text-align:left}.archive-content{padding:24px 1rem 48px}@media(min-width:768px){.archive-content{padding:40px 3rem 80px}}@media(min-width:1440px){.archive-content{max-width:1400px;margin:0 auto}}.archive-stats{display:flex;gap:32px;font-family:"IBM Plex Mono",monospace;font-size:12px;color:#5c6890}.archive-stats .k{color:#7ad6a3;margin-right:8px}@media(min-width:768px){.archive-row{grid-template-columns:130px 1fr 80px;gap:28px;padding:18px 8px}.archive-row .rt{text-align:right}}.error-page{padding:60px 1rem;display:flex;justify-content:center}@media(min-width:768px){.error-page{padding:120px 3rem}}.error-terminal{max-width:600px;width:100%}.error-prompt{font-family:"IBM Plex Mono",monospace;font-size:14px;color:#7ad6a3;margin-bottom:24px}.error-prompt .prompt{color:#7ad6a3}.error-output{margin-bottom:32px}.error-code{font-family:"IBM Plex Mono",monospace;font-size:14px;color:#7aa2ff;margin-bottom:16px}.error-message{font-size:18px;color:#9aa6c4;line-height:1.6}.error-actions{font-family:"IBM Plex Mono",monospace;font-size:14px;display:flex;flex-direction:column;gap:12px}.error-actions .prompt{color:#7ad6a3}.error-actions a{color:#7aa2ff;text-decoration:none;min-height:48px;display:inline-flex;align-items:center}.error-actions a:hover{color:#b8d0ff}@media(min-width:1440px){.hero{max-width:1400px;margin:0 auto}.latest{max-width:1400px;margin:0 auto}.reader-body{max-width:760px}.cat-head{max-width:1400px;margin:0 auto}}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cpf,.highlight .cs,.highlight .cp{color:#5c6890;font-style:italic}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:#c792ea}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .dl,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr,.highlight .ss{color:#7ad6a3}.highlight .na{color:#7aa2ff}.highlight .nb{color:#ffcb6b}.highlight .nf,.highlight .fm{color:#ffcb6b}.highlight .nc,.highlight .nn{color:#c792ea}.highlight .no,.highlight .ni,.highlight .ne{color:#7aa2ff}.highlight .nt{color:#f07178}.highlight .nv,.highlight .vi,.highlight .vc,.highlight .vg{color:#7aa2ff}.highlight .o,.highlight .ow{color:#5c6890}.highlight .p{color:#9aa6c4}.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo,.highlight .m,.highlight .il{color:#f78c6c}.highlight .gd{color:#f07178}.highlight .gi{color:#7ad6a3}.highlight .gh,.highlight .gu{color:#7aa2ff;font-weight:500}.highlight .w{color:#d8e1f5}.highlight .err{color:#f07178;background:rgba(0,0,0,0)}