:root{color-scheme:dark;--bg:#0c0d10;--home-bg:#0a0b11;--fg:#fefefe;--link:#93ffd7;--link-hover-bg:#153329;--link-hover:#c7ffe9;--text-font:"gohu";--text-size:14px;--cjk-size:13px;--cjk-link-size:14px;--text-cell:8px;--home-size:14px;--fit-scale:1;--ansi-black:#15161e;--ansi-red:#f7768e;--ansi-green:#9ece6a;--ansi-yellow:#e0af68;--ansi-blue:#7aa2f7;--ansi-magenta:#bb9af7;--ansi-cyan:#7dcfff;--ansi-white:#a9b1d6;--ansi-bright-black:#414868;--ansi-bright-red:#ff899d;--ansi-bright-green:#b4f9a8;--ansi-bright-yellow:#e0c989;--ansi-bright-blue:#8db0ff;--ansi-bright-magenta:#c7a9ff;--ansi-bright-cyan:#a4daff;--ansi-bright-white:#c0caf5}html{background:var(--bg)}body{box-sizing:border-box;background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--text-font);font-synthesis:none;text-rendering:optimizespeed;-webkit-font-smoothing:none;-moz-osx-font-smoothing:auto;margin:0 auto;padding:1em 0}.screen{z-index:1;text-align:center;-webkit-overflow-scrolling:touch;max-width:100vw;position:relative;overflow-x:auto}a{color:var(--link);text-decoration:none}a:hover,a:focus-visible{background:var(--link-hover-bg);color:var(--link-hover);text-underline-offset:2px;outline:0;text-decoration:underline 1px}.textmode-pre{white-space:pre;overflow-wrap:normal;color:var(--fg);font-family:var(--text-font);font-size:var(--text-size);margin:0;line-height:1}.textmode-wrap{text-align:left;max-width:100vw;display:inline-block;overflow-x:auto}.back-pre{margin-bottom:1em}.ascii-particles{z-index:2;pointer-events:none;contain:layout paint style;position:fixed;inset:0;overflow:hidden}.ascii-particles span{color:var(--particle-home);font-family:var(--text-font);font-size:calc(var(--text-size) + 1px);opacity:0;mix-blend-mode:screen;text-shadow:0 0 4px var(--particle-home-glow);backface-visibility:hidden;will-change:opacity, transform;line-height:1;position:absolute;top:0;left:0}body:has(.entry-wrap) .ascii-particles span,body:has(.volume-wrap) .ascii-particles span{color:var(--particle-page);text-shadow:0 0 2px var(--particle-page-glow)}body:has(.volume-wrap) .ascii-particles span{color:var(--particle-volume);text-shadow:0 0 3px var(--particle-volume-glow)}body:has(.home-shell),html:has(.home-shell){background-color:var(--home-bg)}.screen:has(.home-shell){text-align:center;justify-content:center;align-items:center;min-height:calc(100vh - 2em);display:flex}.home-shell{text-align:left;display:inline-block}.home-pre{font-family:var(--text-font);font-size:var(--home-size);padding-left:4px}.ascii-hero{margin-bottom:var(--text-size);display:inline-block;position:relative}.ascii-hero:before,.ascii-hero:after{pointer-events:none;content:"";opacity:0;position:absolute}.ascii-hero:before{top:var(--ascii-scan-top,0);left:var(--ascii-scan-left,0);width:var(--ascii-scan-width,0);height:var(--ascii-scan-height,0);mix-blend-mode:screen;background:currentColor}.ascii-hero:after{top:var(--ascii-bloom-y,50%);left:var(--ascii-bloom-x,50%);width:calc(var(--text-cell) * 7);height:calc(var(--text-size) * 2);filter:blur(8px);background:currentColor;transform:translate(-50%,-50%)}.ascii-hero.is-glitching:before{opacity:var(--ascii-scan-opacity,.6)}.ascii-hero.is-glitching:after{opacity:var(--ascii-bloom-opacity,.03)}.ascii-pre{z-index:1;color:var(--fg);padding-left:0;position:relative}.ascii-glitch{z-index:2;color:var(--link);opacity:0;text-shadow:var(--ascii-glitch-shadow-a,2px) 0 var(--fg), var(--ascii-glitch-shadow-b,-2px) 0 var(--link-hover);transform:translate(var(--ascii-glitch-shift-x,0), var(--ascii-glitch-shift-y,0));clip-path:inset(var(--ascii-glitch-clip-top,0) var(--ascii-glitch-clip-right,0) var(--ascii-glitch-clip-bottom,0) var(--ascii-glitch-clip-left,0));position:absolute;inset:0}.ascii-hero.is-glitching .ascii-glitch{opacity:var(--ascii-glitch-opacity,.72)}.life-art{color:var(--fg);position:relative;overflow:visible}.life-grid{--life-grid-size:13px;grid-template-columns:repeat(var(--life-grid-width), var(--life-grid-size));grid-template-rows:repeat(var(--life-grid-height), var(--life-grid-size));width:calc(var(--life-grid-width) * var(--life-grid-size));height:calc(var(--life-grid-height) * var(--life-grid-size));pointer-events:none;z-index:3;display:grid;position:absolute}.life-pixel{width:var(--life-grid-size);height:var(--life-grid-size);opacity:0;transition:opacity .6s ease-out;display:block}.life-pixel.is-alive{opacity:1;background:currentColor;transition:opacity .15s ease-in;box-shadow:0 0 0 .5px}.entry-wrap{width:calc(var(--text-cell) * 85);position:relative;overflow-x:hidden}.volume-wrap,.entry-wrap{margin-top:var(--text-size)}.entry-header{z-index:2;width:calc(var(--text-cell) * 85);height:calc(var(--text-size) * max(18, 17 + var(--entry-meta-lines)));position:relative}.entry-header-side{top:0;left:calc(var(--text-cell) * 60);position:absolute}.entry-header-meta{top:calc(var(--text-size) * 16);position:absolute;left:0}.entry-redacted-pre{z-index:2;color:var(--fg);position:relative}.entry-body{z-index:2;color:var(--fg);font-family:var(--text-font);font-size:var(--text-size);text-align:left;line-height:1.5;position:relative}.entry-body h1,.entry-body h2,.entry-body h3,.entry-body h4{margin:calc(var(--text-size) * 2) 0 var(--text-size);color:var(--link);font-weight:400;line-height:1.3}.entry-body h2{font-size:calc(var(--text-size) * 1.15)}.entry-body h3,.entry-body h4{font-size:var(--text-size)}.entry-body p,.entry-body ul,.entry-body ol,.entry-body blockquote,.entry-body pre,.entry-body table,.entry-body figure{margin:var(--text-size) 0}.entry-body ul,.entry-body ol{padding-left:calc(var(--text-cell) * 2)}.entry-body li{margin:calc(var(--text-size) * .35) 0}.entry-body blockquote{padding:calc(var(--text-size) * .5) calc(var(--text-cell) * 2);border-left:2px solid var(--link);color:var(--fg);opacity:.85}.entry-body code{color:var(--link);font-family:var(--text-font);padding:0 .2em}.entry-body pre{padding:var(--text-size) calc(var(--text-cell) * 2);border:1px solid var(--fg);line-height:1.4;overflow-x:auto;background:0 0!important}.entry-body pre code{color:inherit;padding:0}.entry-body pre.entry-summary,.entry-body pre.entry-toc{border:0;padding:0}.entry-toc a{color:var(--fg)}.entry-toc a:hover,.entry-toc a:focus-visible{color:var(--link-hover)}.entry-toc-number{color:var(--link)}.entry-section-header{white-space:nowrap;align-items:center;gap:.5ch;display:flex;overflow:hidden}.entry-section-header-left,.entry-section-header-right{flex:none}.entry-section-header-right{text-overflow:ellipsis;overflow:hidden}.entry-section-header-fill{border-bottom:1px solid;flex:2ch;align-self:center;min-width:2ch;height:0}.entry-role-c{color:#7dcfff}.entry-role-g{color:#9ece6a}.entry-role-y{color:#e0af68}.entry-role-r{color:#f7768e}.entry-body a{color:var(--link)}.entry-body strong{color:var(--fg);font-weight:700}.entry-body hr{margin:calc(var(--text-size) * 2) 0;border:0;border-top:1px solid var(--link-hover-bg)}.entry-body table{border-collapse:collapse;width:100%}.entry-body th,.entry-body td{padding:calc(var(--text-size) * .35) calc(var(--text-cell) * 1);border:1px solid var(--link-hover-bg);text-align:left}.entry-image{max-width:calc(var(--text-cell) * 80)}.entry-image img{image-rendering:auto;max-width:100%;height:auto;display:block}.entry-image-trigger{max-width:100%;color:inherit;cursor:zoom-in;font:inherit;background:0 0;border:0;margin:0;padding:0;display:block}.entry-image-trigger:hover,.entry-image-trigger:focus-visible{background:0 0;outline:0}.entry-image figcaption{margin-top:var(--text-size);color:var(--fg);font-family:var(--text-font);font-size:var(--text-size);line-height:1}.project-wrap{width:calc(var(--text-cell) * var(--project-columns));margin-top:var(--text-size)}.project-pre{z-index:2;position:relative}body.image-lightbox-open{touch-action:none;overflow:hidden}body.image-lightbox-open .screen{filter:blur(5px)saturate(.75);transition:filter .12s ease-out}.image-lightbox{width:100vw;max-width:none;height:100vh;max-height:none;color:var(--fg);cursor:zoom-out;overscroll-behavior:contain;touch-action:none;background:0 0;border:0;margin:0;padding:0;overflow:hidden}.image-lightbox::backdrop{backdrop-filter:blur(4px);background:#00000094}.image-lightbox-frame{place-items:center;gap:var(--text-size);width:100%;height:100%;padding:calc(var(--text-size) * 3);box-sizing:border-box;touch-action:none;margin:0;display:grid}.image-lightbox-image{max-width:min(92vw, calc(var(--text-cell) * 140));cursor:grab;object-fit:contain;touch-action:none;transform-origin:50%;user-select:none;will-change:transform;max-height:86vh;display:block}.image-lightbox-image-dragging{cursor:grabbing}.image-lightbox-caption{max-width:min(92vw, calc(var(--text-cell) * 120));color:var(--fg);font-family:var(--text-font);font-size:var(--text-size);text-align:center;line-height:1}.cjk{width:calc(var(--text-cell) * 2);font-family:var(--text-font);font-size:var(--cjk-size);font-synthesis:none;font-variant-ligatures:none;font-kerning:none;font-weight:400;line-height:var(--text-size);text-rendering:optimizespeed;-webkit-font-smoothing:none;-moz-osx-font-smoothing:auto;vertical-align:baseline;display:inline-block;position:relative}.cjk-bitmap{--cjk-ink:var(--fg);color:#0000;font-family:var(--text-font)}.cjk-bitmap:before{content:"";background:var(--cjk-ink);pointer-events:none;width:16px;height:16px;mask-image:url(/assets/cjk/wqy-cjk-body.png);-webkit-mask-position:var(--cjk-x) var(--cjk-y);mask-position:var(--cjk-x) var(--cjk-y);position:absolute;top:-1px;left:0;mask-repeat:no-repeat}a .cjk{font-size:var(--cjk-link-size);top:-1px}a .cjk-bitmap{--cjk-ink:var(--link)}a .cjk-bitmap:before{top:-2px;mask-image:url(/assets/cjk/wqy-cjk-link.png)}a:hover .cjk-bitmap,a:focus-visible .cjk-bitmap{--cjk-ink:var(--link-hover)}a:hover .cjk:after,a:focus-visible .cjk:after{content:"";border-bottom:1px solid var(--cjk-ink,currentColor);position:absolute;bottom:-2px;left:0;right:0}@supports not (mask-image:url("")){.cjk-bitmap{color:inherit}.cjk-bitmap:before{display:none}}@media (width<=760px){:root{--mobile-scale:.95}body{padding:8px 0}.screen{text-align:center;overflow-x:hidden}.screen:has(.home-shell){text-align:center;min-height:calc(100vh - 16px)}.textmode-wrap{zoom:min(var(--mobile-scale), var(--fit-scale));max-width:none;overflow-x:visible}.home-shell{zoom:min(var(--mobile-scale), var(--fit-scale));transform:translateY(-6vh)}.home-pre,.entry-wrap{margin-left:0;margin-right:0}.ascii-hero:after{display:none}}@media (prefers-reduced-motion:reduce){.ascii-particles{display:none}}@media (width<=700px){:root{--mobile-scale:.86}.image-lightbox-frame{padding:calc(var(--text-size) * 2) calc(var(--text-cell) * 2)}.image-lightbox-image{max-width:calc(100vw - var(--text-cell) * 4);max-height:82vh}}@media (width<=620px){:root{--mobile-scale:.76}}@media (width<=540px){:root{--mobile-scale:.66}}@media (width<=470px){:root{--mobile-scale:.58}}@media (width<=410px){:root{--mobile-scale:.52}}@media (width<=360px){:root{--mobile-scale:.47}}
