:root,[data-theme=dark]{--bg:#0d0d0d;--ink:#e8e8e8;--muted:#888;--link:#a8d8ea;--link-hover:#fff;--link-active:#fff;--border:#333}[data-theme=light]{--bg:#f5f5f5;--ink:#111;--muted:#666;--link:#0057b7;--link-hover:#003d80;--link-active:#003d80;--border:#ccc}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);scroll-behavior:smooth;font-family:Lato,sans-serif;font-size:14px}body{flex-direction:column;min-height:100vh;margin:0;display:flex}main{flex:1}.boot{background:var(--bg);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.boot-lines{color:var(--ink);white-space:pre;font-family:inherit;font-size:13px}.flash{z-index:9998;pointer-events:none;background:var(--ink);opacity:0;position:fixed;inset:0}.flash--go{animation:.11s steps(4,end) forwards flash-out}@keyframes flash-out{0%{opacity:1}to{opacity:0}}.reveal{z-index:9997;pointer-events:none;opacity:0;place-items:center;display:grid;position:fixed;inset:0}.reveal--go{opacity:1}.bar{background:var(--ink,#fff);width:2px;position:absolute;top:0;bottom:0}.bar-left{left:50%;transform:translate(-1px)}.bar-right{left:50%;transform:translate(1px)}.reveal--go .bar-left{animation:.3s steps(24,end) forwards bar-left-out}.reveal--go .bar-right{animation:.3s steps(24,end) forwards bar-right-out}@keyframes bar-left-out{to{transform:translate(calc(-50vw - 1px))}}@keyframes bar-right-out{to{transform:translate(calc(50vw + 1px))}}.wrap{max-width:72ch;margin-inline:auto;padding-block-start:2rem;padding-inline:1.5rem}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:100;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.tabs{gap:1.25rem;display:flex}.tab{color:var(--ink);opacity:.7;font-size:13px;text-decoration:none}.tab:hover{opacity:1;text-decoration:underline}.invert-btn{border:1px solid var(--ink);color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:2px 8px;font-size:12px}.invert-btn:hover{background:var(--ink);color:var(--bg)}.type-caret:after{content:"▋";animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.b-solid{border:1px solid var(--border)}.ticker{margin-block-start:2rem;overflow:hidden}.ticker-head{opacity:.5;border-bottom:1px solid var(--border);padding:4px 8px;font-size:11px}.ticker-viewport{overflow:hidden}.ticker-inner{width:max-content;animation:30s linear infinite ticker-scroll;display:flex}.ticker-inner:hover{animation-play-state:paused}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-track{white-space:nowrap;gap:.75rem;padding:6px 8px;display:flex}.ticker-track .item{font-size:13px}.ticker-track .sep{opacity:.4}.status-wrap{place-items:center;margin-block:clamp(2rem,6vh,8rem);display:grid}.status{border:2px solid var(--ink);background:var(--bg);color:var(--ink);white-space:nowrap;max-width:60ch;padding:8px 10px;font-size:12px;line-height:1.3;position:relative}.status .tag{font-weight:700}.status .muted{opacity:.75}.status .x{text-align:center;border:2px solid var(--ink);background:var(--bg);width:22px;height:22px;color:var(--ink);line-height:20px;font:inherit;cursor:pointer;position:absolute;top:-10px;right:-10px}.preview-section{margin-block-start:2.5rem}.preview-section h2{opacity:.6;margin-block-end:1rem;font-size:14px;font-weight:400}.carousel-viewport{overflow:hidden}.carousel-track{will-change:transform;transition:transform .5s cubic-bezier(.4,0,.2,1);display:flex}.carousel-slide{flex:0 0 100%;min-width:0}.project-card{flex-direction:column;gap:.5rem;display:flex}.project-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.project-name-row{align-items:baseline;gap:.5rem;display:flex}.project-subtitle{opacity:.5;font-size:12px}.project-langs{flex-shrink:0;gap:.4rem;display:flex}.lang-tag{border:1px solid var(--border);opacity:.7;padding:1px 6px;font-size:11px}.project-body{flex-direction:row;align-items:flex-start;gap:1rem;display:flex}.project-left{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.project-links{gap:1rem;margin-block-start:.5rem;font-size:12px;display:flex}.project-image{object-fit:cover;border:1px solid var(--border);flex-shrink:0;align-self:center;width:80px;height:54px}.see-more{text-align:right;margin-block-start:1rem;font-size:12px}.site-footer{text-align:center;opacity:.4;padding-block:2rem;font-size:11px}.version{font-size:10px}a,a:visited{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}a:active,a:focus-visible{color:var(--link-active);outline:2px solid var(--link-active);outline-offset:2px}.repo-title a,.card a{color:var(--link)}.repo-title a:hover,.card a:hover{color:var(--link-hover)}.cards{flex-direction:column;gap:1.25rem;margin-block-start:1.5rem;display:flex}.card{border:1px solid var(--border);padding:.75rem 1rem}.repo-title{margin-block-end:.25rem;font-weight:700}.repo-desc{color:var(--muted);margin-block-end:.4rem;font-size:13px}.repo-meta{opacity:.5;gap:1rem;font-size:11px;display:flex}.post-header{border-bottom:1px solid var(--border);margin-block-end:2rem;padding-block-end:1rem}.post-body{line-height:1.7}.post-body h2,.post-body h3{margin-block-start:2rem}.post-body pre{background:var(--border);padding:1rem;overflow-x:auto}.post-body code{font-family:inherit;font-size:.9em}.post-body :not(pre)>code{background:var(--border);padding:1px 4px}
