@font-face{font-family:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/55784434036c275c-s.2rh9jze-hmyk3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/2a164f87f9d98467-s.035vafjd9fnhh.woff2)format("woff2");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:Fragment Mono;font-style:italic;font-weight:400;font-display:swap;src:url(../media/d17d64c6923320fb-s.p.3-jc2k8mw6-gf.woff2)format("woff2");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:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d203b9464cfa0970-s.3tsglnldgzmbb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a69e508140118fbc-s.1i-4lpdmefbdo.woff2)format("woff2");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:Fragment Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a9a434ecf764164f-s.p.09kihw1cxxru6.woff2)format("woff2");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:Fragment Mono Fallback;src:local(Arial);ascent-override:68.53%;descent-override:18.03%;line-gap-override:0.0%;size-adjust:138.63%}.fragment_mono_6beece12-module__UBTLIa__className{font-family:Fragment Mono,Fragment Mono Fallback;font-weight:400}
html{--bg:#faf8f3;--line:#d8d3c8;--line-soft:#e7e2d7;--ink:#2e2c28;--body:#3b382f;--muted:#9a9385;--quiet:#7a746a;--accent:#6b6b6b}html[data-theme=dark]{--bg:#1b1a17;--line:#3a372f;--line-soft:#2b2923;--ink:#e2dccd;--body:#c7c1b2;--muted:#767061;--quiet:#8f8878;--accent:#d05a3f}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-size:14px;transition:background .25s}a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}.sm-site{z-index:0;justify-content:center;min-height:100vh;display:flex;position:relative}.sm-site-canvas{z-index:-1;pointer-events:none;position:absolute;inset:0}.sm-sheet{border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--bg);width:100%;max-width:820px}.sm-nav{border-bottom:1px solid var(--line);letter-spacing:.06em;color:var(--quiet);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;padding:clamp(18px,4vw,26px) clamp(20px,6vw,48px);font-size:11.5px;display:flex}.sm-nav-links{flex-wrap:wrap;align-items:baseline;gap:10px 22px;display:flex}.sm-nav-links a{color:var(--quiet)}.sm-nav-links a.sm-nav-resume{color:var(--accent)}.sm-theme-toggle{all:unset;white-space:nowrap;cursor:pointer;width:60px;color:var(--quiet);font:inherit;letter-spacing:.06em;display:inline-block}.sm-hero{border-bottom:1px solid var(--line);padding:clamp(56px,12vw,96px) clamp(20px,6vw,48px) clamp(52px,11vw,88px)}.sm-hero h1{letter-spacing:.32em;text-transform:uppercase;margin:0;font-size:15px;font-weight:400;line-height:2.1}.sm-subtitle{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:6px 0 0;font-size:12px}.sm-quote{color:var(--quiet);text-wrap:pretty;max-width:52ch;margin:clamp(32px,7vw,48px) 0 0;font-size:12.5px;line-height:2.2}.sm-section{border-bottom:1px solid var(--line);grid-template-columns:clamp(76px,16vw,150px) 1fr;display:grid}.sm-section-label{letter-spacing:.2em;color:var(--muted);border-right:1px solid var(--line);padding:34px 0 34px clamp(16px,4vw,48px);font-size:11px}.sm-section-content{color:var(--body);padding:34px clamp(20px,6vw,48px);font-size:12.5px;line-height:2.1}.sm-quote-attr{color:var(--muted);margin-top:10px;display:block}.sm-about-content p{text-wrap:pretty;max-width:58ch;margin:0 0 18px}.sm-about-content p:last-child{margin-bottom:0}.sm-goal-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.sm-goal-name{letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}.sm-goal-percent{color:var(--accent);font-variant-numeric:tabular-nums}.sm-goal-bar{border:1px solid var(--line);border-radius:2px;max-width:340px;height:5px;margin-top:14px;position:relative;overflow:hidden}.sm-goal-bar-fill{background:var(--accent);position:absolute;inset:0 auto 0 0}.sm-work-row{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.sm-work-years{color:var(--muted)}.sm-work-code{margin-top:6px}.sm-work-code a{color:var(--accent)}.sm-github-activity{margin-top:20px}.sm-github-chart{border:1px solid var(--line);background:#fafaf8;border-radius:3px;max-width:100%;height:auto;padding:12px;display:block}.sm-github-events{color:var(--muted);margin:12px 0 0;padding:0;font-size:12px;list-style:none}.sm-github-events li{justify-content:space-between;gap:16px;padding:4px 0;display:flex}.sm-blog-content{padding:26px clamp(20px,6vw,48px) 30px}.blog-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:16px;padding:9px 0;display:flex}.blog-row:last-child{border-bottom:none}.blog-row-title{color:var(--ink)}.blog-row-date{color:var(--muted)}.sm-games-content a{color:var(--accent)}.sm-contact-email{border-bottom:1px solid var(--accent)}.sm-contact-resume{color:var(--muted);margin-top:8px;display:block}.sm-contact-label,.sm-contact-content{padding-bottom:44px}.sm-footer{letter-spacing:.08em;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:22px clamp(20px,6vw,48px);font-size:11px;display:flex}.sm-post{border-bottom:1px solid var(--line);padding:clamp(40px,8vw,64px) clamp(20px,6vw,48px)}.sm-post-title{letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0;font-size:15px;font-weight:400}.sm-post-date{letter-spacing:.12em;color:var(--muted);margin:6px 0 0;font-size:12px}.sm-post-body{color:var(--body);max-width:68ch;margin-top:clamp(28px,6vw,40px);font-size:12.5px;line-height:2.1}.sm-post-body p{margin:0 0 1.4em}.sm-post-body p:last-child{margin-bottom:0}.sm-post-body a{color:var(--accent);text-decoration:underline}.sm-post-body img{border:1px solid var(--line);max-width:100%;height:auto;margin:1.4em 0;display:block}.sm-post-body pre{background:var(--line-soft);border:1px solid var(--line);border-radius:3px;margin:1.4em 0;padding:16px;line-height:1.6;overflow-x:auto}.sm-post-body code{font-family:Fragment Mono,monospace;font-size:12px}.sm-post-body :not(pre)>code{background:var(--line-soft);border-radius:2px;padding:2px 5px}.sm-post-body .hljs-comment,.sm-post-body .hljs-quote{color:var(--muted);font-style:italic}.sm-post-body .hljs-keyword,.sm-post-body .hljs-selector-tag,.sm-post-body .hljs-literal,.sm-post-body .hljs-built_in{color:var(--accent)}.sm-post-body .hljs-string,.sm-post-body .hljs-attr,.sm-post-body .hljs-regexp{color:var(--ink)}.sm-post-body .hljs-number,.sm-post-body .hljs-title,.sm-post-body .hljs-name,.sm-post-body .hljs-function,.sm-post-body .hljs-attribute{color:var(--body)}.sm-reactions{border-top:1px solid var(--line);gap:10px;margin-top:clamp(28px,6vw,40px);padding-top:20px;display:flex}.sm-reaction-btn{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:3px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;transition:border-color .15s,color .15s;display:flex}.sm-reaction-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sm-reaction-btn:disabled{cursor:default;color:var(--accent);border-color:var(--accent)}.sm-guestbook-notice{color:var(--accent);border-bottom:1px solid var(--line);padding:16px clamp(20px,6vw,48px);font-size:12.5px}.sm-guestbook-form{flex-direction:column;gap:12px;max-width:480px;display:flex}.sm-guestbook-form input,.sm-guestbook-form textarea{border:1px solid var(--line);color:var(--ink);font:inherit;background:0 0;border-radius:2px;padding:8px 10px;font-size:12.5px}.sm-guestbook-form textarea{resize:vertical;min-height:80px}.sm-guestbook-form button{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:2px;align-self:flex-start;padding:8px 18px;font-size:12px;transition:background .15s,color .15s}.sm-guestbook-form button:hover{background:var(--accent);color:var(--bg)}.sm-guestbook-entry{border-bottom:1px solid var(--line-soft);padding:14px 0}.sm-guestbook-entry:last-child{border-bottom:none}.sm-guestbook-entry p{margin:0 0 6px}.sm-guestbook-entry span{color:var(--muted);font-size:11px}::view-transition-old(.sm-fade-out){animation:.15s ease-out both sm-fade-out-kf}::view-transition-new(.sm-fade-in){animation:.2s ease-in 60ms both sm-fade-in-kf}@keyframes sm-fade-out-kf{to{opacity:0}}@keyframes sm-fade-in-kf{0%{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}
