@font-face{font-family:chakra petch;font-weight:500;font-display:swap;src:url(/fonts/chakra-petch-500.woff2)format("woff2")}@font-face{font-family:chakra petch;font-weight:700;font-display:swap;src:url(/fonts/chakra-petch-700.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono.woff2)format("woff2")}:root{--bg:#07070c;--panel:#0d0d16;--panel-2:#13131f;--line:#24243a;--fg:#d6d9e6;--fg-dim:#b3b7cc;--muted:#8a8fae;--magenta:#ff2a6d;--cyan:#05d9e8;--yellow:#f9f002;--violet:#b967ff;--display:"Chakra Petch", "Eurostile", "Bank Gothic", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--cut:14px;--wrap:52rem;color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{scroll-padding-top:5rem}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg);background-image:radial-gradient(60rem 30rem at 85% -10%,rgb(255 42 109/.13),transparent 70%),radial-gradient(50rem 30rem at -10% 10%,rgb(5 217 232/9%),transparent 70%),linear-gradient(rgb(5 217 232/.035) 1px,transparent 1px),linear-gradient(90deg,rgb(5 217 232/.035) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px;background-attachment:fixed;color:var(--fg);font:1.0625rem/1.7 var(--sans);overflow-wrap:break-word;-webkit-font-smoothing:antialiased}body::after{content:"";position:fixed;inset:0;z-index:1000;pointer-events:none;background:repeating-linear-gradient( to bottom,rgb(0 0 0/.16) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}::selection{background:var(--magenta);color:#000}a{color:var(--cyan);text-decoration:underline;text-decoration-color:rgb(5 217 232/.35);text-underline-offset:.2em;transition:color .15s,text-shadow .15s,text-decoration-color .15s}a:hover{color:var(--magenta);text-decoration-color:initial;text-shadow:0 0 8px rgb(255 42 109/.6)}:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.2;letter-spacing:.01em}img,video,iframe{max-width:100%;height:auto}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:1.25rem}main{flex:1;padding-block:2.5rem 4rem}.skip-link{position:absolute;left:1rem;top:-3rem;z-index:1001;padding:.4rem .8rem;background:var(--yellow);color:#000;font:700 .85rem var(--mono)}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:50;background:rgb(7 7 12/.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header::after{content:"";position:absolute;inset:auto 0 -1px;height:1px;background:linear-gradient(90deg,var(--magenta),var(--violet) 40%,var(--cyan) 70%,transparent);opacity:.8}.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-block:.9rem}.logo{display:inline-flex;align-items:baseline;gap:.6rem;color:var(--fg);text-decoration:none;font:700 clamp(1.15rem,3.5vw,1.45rem)var(--display);text-transform:uppercase;letter-spacing:.06em}.logo:hover{color:var(--fg);text-shadow:none}.logo-prompt{color:var(--magenta);font-family:var(--mono);font-size:.9em}.site-nav{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;font:.85rem var(--mono)}.site-nav a{color:var(--fg-dim);text-decoration:none;text-transform:uppercase;letter-spacing:.08em}.site-nav a span{color:var(--magenta);margin-right:.35em;font-size:.75em}.site-nav a:hover,.site-nav a[aria-current]{color:var(--cyan);text-shadow:0 0 10px rgb(5 217 232/.6)}.site-nav a[aria-current]{border-bottom:1px solid var(--cyan)}.glitch{position:relative;display:inline-block}.glitch::before,.glitch::after{content:attr(data-text);position:absolute;inset:0;opacity:0;pointer-events:none}.glitch::before{color:var(--cyan)}.glitch::after{color:var(--magenta)}.logo:hover .glitch::before,.glitch-loop::before{opacity:.9;animation:glitch-a .9s steps(2,end)infinite}.logo:hover .glitch::after,.glitch-loop::after{opacity:.9;animation:glitch-b .7s steps(2,end)infinite}.logo .glitch{animation:flicker 6s infinite}@keyframes glitch-a{0%{clip-path:inset(10% 0 60% 0);transform:translate(-3px,-1px)}25%{clip-path:inset(70% 0 5% 0);transform:translate(3px,1px)}50%{clip-path:inset(35% 0 40% 0);transform:translate(-2px,0)}75%{clip-path:inset(85% 0 0 0);transform:translate(2px,-1px)}100%{clip-path:inset(0 0 90% 0);transform:translate(-1px,1px)}}@keyframes glitch-b{0%{clip-path:inset(60% 0 15% 0);transform:translate(3px,1px)}25%{clip-path:inset(5% 0 80% 0);transform:translate(-3px,0)}50%{clip-path:inset(45% 0 30% 0);transform:translate(2px,-1px)}75%{clip-path:inset(0 0 70% 0);transform:translate(-2px,1px)}100%{clip-path:inset(80% 0 5% 0);transform:translate(1px,0)}}@keyframes flicker{0%,96%,100%{opacity:1;text-shadow:0 0 12px rgb(255 42 109/.35)}97%{opacity:.55;text-shadow:none}98%{opacity:1}99%{opacity:.7}}.term{position:relative;background:rgb(13 13 22/.92);border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);box-shadow:0 0 0 1px rgb(5 217 232/6%),0 20px 50px -20px rgb(255 42 109/.35)}.term-bar{display:flex;align-items:center;gap:.45rem;padding:.55rem .9rem;border-bottom:1px solid var(--line);background:var(--panel-2);font:.75rem var(--mono);color:var(--muted)}.term-bar i{width:.7rem;height:.7rem;border-radius:50%;background:var(--line)}.term-bar i:nth-child(1){background:var(--magenta)}.term-bar i:nth-child(2){background:var(--yellow)}.term-bar i:nth-child(3){background:var(--cyan)}.term-bar span{margin-left:.5rem}.term-body{padding:1.1rem 1.2rem 1.2rem;font:.88rem/1.75 var(--mono);color:var(--fg-dim)}.term-body p{margin:0}.ps1{color:var(--magenta)}.ok{color:var(--cyan)}.warn{color:var(--yellow)}.err{color:var(--magenta);font-weight:700}.motd{color:var(--fg);margin-block:.15rem .6rem!important;max-width:60ch}.cursor{display:inline-block;width:.6em;height:1.15em;vertical-align:text-bottom;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:blink 1.05s steps(1)infinite}@keyframes blink{50%{opacity:0}}.hero{margin-bottom:3rem}.year-group+.year-group{margin-top:2.5rem}.year{display:flex;align-items:center;gap:.9rem;margin:0 0 1rem;font-size:1.6rem;color:var(--yellow);text-shadow:0 0 14px rgb(249 240 2/.35)}.year::before{content:"//";color:var(--magenta);text-shadow:none}.year::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.year small{order:3;font:.72rem var(--mono);color:var(--muted);text-shadow:none;letter-spacing:.06em;text-transform:uppercase}.cards{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.card{position:relative;padding:1rem 1.25rem 1rem 1.4rem;background:linear-gradient(100deg,var(--panel-2),var(--panel) 60%);border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);transition:transform .18s ease,border-color .18s ease,background .18s ease}.card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--magenta);box-shadow:0 0 12px var(--magenta);transition:background .18s,box-shadow .18s}.card::after{content:"";position:absolute;top:0;right:0;width:var(--cut);height:var(--cut);background:linear-gradient(225deg,var(--cyan) 50%,transparent 50%);opacity:.7}.card:hover,.card:focus-within{transform:translateX(4px);border-color:rgb(5 217 232/.45);background:linear-gradient(100deg,#18182a,var(--panel) 70%)}.card:hover::before,.card:focus-within::before{background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.card-link{display:block;color:var(--fg);text-decoration:none;font:700 1.2rem/1.3 var(--display)}.card-link::after{content:"";position:absolute;inset:0;z-index:1}.card:hover .card-link{color:#fff;text-shadow:0 0 10px rgb(5 217 232/.55)}.card .tags{position:relative;z-index:2}.post-meta{margin-top:.4rem;font:.78rem var(--mono);color:var(--muted);letter-spacing:.04em}.post-meta time{color:var(--cyan)}.post-meta .sep{color:var(--magenta);margin-inline:.4rem}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0 0;padding:0}.tags a{display:inline-block;padding:.1rem .5rem;border:1px solid rgb(255 42 109/.45);color:var(--magenta);font:.72rem var(--mono);text-decoration:none;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%)}.tags a::before{content:"#";opacity:.6}.tags a:hover{background:var(--magenta);color:#000;text-shadow:none}.crumb{margin:0 0 .5rem;font:.8rem var(--mono);color:var(--muted)}.crumb::before{content:"> ";color:var(--magenta)}.post-header,.page-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px dashed var(--line)}.post-header h1,.page-header h1{margin:0;font-size:clamp(1.9rem,5vw,2.8rem);color:#fff;text-shadow:2px 0 0 rgb(255 42 109/.7),-2px 0 0 rgb(5 217 232/.6),0 0 24px rgb(185 103 255/.35)}.page-sub{margin:.6rem 0 0;font:.85rem var(--mono);color:var(--cyan)}.progress{position:fixed;inset:0 0 auto;z-index:60;height:3px;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--magenta),var(--violet),var(--cyan));box-shadow:0 0 10px var(--magenta)}@supports(animation-timeline:scroll()){.progress{animation:progress linear both;animation-timeline:scroll(root)}}@supports not (animation-timeline:scroll()){.progress{display:none}}@keyframes progress{to{transform:scaleX(1)}}.post-content{color:var(--fg)}.post-content>:first-child{margin-top:0}.post-content h2,.post-content h3,.post-content h4{margin:2.2em 0 .7em;color:#fff}.post-content h2{font-size:1.65rem}.post-content h3{font-size:1.3rem}.post-content h4{font-size:1.1rem}.post-content h2::before{content:"## ";color:var(--magenta);font-family:var(--mono);font-size:.8em}.post-content h3::before{content:"### ";color:var(--cyan);font-family:var(--mono);font-size:.75em}.post-content h4::before{content:"#### ";color:var(--violet);font-family:var(--mono);font-size:.75em}.post-content strong,.post-content b{color:#fff}.post-content img{border:1px solid rgb(5 217 232/.3);box-shadow:0 0 0 4px rgb(5 217 232/4%),0 10px 30px -12px rgb(5 217 232/.4)}.post-content ul,.post-content ol{padding-left:1.4rem}.post-content li::marker{color:var(--magenta);font-family:var(--mono)}.post-content hr{height:1px;margin:2.5rem 0;border:0;background:linear-gradient(90deg,transparent,var(--magenta),var(--cyan),transparent)}.post-content blockquote{margin:1.5rem 0;padding:.8rem 1.1rem;border-left:3px solid var(--yellow);background:rgb(249 240 2/5%);color:var(--fg-dim)}.post-content blockquote>:first-child{margin-top:0}.post-content blockquote>:last-child{margin-bottom:0}code,pre,kbd{font-family:var(--mono)}:not(pre)>code{padding:.1em .35em;background:rgb(255 42 109/.1);border:1px solid rgb(255 42 109/.25);color:#ff8fb1;font-size:.86em}.post-content pre{position:relative;margin:1.6rem 0;padding:2.6rem 1.2rem 1.1rem;overflow-x:auto;background:var(--panel)!important;border:1px solid var(--line);border-top:2px solid var(--cyan);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);color:#c8f7fb;font:.84rem/1.6 var(--mono)!important;tab-size:4}.post-content pre::before{content:"\25CF  \25CF  \25CF    ~$";position:absolute;top:.7rem;left:1.2rem;color:var(--muted);font-size:.7rem;letter-spacing:.05em}.post-content pre code{padding:0;background:0 0;border:0;color:inherit;font-size:inherit}.post-content table:not(.tr-caption-container){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.92rem}.post-content table:not(.tr-caption-container) th,.post-content table:not(.tr-caption-container) td{padding:.45rem .75rem;border:1px solid var(--line)}.post-content table:not(.tr-caption-container) th{background:var(--panel-2);color:var(--cyan);font:700 .8rem var(--mono);text-transform:uppercase;text-align:left}.post-content .tr-caption-container{margin:1.5rem auto;border-collapse:collapse}.post-content .tr-caption{padding-top:.5rem;font:.78rem var(--mono);color:var(--muted)}.post-content .tr-caption::before{content:"fig: ";color:var(--magenta)}.post-content [style*="background-color: white"]{background:0 0!important}.post-content [style*="color: #666666"]{color:var(--fg-dim)!important}.post-content [style*=font-family]:not(pre){font-family:inherit!important;font-size:inherit!important}.post-content [style*="background-color: yellow"]{background:var(--yellow)!important;color:#000!important}.post-content [style*="color: red"]{color:var(--magenta)!important}.post-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;margin-top:4rem;padding-top:2rem;border-top:1px dashed var(--line)}.post-nav a{display:block;padding:.9rem 1.1rem;background:var(--panel);border:1px solid var(--line);color:var(--fg);text-decoration:none;font:700 1rem/1.35 var(--display);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}.post-nav a:hover{border-color:var(--cyan);color:#fff}.post-nav small{display:block;margin-bottom:.3rem;font:.72rem var(--mono);color:var(--magenta);letter-spacing:.08em;text-transform:uppercase}.post-nav .next{text-align:right;grid-column:-2}.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.tag-cloud a{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .7rem;background:var(--panel);border:1px solid var(--line);color:var(--fg-dim);font:.85rem var(--mono);text-decoration:none;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}.tag-cloud span{color:var(--muted);font-size:.75em}.tag-cloud .hot a{border-color:rgb(255 42 109/.5);color:var(--magenta)}.tag-cloud a:hover{border-color:var(--cyan);color:var(--cyan);text-shadow:none}.not-found{display:grid;justify-items:center;gap:2rem;padding-block:2rem}.not-found h1{margin:0;font-size:clamp(5rem,22vw,10rem);line-height:1;color:#fff;text-shadow:0 0 30px rgb(255 42 109/.5)}.not-found .term{width:min(100%,32rem)}.site-footer{border-top:1px solid var(--line);background:rgb(7 7 12/.85);font:.8rem var(--mono);color:var(--muted)}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.5rem;padding-block:1.5rem}.footer-inner nav{display:flex;gap:1rem}.footer-inner a{color:var(--fg-dim);text-decoration:none}.footer-inner a:hover{color:var(--cyan)}.eof{color:var(--magenta);font-weight:700}.copy{margin-left:auto}@media(max-width:40rem){body{font-size:1rem}.site-nav{gap:.25rem .9rem}.card{padding:.9rem 1rem .9rem 1.2rem}.card-link{font-size:1.08rem}.copy{margin-left:0}.post-nav .next{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.card:hover,.card:focus-within{transform:none}}