@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial),local(ArialMT);font-weight:100 500;size-adjust:107.03%;ascent-override:90.54%;descent-override:22.52%;line-gap-override:0%}@font-face{font-family:Inter Fallback;src:local(Arial Bold),local(Arial-BoldMT);font-weight:600 900;size-adjust:100.53%;ascent-override:96.39%;descent-override:23.97%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local(Menlo Regular),local(Menlo-Regular),local(DejaVu Sans Mono),local(DejaVuSansMono);font-weight:100 900;size-adjust:99.66%;ascent-override:102.35%;descent-override:30.1%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback Consolas;src:local(Consolas);font-weight:100 900;size-adjust:109.13%;ascent-override:93.47%;descent-override:27.49%;line-gap-override:0%}:root,[data-theme=light]{--bg:#fafafa;--fg:#0a0a0a;--muted:#666;--hint:#737373;--line:#d4d4d4;--accent:#5b5cd9;--accent-gradient:linear-gradient(90deg, #5b5cd9, #5b5cd9);--ascii-fg:#0a0a0a;--ascii-accent:#5b5cd9;--ascii-invert:1;--ascii-glitch:0;--font-display:"Inter Variable", "Inter Fallback", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", "JetBrains Mono Fallback", "JetBrains Mono Fallback Consolas", ui-monospace, monospace;--hero-glow:color-mix(in srgb, var(--fg) 6%, var(--bg));color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#111;--fg:#f2f2f2;--muted:#999;--hint:gray;--line:#2a2a2a;--accent:#7cfc6a;--accent-gradient:linear-gradient(90deg, #7cfc6a, #8b8cf0);--ascii-fg:#8a8a8a;--ascii-accent:#7cfc6a;--ascii-invert:0;--ascii-glitch:0;--hero-glow:color-mix(in srgb, #d9c9ae 10%, var(--bg));color-scheme:dark}}[data-theme=dark]{--bg:#111;--fg:#f2f2f2;--muted:#999;--hint:gray;--line:#2a2a2a;--accent:#7cfc6a;--accent-gradient:linear-gradient(90deg, #7cfc6a, #8b8cf0);--ascii-fg:#8a8a8a;--ascii-accent:#7cfc6a;--ascii-invert:0;--ascii-glitch:0;--hero-glow:color-mix(in srgb, #d9c9ae 10%, var(--bg));color-scheme:dark}[data-theme=hacker]{--bg:#0a0f0a;--fg:#9dff9d;--muted:#5fb36f;--hint:#3f8f4f;--line:#1f3a24;--accent:#7cfc6a;--accent-gradient:linear-gradient(90deg, #7cfc6a, #7cfc6a);--ascii-fg:#3fbf5a;--ascii-accent:#9dff9d;--ascii-invert:0;--ascii-glitch:1;--font-display:"JetBrains Mono Variable", "JetBrains Mono Fallback", "JetBrains Mono Fallback Consolas", ui-monospace, monospace;--hero-glow:color-mix(in srgb, var(--accent) 14%, var(--bg));color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg);overflow-y:scroll}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--fg);font-family:var(--font-display);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5;transition:background-color .3s,color .3s}.bg-field{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.page-backdrop{z-index:0;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .8s;position:fixed;inset:0}.page-backdrop.is-ready{opacity:1}.page-content{z-index:1;position:relative}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:inherit}.accent-text{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 1.5rem;font-size:.75rem;font-weight:500}.mono{font-family:var(--font-mono)}.js .reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(16px)}.js .reveal.is-visible{opacity:1;transform:none}[data-theme=hacker] body:after{content:"";z-index:100;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 2px,#00000040 2px 3px);position:fixed;inset:0}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}body{transition:none}}.hero{background:var(--bg);min-height:100svh;position:relative;overflow:hidden}.hero-art{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0;container-type:size}.hero-art pre{left:calc(50cqw + var(--x) * 1cqh);top:calc(50cqh + var(--y) * 1cqh);width:calc(var(--w) * 1cqh);height:calc(var(--h) * 1cqh);font-family:var(--font-mono);font-size:calc(var(--h) * 1cqh / var(--rows));letter-spacing:calc(var(--w) * 1cqh / var(--cols) - .6em);white-space:pre;color:var(--ascii-fg);-webkit-user-select:none;user-select:none;margin:0;line-height:1;transition:opacity .6s;position:absolute}.ascii-narrow,.glow-narrow{display:none}@media (width<=768px),not all and (aspect-ratio>=1){.ascii-wide,.glow-wide{display:none}.ascii-narrow,.glow-narrow{display:block}}.hero-art .ascii-dark{display:none}[data-theme=dark] .ascii-dark,[data-theme=hacker] .ascii-dark{display:block}[data-theme=dark] .ascii-light,[data-theme=hacker] .ascii-light{display:none}:root:not(.js) .hero-art .ascii-dark{display:block}:root:not(.js) .hero-art .ascii-light{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme]) .ascii-dark{display:block}:root:not([data-theme]) .ascii-light{display:none}}.ascii-canvas{opacity:0;touch-action:pan-y;width:100%;height:100%;transition:opacity .6s;display:block;position:absolute;inset:0}.ascii-canvas.is-ready{opacity:1}.hero-art:has(.ascii-canvas.is-ready) pre{opacity:0}.hero-art.is-statue pre,.hero-art.is-statue .ascii-canvas{opacity:0;transition:opacity .3s}.hero-glow{pointer-events:none;background:radial-gradient(ellipse 65cqh 65cqh at calc(50cqw + var(--cx) * 1cqh) calc(50cqh + var(--cy) * 1cqh), var(--hero-glow), transparent 70%);position:absolute;inset:0}.hero-backdrop-layer{pointer-events:none;position:absolute;inset:0}.hero-backdrop{opacity:0;--backdrop-fade:radial-gradient(ellipse 75% 70% at 0% 100%, transparent 28%, black 100%);width:100%;height:100%;mask-image:linear-gradient(to bottom, transparent 3%, black 13%, black 66%, transparent 96%), var(--backdrop-fade);transition:opacity 1.2s;display:block;position:absolute;inset:0;mask-composite:intersect}.hero-backdrop.is-ready{opacity:1}@media (width<=768px),not all and (aspect-ratio>=1){.hero-backdrop-layer{display:none}}@media (prefers-reduced-motion:reduce){.hero-backdrop{transition:none}}.hero-scrim{background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;height:55%;position:absolute;inset:auto 0 0}.site-nav.hero-nav{z-index:2;position:absolute;inset:0 0 auto}.brand{font-size:.875rem;font-weight:600}.site-nav{border-bottom:1px dotted var(--line);justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1.25rem clamp(1rem,4vw,2.5rem);display:flex}.site-nav .brand{text-decoration:none}.site-nav-links{align-items:center;gap:1.25rem;font-size:.875rem;display:flex}@media (width<=400px){.site-nav-links{gap:.875rem}}.site-nav-links a{color:var(--muted);text-decoration:none}.site-nav-links a:hover,.site-nav-links a[aria-current=page]{color:var(--fg)}.all-writing{margin:1.25rem 0 0;font-size:.8rem}.post-list-title{min-width:0}.cover-hue-0{color:var(--ascii-accent)}.cover-hue-1{color:var(--accent)}.cover-hue-2{color:var(--muted)}.theme-toggle{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:1px solid var(--line);background:var(--bg);width:2.5rem;height:2.5rem;color:var(--fg);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid}.theme-toggle-icon{width:1.1rem;height:1.1rem;display:block}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html:not(.js) .theme-toggle{display:none}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){z-index:1}html[data-theme-switching],html[data-theme-switching] *,html[data-theme-switching] :before,html[data-theme-switching] :after{transition:none!important}html:active-view-transition-type(page) .site-nav{view-transition-name:site-nav}html:active-view-transition-type(page)::view-transition-group(site-nav),html:active-view-transition-type(page)::view-transition-old(site-nav),html:active-view-transition-type(page)::view-transition-new(site-nav){animation:none}html:active-view-transition-type(page)::view-transition-old(site-nav){opacity:0}html:active-view-transition-type(page)::view-transition-old(root){animation:.14s ease-in both page-out}html:active-view-transition-type(page)::view-transition-new(root){animation:.26s cubic-bezier(.2,0,0,1) 70ms both page-in}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0}}.shockwave{z-index:2147483647;pointer-events:none;position:fixed;inset:0}.hero-title{z-index:2;pointer-events:none;position:absolute;bottom:clamp(3.5rem,8vh,5rem);left:clamp(1rem,4vw,2.5rem);right:clamp(1rem,4vw,2.5rem)}.hero-title h1{letter-spacing:-.04em;pointer-events:auto;margin:0;font-size:clamp(3rem,10vw,8.5rem);font-weight:600;line-height:.95}h1[data-hacker-tap]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}[data-theme=hacker] .hero-title h1:after{content:"█" / "";margin-left:.1em;animation:1s step-end infinite blink}.hero-title p{max-width:36ch;color:var(--muted);margin:1rem 0 0;font-size:clamp(1rem,1.6vw,1.25rem)}.hero-terminal{z-index:2;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:min(34rem,100vw - 2rem);display:flex;position:absolute;bottom:2rem;right:clamp(1rem,4vw,2.5rem)}.scroll-hint{color:var(--muted);justify-items:end;gap:.35rem;font-size:.8125rem;text-decoration:none;display:grid}.hero-terminal-output{box-sizing:border-box;background:color-mix(in srgb, var(--bg) 96%, transparent);border:1px dotted var(--line);width:100%;color:var(--muted);text-align:left;gap:.15rem;padding:.5rem .75rem;font-size:.8125rem;display:grid;overflow-x:auto}.hero-terminal-line{white-space:pre;margin:0}.hero-terminal-line.is-error{color:var(--fg)}.hero-terminal-line.is-error:before{content:"! ";color:var(--accent)}.hero-terminal.is-active .hero-terminal-prompt{align-items:center;gap:.15rem;display:inline-flex}.hero-terminal-input{color:var(--fg);font:inherit;background:0 0;border:none;border-bottom:1px solid #0000;outline:none;width:18ch;max-width:calc(100vw - 6rem);padding:0}.hero-terminal-input:focus-visible{border-bottom-color:var(--accent)}@media (width<=768px),(pointer:coarse){.hero-terminal{display:none}}.scroll-hint-line{white-space:pre;display:inline-flex}.scroll-hint-typed{display:inline-flex;overflow:clip}.scroll-hint-prompt{color:var(--accent)}.scroll-hint-cmd{width:10ch;display:inline-block}.scroll-hint-enter{transition:color .2s}.scroll-hint:hover,.scroll-hint:focus-visible{color:var(--fg)}.scroll-hint:hover .scroll-hint-enter,.scroll-hint:focus-visible .scroll-hint-enter{color:var(--accent)}.scroll-hint:focus-visible{outline:1px solid var(--accent);outline-offset:6px}@media (prefers-reduced-motion:no-preference){.scroll-hint-typed>*{animation:.9s steps(10,end) .8s backwards scroll-hint-type}.scroll-hint-caret{animation:1s step-end infinite scroll-hint-blink}.scroll-hint-enter{animation:.4s 1.9s both scroll-hint-in}}@keyframes scroll-hint-type{0%{transform:translate(10ch)}}@keyframes scroll-hint-blink{50%{opacity:0}}@keyframes scroll-hint-in{0%{opacity:0;transform:translateY(-4px)}}.section[id]{scroll-margin-top:1rem}.scroll-rail{z-index:50;color:var(--muted);text-align:center;pointer-events:none;font-size:.6875rem;line-height:1.35;transition:opacity .3s;display:none;position:fixed;top:50%;right:1.25rem;transform:translateY(-50%)}.scroll-rail.is-hidden{opacity:0}.scroll-rail-dot{display:block}.scroll-rail-dot.is-active{color:var(--accent)}.scroll-rail-pct{font-variant-numeric:tabular-nums;margin-top:.6rem;display:block}@media (width>=1400px){.scroll-rail{display:block}}.toast{z-index:101;border:1px solid var(--accent);background:var(--bg);color:var(--accent);font-family:var(--font-mono);opacity:0;pointer-events:none;padding:.6rem 1rem;font-size:.875rem;transition:opacity .2s;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.toast.is-visible{opacity:1}@media (prefers-reduced-motion:reduce){[data-theme=hacker] .hero-title h1:after{animation:none}}.section{border-top:1px dotted var(--line);max-width:1200px;margin:0 auto;padding:clamp(4rem,10vw,8rem) clamp(1rem,4vw,2.5rem)}.section-grid{grid-template-columns:minmax(120px,200px) 1fr;align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.section-grid .label{margin:0}@media (width<=768px){.section-grid{grid-template-columns:1fr;gap:1rem}}.about-text{letter-spacing:-.01em;max-width:40ch;margin:0;font-size:1.25rem;line-height:1.35}.about-personal{color:var(--muted)}.post-list,.row-list{margin:0;padding:0;list-style:none}.row{border-top:1px dotted var(--line);grid-template-columns:minmax(90px,110px) 1fr auto;align-items:baseline;gap:1rem;padding:.85rem 0;display:grid}.row:first-child{border-top:0;padding-top:0}@media (width<=640px){.row{grid-template-columns:1fr;gap:.35rem}}.row-period{color:var(--muted);font-size:.8rem}.row-title{margin:0;font-size:1.0625rem;font-weight:600}.row-title a{text-decoration:none}.row-title a:hover,.row-title a:focus-visible{text-decoration:underline}.row-meta{color:var(--muted);margin:.25rem 0 0}.row-stack{color:var(--muted);margin:.4rem 0 0;font-size:.75rem}.row-current{color:var(--accent);font-size:.75rem}.tag-list{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);padding:.3rem .65rem;font-size:.75rem}.worked-with-grid{grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,4vw,2.5rem);margin:0;padding:0;list-style:none;display:grid}@media (width<=640px){.worked-with-grid{grid-template-columns:repeat(2,1fr)}}.worked-with-cell{border:1px dotted var(--line);min-width:0;display:flex}.worked-with-link{min-width:0;color:var(--muted);flex:1;justify-content:center;align-items:center;padding:1.75rem 1.5rem;text-decoration:none;transition:color .2s;display:flex}.worked-with-link:hover{color:var(--fg)}.worked-with-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.worked-with-logo-box{max-width:100%;height:32px;display:block}.worked-with-logo{width:100%;height:100%;display:block}.worked-with-mask{background-image:var(--logo-src);background-position:0;background-repeat:no-repeat;background-size:contain}@supports (mask-image:url('')){.worked-with-mask{-webkit-mask-image:var(--logo-src);mask-image:var(--logo-src);background-color:currentColor;background-image:none;-webkit-mask-position:0;mask-position:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}}.post-list a{border-top:1px dotted var(--line);justify-content:space-between;gap:1rem;padding:1rem 0;text-decoration:none;display:flex}.section-content>:first-child{margin-top:0}.section-content>.post-list>li:first-child>a{border-top:0;padding-top:0}.post-meta{color:var(--muted);flex-shrink:0;font-size:.8rem}.site-footer{border-top:1px dotted var(--line);max-width:1200px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:2rem clamp(1rem,4vw,2.5rem);font-size:.8rem;display:flex}.site-footer nav{gap:1.25rem;display:flex}.site-footer a:hover{color:var(--fg)}.hint{color:var(--hint)}@media (pointer:coarse){.site-footer .hint{display:none}}[data-page-bg=grid] :is(.site-nav,.section,.row,.post-list a,.site-footer){border-color:#0000}[data-page-bg=grid] .worked-with-cell{border-style:solid}
