.site-shell{--site-header-height:66px;--site-viewport-height:100vh;--site-content-width:clamp(1220px, 84.72vw, 1920px);--site-gutter:clamp(18px, 3vw, 36px);--site-bg:#f6f7f5;--site-surface:#e9edeb;--site-ink:#1d2724;--site-muted:#66736d;--site-line:#d9dfdb;--site-accent:#9e513d;min-height:var(--site-viewport-height);color:var(--site-ink);background:var(--site-bg);isolation:isolate;font-family:var(--font-sans,"Inter"), "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;flex-direction:column;display:flex;position:relative}@supports (height:100svh){.site-shell{--site-viewport-height:100svh}}@supports (height:100dvh){.site-shell{--site-viewport-height:100dvh}}.site-shell[data-theme=dark]{--site-bg:#1b2220;--site-surface:#27312d;--site-ink:#f0f2ee;--site-muted:#a8b4ad;--site-line:#3d4a43;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.site-shell[data-font=serif]{font-family:Georgia,Noto Serif SC,Songti SC,serif}.site-shell[data-font=mono]{font-family:SFMono-Regular,Consolas,Liberation Mono,Noto Sans Mono CJK SC,monospace}@media (prefers-color-scheme:dark){.site-shell[data-theme=system]{--site-bg:#1b2220;--site-surface:#27312d;--site-ink:#f0f2ee;--site-muted:#a8b4ad;--site-line:#3d4a43;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.site-shell *{box-sizing:border-box}.site-shell a{color:inherit;text-decoration:none}.site-shell button{font:inherit}.site-shell>main{flex:1 0 auto;width:100%}.site-shell>.site-header,.site-shell>.site-footer{flex:none}.site-container{width:calc(100% - var(--site-gutter) * 2);max-width:var(--site-content-width);margin-inline:auto}html.site-document{scrollbar-width:none}html.site-document::-webkit-scrollbar{width:0;height:0;display:none}body.site-document::-webkit-scrollbar{width:0;height:0;display:none}.site-home-panel{scroll-margin-top:var(--site-header-height)}html.site-home-document{scroll-behavior:auto;scroll-padding-top:66px}.site-accent{color:var(--site-accent)}.site-background{z-index:-1;pointer-events:none;opacity:0;background-position:50%;background-size:cover;transition:opacity .9s;position:fixed;inset:-24px}.site-background.is-ready{opacity:var(--site-bg-opacity,.16)}.site-shell[data-background-active=true]>main{position:relative}.site-shell[data-background-active=true]>main:before{content:"";z-index:-1;pointer-events:none;background:var(--site-bg);opacity:.66;position:absolute;inset:0}.site-shell[data-background-active=true][data-background-overlay=off]>main:before{opacity:.25}.site-header{height:var(--site-header-height);z-index:40;background:var(--site-bg);border-bottom:1px solid var(--site-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.site-header-inner{align-items:center;gap:24px;height:100%;display:flex}.site-brand{white-space:nowrap;letter-spacing:-.035em;align-items:center;font-size:17px;font-weight:720;display:inline-flex}.site-desktop-nav{align-items:center;gap:29px;margin-left:auto;display:flex}.site-nav-link{padding-block:22px;font-size:13px;font-weight:550;transition:color .18s;position:relative;color:var(--site-muted)!important}.site-nav-link:after{content:"";background:var(--site-accent);transform-origin:0;height:1px;transition:transform .22s;position:absolute;bottom:15px;left:0;right:0;transform:scaleX(0)}.site-nav-link:hover,.site-nav-link[aria-current=page]{color:var(--site-ink)!important}.site-nav-link:hover:after,.site-nav-link[aria-current=page]:after{transform:scaleX(1)}.site-external-mark{margin-left:3px;font-size:10px}.site-text-link span{transition:transform .18s;display:inline-block}.site-text-link:hover span{transform:translate(3px,-3px)}.site-menu-toggle,.site-mobile-menu{display:none}.site-page-enter{min-height:54vh;animation:.42s cubic-bezier(.2,.7,.2,1) both site-page-in}html[data-route-leaving=true] .site-page-enter{opacity:0;transition:opacity .17s,transform .17s;transform:translateY(-7px)}@keyframes site-page-in{0%{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}.site-section{border-top:1px solid var(--site-line);padding-block:82px}.site-section-head{justify-content:space-between;align-items:end;gap:28px;margin-bottom:35px;display:flex}.site-kicker{color:var(--site-accent);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:10px;font-size:11px;font-weight:700;display:inline-flex}.site-kicker:before{content:"";background:currentColor;width:19px;height:1px}.site-section-title,.site-page-title{letter-spacing:-.045em;margin:0;font-size:clamp(34px,3.7vw,52px);font-weight:630;line-height:1.16}.site-section-description,.site-page-subtitle{color:var(--site-muted);margin:12px 0 0;font-size:15px;line-height:1.8}.site-text-link{color:var(--site-ink);white-space:nowrap;border-bottom:1px solid var(--site-line);align-items:center;gap:9px;padding-bottom:6px;font-size:13px;font-weight:630;transition:border-color .18s,color .18s;display:inline-flex}.site-text-link:hover{color:var(--site-accent);border-color:var(--site-accent)}.site-hero{min-height:calc(var(--site-viewport-height) - var(--site-header-height));grid-template-rows:auto minmax(min-content,1fr) auto;padding-block:42px 12px;display:grid;position:relative}.site-hero-topline{align-items:center;gap:17px;display:flex}.site-hero-topline:after{content:"";background:var(--site-accent);opacity:.65;width:48px;height:2px;margin-left:auto}.site-hero-status{color:var(--site-muted);align-items:center;gap:9px;font-size:12px;display:inline-flex}.site-status-dot{background:var(--site-accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--site-surface);border-radius:50%}.site-hero-main{grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);align-items:center;gap:clamp(32px,4vw,58px);display:grid}.site-hero-main>*,.site-hero-bottom>*,.site-section-head>*,.site-post-row>*{min-width:0}.site-hero h1{letter-spacing:-.075em;overflow-wrap:anywhere;margin:0;font-size:clamp(96px,8.5vw,192px);font-weight:690;line-height:.98}.site-hero-period{color:var(--site-accent)}.site-hero-intro{padding-bottom:5px}.site-hero-lead{letter-spacing:-.015em;max-width:clamp(420px,26vw,680px);margin:0;font-size:clamp(24px,1.875vw,36px);line-height:1.5}.site-hero-caption{color:var(--site-muted);margin:13px 0 0;font-size:13px;line-height:1.7}.site-hero-bottom{border-top:1px solid var(--site-line);grid-template-columns:1fr auto;align-items:center;gap:24px;margin-top:37px;padding-top:18px;display:grid}.site-hero-bottom .site-hero-actions{justify-self:end}.site-hero-bottom>span{color:var(--site-muted);font-size:12px;line-height:1.7}.site-home-navigation{flex:none;justify-content:center;align-items:center;gap:12px;padding-block:16px 22px;display:flex}.site-scroll-cue{border:1px solid var(--site-line);background:var(--site-bg);border-radius:28px;justify-content:center;align-items:center;gap:12px;min-height:40px;padding:9px 16px;font-size:11px;transition:color .3s,border-color .3s,background .3s,transform .45s cubic-bezier(.2,.8,.3,1);display:inline-flex;color:var(--site-muted)!important}.site-scroll-cue svg{transition:transform .45s cubic-bezier(.2,.8,.3,1)}.site-scroll-cue:hover{border-color:var(--site-accent);background:var(--site-surface);transform:translateY(-1px);color:var(--site-accent)!important}.site-scroll-cue:focus-visible{outline:2px solid var(--site-accent);outline-offset:4px}.site-scroll-cue[data-direction=down]:hover svg{transform:translateY(3px)}.site-scroll-cue[data-direction=up]:hover svg{transform:translateY(-3px)}.site-hero-actions{flex-wrap:wrap;align-items:center;gap:25px;display:flex}.site-primary-link{background:var(--site-ink);border-radius:var(--site-radius);align-items:center;gap:17px;min-height:46px;padding:0 19px;font-size:13px;font-weight:650;transition:transform .22s,background .22s;display:inline-flex;color:var(--site-bg)!important}.site-primary-link:hover{background:var(--site-accent);transform:translateY(-2px)}.site-primary-link span{font-size:18px;line-height:1}.site-avatar{background:var(--site-surface);color:var(--site-accent);border:1px solid var(--site-line);flex:none;place-items:center;display:inline-grid;position:relative;overflow:hidden}.site-avatar-circle{border-radius:50%}.site-avatar-rounded{border-radius:18%}.site-avatar-square{border-radius:2px}.site-avatar img{object-fit:cover;width:100%;height:100%}.site-avatar-fallback{letter-spacing:-.08em;font-size:1.8em;font-weight:750}.site-hero-avatar{transition:transform .26s}.site-hero-avatar:hover{transform:rotate(-5deg)scale(1.045)}.site-home-about-strip{border-block:1px solid var(--site-line);background:var(--site-surface)}.site-home-about-inner{grid-template-columns:minmax(90px,.18fr) minmax(0,1fr) auto;align-items:center;gap:28px;padding-block:20px;display:grid}.site-home-about-inner h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:14px;font-weight:650}.site-home-about-inner p{color:var(--site-muted);margin:0 0 6px;font-size:13px}.site-home-about-inner ul{flex-wrap:wrap;gap:5px 16px;margin:0;padding:0;list-style:none;display:flex}.site-home-about-inner li{color:var(--site-muted);font-size:12px}.site-chips{flex-wrap:wrap;gap:8px;margin:0 0 34px;padding:0;list-style:none;display:flex}.site-chip{color:var(--site-muted);border:1px solid var(--site-line);border-radius:4px;padding:7px 11px;font-size:12px}.site-project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 38px;display:grid}.site-home-project-list{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:0 54px}.site-project-card{border-top:1px solid var(--site-line);min-width:0;padding-top:16px;transition:border-color .25s;display:block}.site-project-card:hover{border-color:var(--site-accent)}.site-project-card-title{transition:color .22s}.site-project-card:hover .site-project-card-title{color:var(--site-accent)}.site-home-project-list .site-project-card-featured{border-top:0;grid-row:span 2;padding-top:0}.site-project-card-compact{border-bottom:1px solid var(--site-line);padding-block:25px 27px}.site-project-card-compact .site-project-card-visual{display:none}.site-project-card-compact .site-project-card-title{margin:13px 0 8px;font-size:clamp(22px,2.25vw,27px)}.site-project-card-compact .site-project-card-description{margin-bottom:0;font-size:13px}.site-project-card-compact .site-stack{margin-top:16px}.site-project-card-featured .site-project-card-title{font-size:clamp(30px,3.15vw,43px)}.site-project-card-featured .site-project-card-description{font-size:15px}.site-project-card:hover .site-card-arrow,.site-post-row:hover .site-card-arrow,.site-portal-row:hover .site-card-arrow{color:var(--site-accent);transform:translate(4px,-4px)}.site-project-card-visual{aspect-ratio:1.72;background:var(--site-surface);border-radius:4px;margin:16px 0 24px;display:block;position:relative;overflow:hidden}.site-project-card-visual img{object-fit:cover;opacity:0;width:100%;height:100%;transition:transform .7s;animation:.65s forwards site-image-in;display:block;position:absolute;inset:0;transform:scale(1.025)}.site-project-card:hover .site-project-card-visual img{transform:scale(1.065)}@keyframes site-image-in{to{opacity:1}}.site-project-card-meta,.site-post-meta,.site-detail-meta{color:var(--site-muted);letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex}.site-meta-separator{background:var(--site-muted);border-radius:50%;width:3px;height:3px}.site-project-card-title{letter-spacing:-.035em;justify-content:space-between;align-items:baseline;gap:16px;margin:16px 0 9px;font-size:clamp(22px,2.5vw,32px);font-weight:610;line-height:1.25;display:flex}.site-card-arrow{font-size:18px;font-weight:400;transition:transform .2s,color .2s}.site-project-card-description{max-width:560px;color:var(--site-muted);margin:0 0 18px;font-size:14px;line-height:1.75}.site-stack{color:var(--site-muted);flex-wrap:wrap;gap:6px 13px;font-size:11px;display:flex}.site-stack span+span:before{content:"/";color:var(--site-line);margin-right:13px}.site-post-list{border-top:1px solid var(--site-line)}.site-post-row{border-bottom:1px solid var(--site-line);grid-template-columns:125px minmax(0,1fr) auto;align-items:start;gap:28px;padding-block:27px;display:grid}.site-post-date{color:var(--site-muted);padding-top:8px;font-size:12px}.site-post-row h3{letter-spacing:-.025em;margin:0 0 9px;font-size:clamp(19px,2vw,26px);font-weight:590;line-height:1.45}.site-post-row p{color:var(--site-muted);margin:0 0 10px;font-size:13px;line-height:1.7}.site-post-row .site-card-arrow{padding-top:6px}.site-empty{border-top:1px solid var(--site-line);color:var(--site-muted);padding:28px 0 0;font-size:14px;line-height:1.85}.site-empty strong{color:var(--site-ink);margin-bottom:5px;font-size:17px;font-weight:590;display:block}.site-github-strip{border-top:1px solid var(--site-line);justify-content:space-between;align-items:center;gap:30px;padding-top:23px;display:flex}.site-github-strip p{color:var(--site-muted);max-width:560px;margin:0;font-size:13px;line-height:1.8}.site-github-handle{letter-spacing:-.04em;align-items:center;gap:15px;font-size:clamp(22px,2.8vw,34px);font-weight:620;display:inline-flex}.site-github-handle span{font-size:16px;font-weight:400}.site-github-handle:hover{color:var(--site-accent)}.site-home-github{padding-block:76px}.site-home-github .site-section-head{margin-bottom:26px}.site-home-projects{min-height:calc(var(--site-viewport-height) - var(--site-header-height));padding-block:clamp(42px,6vh,62px) clamp(48px,6vh,72px)}.site-home-project-list .site-project-card-visual{aspect-ratio:2.1}.site-home-projects .site-section-head{margin-bottom:27px}.site-home-projects .site-section-title{font-size:46px}.site-home-portal{border-top:1px solid var(--site-line)}.site-home-portal-inner{justify-content:space-between;align-items:center;gap:25px;padding-block:30px;display:flex}.site-home-portal h2{margin:0;font-size:16px;font-weight:650}.site-home-portal p{color:var(--site-muted);margin:5px 0 0;font-size:12px}.site-page-intro{max-width:820px;padding-block:74px 59px}.site-page-intro .site-page-title{margin-top:0}.site-page-intro .site-kicker~.site-page-title{margin-top:16px}.site-page-intro .site-page-subtitle{max-width:620px;margin-top:12px}.site-page-intro-tight{padding-bottom:42px}.site-page-content{padding-bottom:100px}.site-project-spotlight{border-top:1px solid var(--site-line);padding-top:25px}.site-project-spotlight .site-project-card-featured{border:0;grid-template-rows:min-content min-content min-content 1fr;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-content:center;gap:0 55px;padding:0;display:grid}.site-project-spotlight .site-project-card-visual{aspect-ratio:1.55;grid-area:1/2/span 4;align-self:stretch;margin:0}.site-project-spotlight .site-project-card-title{grid-area:2/1;margin-top:26px;font-size:clamp(37px,4.5vw,62px)}.site-project-spotlight .site-project-card-description{grid-area:3/1;max-width:400px;font-size:16px}.site-project-spotlight .site-stack{grid-area:4/1;align-self:end;padding-bottom:8px}.site-project-spotlight .site-project-card-featured[data-has-cover=false]{max-width:690px;display:block}.site-project-more{margin-top:70px}.site-list-heading{margin:0 0 22px;font-size:17px;font-weight:650;line-height:1.4}.site-filter-label{color:var(--site-muted);margin:0 0 22px;font-size:12px}.site-post-filters{border-bottom:1px solid var(--site-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;margin-bottom:30px;padding-bottom:20px;display:flex}.site-filter-categories{flex-wrap:wrap;gap:4px;display:flex}.site-filter-categories button{color:var(--site-muted);background:0 0;border:0;border-radius:4px;padding:8px 11px;font-size:12px;transition:color .16s,background .16s}.site-filter-categories button:hover{color:var(--site-ink)}.site-filter-categories button[aria-pressed=true]{background:var(--site-surface);color:var(--site-ink)}.site-filter-tag{color:var(--site-muted);align-items:center;gap:9px;font-size:12px;display:inline-flex}.site-filter-tag select{border:1px solid var(--site-line);background:var(--site-bg);color:var(--site-ink);border-radius:4px;max-width:170px;padding:7px 20px 7px 9px}.site-detail-header{max-width:920px;padding-block:90px 54px}.site-project-detail-meta{margin-top:30px}.site-project-detail-actions{margin-top:29px}.site-project-detail-stack{margin-top:28px}.site-project-detail-tags{margin:0 0 70px}.site-detail-title{letter-spacing:-.055em;margin:20px 0;font-size:clamp(42px,6vw,78px);font-weight:640;line-height:1.12}.site-detail-lead{max-width:720px;color:var(--site-muted);margin:0 0 24px;font-size:clamp(17px,2vw,22px);line-height:1.75}.site-back-link{align-items:center;gap:7px;font-size:12px;display:inline-flex;color:var(--site-muted)!important}.site-back-link:hover{color:var(--site-ink)!important}.site-detail-cover{aspect-ratio:1.9;object-fit:cover;border-radius:var(--site-radius);background:var(--site-surface);width:100%;max-height:680px;margin:4px 0 68px}.site-reading-layout{grid-template-columns:minmax(0,780px) minmax(160px,210px);justify-content:space-between;gap:70px;max-width:1220px;padding-bottom:110px;display:grid}.site-reading-layout.no-toc{grid-template-columns:minmax(0,780px)}.site-toc{border-left:1px solid var(--site-line);align-self:start;padding-left:20px;position:sticky;top:110px}.site-toc-title{color:var(--site-muted);letter-spacing:.08em;margin-bottom:16px;font-size:11px;display:block}.site-toc a{color:var(--site-muted);margin:0 0 13px;font-size:12px;line-height:1.5;transition:color .18s,transform .18s;display:block}.site-toc a:hover{color:var(--site-ink);transform:translate(3px)}.site-toc a[data-level="3"]{padding-left:12px}.site-detail-tags{border-top:1px solid var(--site-line);flex-wrap:wrap;gap:8px;margin-top:44px;padding-top:34px;display:flex}.site-detail-pagination{border-top:1px solid var(--site-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;padding-block:28px 100px;display:grid}.site-detail-pagination a{padding-block:12px;display:block}.site-detail-pagination a:last-child{text-align:right}.site-detail-pagination span{color:var(--site-muted);margin-bottom:8px;font-size:11px;display:block}.site-detail-pagination strong{font-size:18px;font-weight:600;line-height:1.4}.site-detail-pagination a:hover strong{color:var(--site-accent)}.site-about-intro{max-width:none}.site-about-identity{justify-content:space-between;align-items:center;gap:30px;max-width:860px;display:flex}.site-about-name{color:var(--site-muted);margin:13px 0 0;font-size:13px}.site-about-lead{letter-spacing:-.038em;max-width:850px;margin:0 0 62px;font-size:clamp(25px,3.2vw,39px);font-weight:540;line-height:1.58}.site-about-grid{border-top:1px solid var(--site-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:50px;padding-block:24px 60px;display:grid}.site-about-grid h2{margin:0 0 18px;font-size:14px;font-weight:650}.site-about-list{color:var(--site-muted);flex-wrap:wrap;gap:9px 24px;margin:0;padding:0;font-size:14px;line-height:1.8;list-style:none;display:flex}.site-about-contact{border-top:1px solid var(--site-line);padding-top:26px}.site-portal-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;display:grid}.site-portal-grid{border-top:1px solid var(--site-line);grid-template-columns:1fr;display:grid}.site-portal-row{border-bottom:1px solid var(--site-line);align-items:center;gap:15px;min-height:86px;display:flex}.site-portal-row>span:last-child{margin-left:auto}.site-portal-row-copy{min-width:0}.site-portal-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:590;display:block;overflow:hidden}.site-portal-row small{text-overflow:ellipsis;white-space:nowrap;color:var(--site-muted);margin-top:5px;font-size:11px;display:block;overflow:hidden}.site-portal-more{margin-top:22px}.site-api-intro{max-width:900px}.site-api-actions{margin-top:32px}.site-api-section{padding-bottom:84px}.site-api-list{border-top:1px solid var(--site-line)}.site-api-row{border-bottom:1px solid var(--site-line);grid-template-columns:minmax(170px,.3fr) minmax(0,1fr);gap:28px;padding:25px 0;display:grid}.site-api-row strong{font-size:17px;font-weight:620;display:block}.site-api-row>div:first-child span{color:var(--site-muted);margin-top:6px;font-size:12px;display:block}.site-api-endpoints{flex-direction:column;gap:10px;min-width:0;display:flex}.site-api-endpoints a{color:var(--site-ink);justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.site-api-endpoints a:hover{color:var(--site-accent)}.site-api-endpoints code{overflow-wrap:anywhere;line-height:1.6}.site-api-endpoints a span{color:var(--site-muted);flex:none;font-size:11px}.site-api-note{max-width:700px;color:var(--site-muted);margin:22px 0 0;font-size:12px;line-height:1.8}.site-github-profile{align-items:center;gap:19px;margin:32px 0 0;display:flex}.site-github-profile strong{font-size:19px;font-weight:620;display:block}.site-github-profile span{color:var(--site-muted);margin-top:4px;font-size:12px;display:block}.site-github-stats{border-bottom:1px solid var(--site-line);gap:clamp(30px,6vw,100px);padding:38px 0 47px;display:flex}.site-github-stats strong{letter-spacing:-.05em;font-size:clamp(30px,3.7vw,48px);font-weight:620;display:block}.site-github-stats span{color:var(--site-muted);font-size:12px}.site-heatmap-scroll{padding-bottom:7px;overflow-x:auto}.site-heatmap{grid-template-rows:repeat(7,10px);grid-auto-flow:column;gap:4px;width:max-content;display:grid}.site-heatmap-cell{background:var(--site-surface);border-radius:2px;width:10px;height:10px}.site-heatmap-cell[data-level="1"]{background:var(--site-accent);opacity:.28}.site-heatmap-cell[data-level="2"]{background:var(--site-accent);opacity:.48}.site-heatmap-cell[data-level="3"]{background:var(--site-accent);opacity:.72}.site-heatmap-cell[data-level="4"]{background:var(--site-accent)}@supports (color:color-mix(in srgb, black, white)){.site-header{background:color-mix(in srgb, var(--site-bg) 94%, transparent)}.site-status-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--site-accent) 13%, transparent)}.site-scroll-cue{border-color:color-mix(in srgb, var(--site-line) 84%, transparent);background:color-mix(in srgb, var(--site-bg) 45%, transparent)}.site-scroll-cue:hover{border-color:color-mix(in srgb, var(--site-accent) 65%, transparent);background:color-mix(in srgb, var(--site-accent) 6%, var(--site-bg))}.site-home-about-strip{background:color-mix(in srgb, var(--site-surface) 32%, transparent)}.site-project-card:hover{border-color:color-mix(in srgb, var(--site-accent) 65%, var(--site-line))}.site-heatmap-cell[data-level="1"]{background:color-mix(in srgb, var(--site-accent) 28%, var(--site-surface));opacity:1}.site-heatmap-cell[data-level="2"]{background:color-mix(in srgb, var(--site-accent) 48%, var(--site-surface));opacity:1}.site-heatmap-cell[data-level="3"]{background:color-mix(in srgb, var(--site-accent) 72%, var(--site-surface));opacity:1}}.site-heatmap-legend{color:var(--site-muted);align-items:center;gap:4px;margin-top:15px;font-size:11px;display:flex}.site-heatmap-legend .site-heatmap-cell:first-child{margin-left:auto}.site-repo-list{border-top:1px solid var(--site-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px;display:grid}.site-repo{border-bottom:1px solid var(--site-line);padding:23px 0 24px;display:block}.site-repo strong{font-size:16px;font-weight:620;display:block}.site-repo p{color:var(--site-muted);min-height:38px;margin:9px 0 16px;font-size:12px;line-height:1.6}.site-repo-meta{color:var(--site-muted);gap:15px;font-size:11px;display:flex}.site-repo:hover strong{color:var(--site-accent)}.site-footer{border-top:1px solid var(--site-line);background:var(--site-surface)}.site-footer-inner{justify-content:space-between;gap:35px;padding-block:45px 50px;display:flex}.site-footer-brand{letter-spacing:-.03em;font-size:22px;font-weight:680}.site-footer-inner p{color:var(--site-muted);margin:10px 0 0;font-size:13px}.site-footer-links{flex-wrap:wrap;align-items:flex-start;gap:14px 27px;max-width:390px;display:flex}.site-footer-links a{color:var(--site-muted);font-size:12px;transition:color .18s}.site-footer-links a:hover{color:var(--site-ink)}.site-footer-bottom{border-top:1px solid var(--site-line);color:var(--site-muted);justify-content:space-between;gap:20px;padding-block:16px;font-size:11px;display:flex}.site-footer-bottom a:hover{color:var(--site-ink)}.site-loading-page{min-height:65vh;padding-block:100px}.site-skeleton{background:var(--site-surface);border-radius:3px;height:15px;animation:1.5s ease-in-out infinite alternate site-pulse}@keyframes site-pulse{to{opacity:.44}}.site-reveal{opacity:0;transition:opacity .7s,transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(18px)}.site-reveal.is-visible{opacity:1;transform:translateY(0)}.site-section-title,.site-page-title,.site-detail-title,.site-hero-lead,.site-section-description,.site-page-subtitle,.site-detail-lead,.site-project-card-title,.site-project-card-description,.site-post-row,.site-stack,.site-toc a,.site-repo,.site-footer{overflow-wrap:anywhere}.site-card-arrow{flex-shrink:0}@media (min-width:951px){.site-home-project-list .site-project-card-visual{max-height:clamp(150px,30vh,320px)}.site-home-project-list .site-project-card-featured .site-project-card-title{font-size:clamp(30px,3vw,40px)}.site-home-project-list .site-project-card-compact{padding-block:17px 19px}}@media (max-width:950px){.site-desktop-nav{gap:18px}.site-header-inner{gap:20px}.site-hero-main{grid-template-columns:1fr;gap:18px}.site-hero h1{font-size:clamp(60px,9vw,86px)}.site-hero-lead{max-width:650px;font-size:23px}.site-home-projects .site-section-title{font-size:40px}.site-home-project-list{gap:0 32px}.site-project-spotlight .site-project-card-featured{gap:0 30px}.site-reading-layout{grid-template-columns:minmax(0,1fr);gap:20px;max-width:780px}.site-toc{border-left:0;border-top:1px solid var(--site-line);grid-row:1;margin-bottom:24px;padding:18px 0 0;position:static}.site-toc a{margin-right:18px;display:inline-block}}@media (max-width:1120px) and (min-width:951px){.site-hero h1{font-size:96px}.site-hero-lead{max-width:380px;font-size:24px}.site-home-projects .site-section-title{font-size:42px}}@media (max-width:700px){html.site-home-document{scroll-padding-top:62px}.site-shell{--site-header-height:62px}.site-desktop-nav{display:none}.site-header-inner{justify-content:space-between}.site-menu-toggle{border:1px solid var(--site-line);background:var(--site-surface);width:42px;height:42px;color:var(--site-ink);cursor:pointer;border-radius:8px;flex-direction:column;flex:0 0 42px;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex}.site-menu-toggle span{background:currentColor;border-radius:1px;width:22px;height:2px;transition:transform .2s;display:block}.site-menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px)rotate(45deg)}.site-menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px)rotate(-45deg)}.site-mobile-menu{inset:var(--site-header-height) 0 auto;max-height:calc(var(--site-viewport-height) - var(--site-header-height));overscroll-behavior:contain;background:var(--site-bg);border-bottom:1px solid var(--site-line);opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;display:block;position:absolute;overflow-y:auto;transform:translateY(-8px)}.site-mobile-menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}.site-mobile-menu-inner{padding-block:16px 24px}.site-mobile-menu a{border-bottom:1px solid var(--site-line);align-items:center;gap:16px;min-height:54px;font-size:19px;font-weight:570;display:flex}.site-hero{padding-block:32px 12px}.site-hero-avatar{width:65px!important;height:65px!important}.site-hero-main{grid-template-columns:1fr;align-content:center;gap:16px}.site-hero h1{font-size:clamp(52px,12vw,76px)}.site-hero-lead{max-width:340px;font-size:22px}.site-hero-caption{margin-top:10px}.site-hero-bottom{grid-template-columns:1fr;gap:16px;margin-top:28px}.site-hero-bottom>span{grid-column:1/-1}.site-hero-bottom .site-hero-actions{justify-self:start;gap:18px}.site-home-navigation{padding-block:18px 22px}.site-scroll-cue{padding:8px 12px}.site-home-about-inner{grid-template-columns:minmax(0,1fr) auto;gap:13px 18px;padding-block:19px}.site-home-about-inner>div{grid-area:2/1/auto/-1}.site-home-about-inner .site-text-link{white-space:normal;text-align:right;overflow-wrap:anywhere;grid-area:1/2;justify-self:end;max-width:140px}.site-home-about-inner ul{gap:5px 12px}.site-section{padding-block:62px}.site-home-projects{padding-block:72px 62px}.site-home-projects .site-section-title{font-size:35px}.site-section-head{flex-direction:column;align-items:start;gap:18px;margin-bottom:28px}.site-project-list,.site-home-project-list,.site-portal-grid,.site-repo-list,.site-about-grid{grid-template-columns:1fr}.site-project-list{gap:0}.site-home-project-list .site-project-card-featured{grid-row:auto;margin-bottom:23px}.site-home-project-list .site-project-card-visual{aspect-ratio:1.72}.site-project-spotlight .site-project-card-featured{display:block}.site-project-spotlight .site-project-card-visual{aspect-ratio:1.45;margin:17px 0 24px}.site-project-spotlight .site-project-card-title{margin:16px 0 9px;font-size:35px}.site-project-more{margin-top:53px}.site-portal-columns{grid-template-columns:1fr;gap:49px}.site-post-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 15px;padding-block:23px}.site-post-date{grid-column:1/-1;padding-top:0}.site-page-intro{padding-block:54px 38px}.site-page-content{padding-bottom:75px}.site-detail-header{padding-block:62px 38px}.site-detail-title{font-size:clamp(41px,10vw,62px)}.site-detail-cover{aspect-ratio:1.3;margin-bottom:45px}.site-reading-layout{padding-bottom:65px}.site-detail-pagination{gap:17px;padding-bottom:70px}.site-detail-pagination strong{font-size:15px}.site-about-lead{margin-bottom:50px}.site-about-grid{gap:25px;padding-bottom:48px}.site-portal-row{min-height:82px}.site-api-row{grid-template-columns:1fr;gap:16px}.site-api-section{padding-bottom:65px}.site-github-stats{justify-content:space-between;gap:23px}.site-footer-inner{padding-block:40px 45px;display:block}.site-footer-links{margin-top:24px}}@media (max-width:360px){.site-hero-lead{font-size:18px}}@media (prefers-reduced-motion:reduce){.site-shell *,.site-shell :before,.site-shell :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.site-reveal{opacity:1;transform:none}}@media (scripting:none){.site-reveal{opacity:1;transform:none}}
