:root{--ink:#101313;--paper:#e8e8df;--dim:#9a9e96;--acid:#c7f36b;--line:#343a35;--cursor-field-acid:#c7f36b0b;--cursor-field-paper:#e8e8df05;--serif:Newsreader, Georgia, "Noto Serif SC", serif;--body:Manrope, "Noto Sans SC", "Source Han Sans SC", "Source Han Sans CN", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--mono:"DM Mono", Consolas, monospace;--body-size:17px;--body-leading:1.72;--article-size:18px;--article-leading:1.9;--meta-tracking:.06em;--shell:1320px;color-scheme:dark}html[data-theme=light]{--ink:#f3f2ea;--paper:#171b18;--dim:#68716a;--acid:#5b7d25;--line:#cbd1c7;--cursor-field-acid:#5b7d250b;--cursor-field-paper:#171b1805;color-scheme:light}*{box-sizing:border-box}html{background:var(--ink);color:var(--paper);scroll-behavior:smooth}body{background:var(--ink);min-width:320px;font-family:var(--body);font-size:var(--body-size);line-height:var(--body-leading);margin:0}::selection{background:var(--acid);color:var(--ink)}a{color:inherit}a:focus-visible{outline:2px solid var(--acid);outline-offset:5px}.skip-link{z-index:10;background:var(--acid);color:var(--ink);font-family:var(--mono);padding:10px 14px;font-size:12px;line-height:1.2;text-decoration:none;transition:transform .18s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.site-shell{width:min(100% - 10vw, var(--shell));flex-direction:column;min-height:100dvh;margin-inline:auto;display:flex}.site-header{border-bottom:1px solid var(--line);align-items:center;gap:32px;min-height:92px;display:flex}.brand,.footer-brand{color:var(--paper);letter-spacing:-.04em;white-space:nowrap;font-size:18px;font-weight:700;text-decoration:none}.brand span{color:var(--dim);font-weight:400}.primary-nav{gap:28px;margin-left:auto;display:flex}.header-nav-row{display:contents}.primary-nav a,.footer-nav a,.footer-year,.meta,.eyebrow{font-family:var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;font-size:11px}.primary-nav a,.footer-nav a{color:var(--dim);font-size:12px;text-decoration:none;transition:color .18s,transform .18s}.primary-nav a:hover,.primary-nav a[aria-current=page],.footer-nav a:hover{color:var(--acid)}.primary-nav a:hover,.footer-nav a:hover{transform:translateY(-2px)}.theme-toggle{border:0;border-bottom:1px solid var(--line);min-height:44px;color:var(--dim);cursor:pointer;font-family:var(--mono);letter-spacing:var(--meta-tracking);background:0 0;align-items:center;padding:0 0 2px;font-size:11px;line-height:1;transition:color .18s,border-color .18s;display:inline-flex}.theme-toggle:hover{border-color:var(--acid);color:var(--acid)}.theme-toggle:focus-visible{outline:2px solid var(--acid);outline-offset:5px}main{flex:1;min-height:0}.home-intro{grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);gap:clamp(64px,10vw,144px);padding:56px 0 124px;display:grid}.home-copy{max-width:760px;padding-top:2px}.eyebrow,.meta{color:var(--dim)}.eyebrow{margin:0 0 40px}.home-title{max-width:720px;color:var(--paper);font-family:var(--serif);letter-spacing:-.04em;margin:0 0 36px;font-size:clamp(4.4rem,6.7vw,6rem);font-weight:400;line-height:.88}.home-title-motion{display:inline-block}.home-title-accent{color:var(--acid)}.about-excerpt-motion{display:block}.read-link-motion{align-items:center;gap:12px;display:inline-flex}.about-excerpt{max-width:65ch;color:var(--paper);margin:0;font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.85}.about-excerpt:first-line{color:var(--paper)}.read-link,.back-link{border-bottom:1px solid var(--line);color:var(--paper);font-family:var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;align-items:center;gap:12px;margin-top:34px;padding-bottom:5px;font-size:11px;text-decoration:none;transition:color .18s,border-color .18s,transform .18s;display:inline-flex}.read-link:hover,.back-link:hover{border-color:var(--acid);color:var(--acid);transform:translate(3px)}.home-annotation{align-self:start;margin-top:118px}.annotation-line{gap:18px;display:grid}.annotation-line span{color:var(--dim);font-family:var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;font-size:11px}.annotation-line span:first-child{color:var(--acid)}.site-footer{border-top:1px solid var(--line);color:var(--dim);padding:26px 0 30px}.footer-top,.footer-nav{align-items:center;display:flex}.footer-top{justify-content:space-between}.footer-nav{gap:28px;margin-top:18px}.footer-brand{color:var(--paper);font-size:16px}.empty-state{border-top:1px solid var(--line);padding:30px 0 140px}.empty-state :where(h1,h2){max-width:620px;color:var(--paper);font-family:var(--serif);letter-spacing:-.03em;margin:0 0 12px;font-size:clamp(2rem,5vw,4.2rem);font-weight:400;line-height:1}.empty-state p{max-width:55ch;color:var(--dim);margin:0}.empty-note{border-top:1px solid var(--line);padding:52px 0 72px}.empty-note h1{max-width:620px;color:var(--paper);font-family:var(--serif);letter-spacing:-.02em;margin:0 0 16px;font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:400;line-height:.95}.empty-note p{max-width:55ch;color:var(--dim);margin:0}.page-intro{border-bottom:1px solid var(--line);padding:88px 0 72px}.page-intro h1,.article h1{max-width:850px;color:var(--paper);font-family:var(--serif);letter-spacing:-.02em;margin:0 0 28px;font-size:clamp(3.8rem,8vw,6rem);font-weight:400;line-height:.9}.lede{max-width:58ch;color:var(--dim);margin:0;font-size:17px;line-height:1.8}.record-list{padding:18px 0 140px}.record-row{border-bottom:1px solid var(--line);color:var(--paper);grid-template-columns:150px minmax(0,1fr) 24px;align-items:start;gap:28px;padding:24px 0;text-decoration:none;display:grid}.record-row:first-child{border-top:1px solid var(--line)}.record-meta{color:var(--dim);font-family:var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;font-size:11px}.record-copy{gap:5px;display:grid}.record-copy strong{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.25rem);font-weight:400;line-height:1.05}.record-copy small{max-width:60ch;color:var(--dim);font-size:15px;line-height:1.55}.record-arrow{color:var(--acid);font-size:18px;transition:transform .18s}.record-row:hover .record-arrow{transform:translate(3px,-2px)}.record-row:hover .record-copy strong{color:var(--acid)}.github-activity{border-top:1px solid var(--line);padding:52px 0 120px}.github-summary{grid-template-columns:minmax(0,1.05fr) minmax(220px,.95fr);align-items:end;gap:clamp(56px,10vw,148px);display:grid}.github-summary-copy{max-width:560px}.github-summary-copy .eyebrow{margin:0 0 10px}.github-summary-copy h2{color:var(--paper);font:400 clamp(2.4rem, 5vw, 4rem)/.92 var(--serif);letter-spacing:-.04em;margin:0}.github-summary-data{align-self:end;min-width:0;padding-bottom:3px}.github-status{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;margin:0}.github-profile{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;gap:8px;margin:0;display:grid}.github-profile span:first-child{color:var(--paper)}.github-repositories{margin-top:78px}.github-repositories>.eyebrow{margin:0 0 18px}.github-repo-list{border-top:1px solid var(--line)}.github-repo-row{border-bottom:1px solid var(--line);color:var(--paper);grid-template-columns:34px minmax(0,1.2fr) minmax(180px,.8fr) 24px;align-items:start;gap:24px;padding:22px 0;text-decoration:none;display:grid}.github-repo-index{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking)}.github-repo-copy{gap:6px;min-width:0;display:grid}.github-repo-copy strong{color:var(--paper);font:400 clamp(1.45rem, 2.6vw, 2rem)/1.05 var(--serif);overflow-wrap:anywhere}.github-repo-copy small{max-width:58ch;color:var(--dim);overflow-wrap:anywhere;font-size:14px;line-height:1.55}.github-repo-meta{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;overflow-wrap:anywhere;flex-wrap:wrap;gap:6px 14px;display:flex}.github-repo-language:before{content:"";background:var(--acid);border-radius:50%;width:5px;height:5px;margin:0 7px 2px 0;display:inline-block}.github-repo-arrow{min-height:44px;color:var(--acid);text-align:right;font-size:18px;line-height:1.5;transition:transform .18s,color .18s}.github-repo-row:hover{border-color:var(--dim)}.github-repo-row:hover .github-repo-arrow{transform:translate(2px,-1px)}.github-repo-row:hover .github-repo-copy strong{color:var(--acid)}.github-link{margin-top:30px}.steam-activity{border-top:1px solid var(--line);padding:52px 0 120px}.steam-summary{grid-template-columns:minmax(0,1.1fr) minmax(220px,.9fr);align-items:end;gap:clamp(56px,10vw,148px);display:grid}.steam-summary-copy{max-width:650px}.steam-summary-copy>.eyebrow{margin:0 0 24px}.steam-player{align-items:center;gap:22px;display:flex}.steam-avatar{border:1px solid var(--line);background:var(--paper);flex:0 0 76px;width:76px;height:76px;position:relative;overflow:hidden}.steam-avatar img{object-fit:cover;width:100%;height:100%;display:block}.steam-avatar-placeholder{width:100%;height:100%;color:var(--dim);font:9px/1 var(--mono);letter-spacing:.05em;text-align:center;place-items:center;display:grid}.steam-player-copy{min-width:0}.steam-player-copy h2{color:var(--paper);font:400 clamp(2rem, 4vw, 3rem)/.95 var(--serif);overflow-wrap:anywhere;margin:0 0 8px}.steam-player-status,.steam-current-game{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;margin:0}.steam-player-status{color:var(--acid)}.steam-current-game{color:var(--paper);margin-top:5px}.steam-profile-link{margin-top:28px}.steam-status{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;align-self:end;margin:0}.steam-recent{margin-top:84px}.steam-recent>.eyebrow{margin:0 0 18px}.steam-game-list{border-top:1px solid var(--line)}.steam-game-row{border-bottom:1px solid var(--line);color:var(--paper);grid-template-columns:34px 128px minmax(0,1fr) 24px;align-items:start;gap:24px;padding:22px 0;text-decoration:none;display:grid}.steam-game-index{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking)}.steam-game-cover{aspect-ratio:460/215;background:var(--line);width:128px;overflow:hidden}.steam-game-cover img{object-fit:cover;width:100%;height:100%;display:block}.steam-game-cover-placeholder{width:100%;height:100%;color:var(--dim);font:9px/1 var(--mono);letter-spacing:.05em;place-items:center;display:grid}.steam-game-copy{gap:10px;min-width:0;display:grid}.steam-game-copy strong{color:var(--paper);font:400 clamp(1.45rem, 2.6vw, 2rem)/1.05 var(--serif);overflow-wrap:anywhere}.steam-game-meta{color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);text-transform:uppercase;overflow-wrap:anywhere;flex-wrap:wrap;gap:5px 18px;display:flex}.steam-game-arrow{min-height:44px;color:var(--acid);text-align:right;font-size:18px;line-height:1.5;transition:transform .18s,color .18s}.steam-game-row:hover{border-color:var(--dim)}.steam-game-row:hover .steam-game-copy strong{color:var(--acid)}.steam-game-row:hover .steam-game-arrow{transform:translate(2px,-1px)}.steam-empty{border-top:1px solid var(--line);color:var(--dim);font:11px/1.5 var(--mono);letter-spacing:var(--meta-tracking);margin:0;padding:22px 0}.article{max-width:820px;padding:100px 0 140px}.article-rule{border-top:1px solid var(--line);margin:56px 0 36px}.article-body{max-width:62ch;color:var(--paper);font-family:var(--body);font-size:var(--article-size);line-height:var(--article-leading);letter-spacing:0;font-weight:400}.article-body>h1+p{color:var(--dim);font-size:17px;line-height:1.85}.article-body :where(h2,h3){color:var(--paper);font-family:var(--serif);margin:2.5em 0 .7em;font-weight:400;line-height:1.1}.article-body :where(p,ul,ol){margin:0 0 1.35em}.article-body :where(a){color:var(--acid);text-underline-offset:4px;overflow-wrap:anywhere}.article-body :where(code){color:var(--acid);font-family:var(--mono);overflow-wrap:anywhere;font-size:.85em}.back-link{margin-top:64px}@media (width<=760px){.site-shell{width:min(100% - 44px, var(--shell))}.site-header{grid-template-columns:1fr;align-items:center;min-height:100px;padding:18px 0 14px;display:grid}.brand,.footer-brand{align-items:center;min-height:44px;display:inline-flex}.header-nav-row{align-items:center;gap:12px;min-width:0;display:flex}.primary-nav{scrollbar-width:none;flex-wrap:nowrap;flex:auto;gap:14px;min-width:0;margin-left:0;padding-bottom:3px;overflow-x:auto}.primary-nav::-webkit-scrollbar{display:none}.primary-nav a{flex:none;align-items:center;min-height:44px;font-size:12px;display:inline-flex}.theme-toggle{flex:none}.home-intro{padding:42px 0 88px;display:block}.eyebrow{margin-bottom:28px;font-size:11px}.home-title{margin-bottom:28px;font-size:clamp(3.25rem,14vw,3.5rem);line-height:.9}.about-excerpt{font-size:17px;line-height:1.9}.home-annotation{width:min(100%,260px);margin:70px 0 0 7px}.page-intro{padding:68px 0 52px}.page-intro h1,.article h1{font-size:clamp(3.2rem,15vw,4.2rem)}.lede{font-size:16px;line-height:1.85}.empty-note{padding:42px 0 64px}.empty-note h1{font-size:clamp(2.8rem,14vw,4rem)}.record-list{padding-bottom:88px}.record-row{grid-template-columns:minmax(0,1fr) 20px;gap:8px 16px;padding:21px 0}.record-meta{grid-column:1;font-size:11px}.record-copy{grid-column:1}.record-copy strong{font-size:1.8rem}.record-arrow{grid-area:1/2/span 2}.github-activity{padding:42px 0 88px}.github-summary{display:block}.github-summary-copy h2{font-size:clamp(2.25rem,12vw,3.2rem)}.github-summary-data{margin-top:26px;padding:0}.github-profile{flex-wrap:wrap;gap:4px 12px;display:flex}.github-repositories{margin-top:58px}.github-repo-row{grid-template-columns:34px minmax(0,1fr) 20px;gap:8px 16px;padding:21px 0}.github-repo-index{grid-area:1/1/span 3}.github-repo-copy{grid-area:1/2/auto/span 2}.github-repo-meta{grid-area:2/2/auto/span 2}.github-repo-arrow{grid-area:1/3}.steam-activity{padding:42px 0 88px}.steam-summary{display:block}.steam-summary-data{margin-top:26px}.steam-player{gap:16px}.steam-avatar{flex-basis:64px;width:64px;height:64px}.steam-player-copy h2{font-size:clamp(2rem,10vw,2.8rem)}.steam-recent{margin-top:60px}.steam-game-row{grid-template-columns:34px 88px minmax(0,1fr) 20px;gap:8px 14px;padding:21px 0}.steam-game-cover{width:88px}.steam-game-index{grid-area:1/1/span 2}.steam-game-cover{grid-area:1/2/span 2}.steam-game-copy{grid-area:1/3/span 2}.steam-game-arrow{grid-area:1/4}.steam-game-meta{gap:5px 12px}.article{padding:72px 0 96px}.article-body{font-size:17px;line-height:1.95}.footer-nav{flex-wrap:wrap;gap:22px}.footer-nav a{align-items:center;min-height:44px;font-size:12px;display:inline-flex}}@media (width>=761px) and (width<=900px){.site-shell{width:min(100% - 84px, var(--shell))}.primary-nav{gap:22px}.primary-nav a{font-size:12px}.home-intro{grid-template-columns:minmax(0,1.35fr) minmax(170px,.65fr);gap:52px;padding-bottom:110px}.home-title{font-size:clamp(4.25rem,9.7vw,4.75rem)}.about-excerpt{font-size:18px}.home-annotation{margin-top:106px}.footer-nav{gap:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}html.custom-cursor-active,html.custom-cursor-active *{cursor:none}.cursor-field[data-astro-cid-qlhylmmv]{z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle at center, var(--cursor-field-acid) 0%, var(--cursor-field-paper) 28%, transparent 70%);width:480px;height:480px;position:fixed;top:0;left:0}.cursor-reticle[data-astro-cid-qlhylmmv]{z-index:20;pointer-events:none;opacity:0;width:16px;height:16px;position:fixed;top:0;left:0}.reticle-center[data-astro-cid-qlhylmmv]{background:var(--acid);border-radius:50%;width:2px;height:2px;position:absolute;top:7px;left:7px}.reticle-corner[data-astro-cid-qlhylmmv]{border-color:var(--acid);border-style:solid;border-width:0;width:5px;height:5px;position:absolute}.reticle-corner--tl[data-astro-cid-qlhylmmv]{border-top-width:1px;border-left-width:1px;top:0;left:0}.reticle-corner--tr[data-astro-cid-qlhylmmv]{border-top-width:1px;border-right-width:1px;top:0;right:0}.reticle-corner--bl[data-astro-cid-qlhylmmv]{border-bottom-width:1px;border-left-width:1px;bottom:0;left:0}.reticle-corner--br[data-astro-cid-qlhylmmv]{border-bottom-width:1px;border-right-width:1px;bottom:0;right:0}.cursor-text-active{color:color-mix(in srgb, currentColor 84%, var(--paper))}
