:root{color-scheme:light;--bg: #f8f4ec;--surface: rgba(255, 252, 245, .68);--surface-strong: rgba(255, 252, 245, .9);--text: #16181f;--muted: #686c78;--line: rgba(22, 24, 31, .12);--accent: #3868ff;--accent-2: #9b5cff;--accent-3: #00a8b8;--terminal: #0b0e16;--terminal-text: #eef3ff;--terminal-muted: #929bae;--max: 940px;--mono: "Roboto Mono", "JetBrainsMono Nerd Font", "JetBrains Mono", "FiraCode Nerd Font", "Fira Code", "CaskaydiaCove Nerd Font", "Cascadia Code", "SFMono-Regular", Consolas, monospace;font-family:var(--mono);font-size:14px}:root[data-theme=dark]{color-scheme:dark;--bg: #05070d;--surface: rgba(12, 15, 25, .58);--surface-strong: rgba(14, 18, 30, .9);--text: #edf2ff;--muted: #99a3b8;--line: rgba(237, 242, 255, .13);--accent: #82adff;--accent-2: #b893ff;--accent-3: #59e0e8;--terminal: #070911;--terminal-text: #f4f8ff;--terminal-muted: #9aa5ba}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg);color:var(--text);scroll-behavior:smooth}body{min-height:100vh;margin:0;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 23rem),radial-gradient(circle at 14% 78%,color-mix(in srgb,var(--accent-2) 12%,transparent),transparent 20rem),radial-gradient(circle at 90% 20%,color-mix(in srgb,var(--accent-3) 12%,transparent),transparent 21rem),var(--bg);font-family:var(--mono);font-size:14px;line-height:1.65}.home-page{height:100vh;overflow:hidden}a{color:inherit;text-decoration-color:color-mix(in srgb,var(--accent) 50%,transparent);text-underline-offset:.16em}a:hover{color:var(--accent)}.spacefield{--scroll: 0px;position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;transform:translateY(calc(var(--scroll) * -.12))}.spacefield:before{position:absolute;inset:0;content:"";background:linear-gradient(rgba(120,140,190,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(120,140,190,.045) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at center,black,transparent 74%)}.spacefield span{position:absolute;left:var(--x);top:var(--y);width:var(--l);height:1px;border-radius:999px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 86%,white),transparent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 70%,transparent);opacity:var(--o);animation:star-drift 13s linear infinite;animation-delay:var(--d)}.home-page .spacefield span{left:50%;top:50%;width:var(--l);animation:warp 8.5s linear infinite;animation-delay:var(--d)}.site-shell{width:min(100% - 32px,var(--max));margin:0 auto}.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface-strong) 58%,transparent);backdrop-filter:blur(18px) saturate(1.25);font-size:14px}.home-page .site-header{position:relative}.nav{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;text-decoration:none}.brand:hover,.brand-mark{color:var(--accent)}.nav-links,.icon-row{display:flex;align-items:center;flex-wrap:wrap;gap:18px}.nav-links a,.theme-toggle,.button{border:0;padding:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;text-decoration:none}.nav-links a:hover,.nav-links a[aria-current=page],.button:hover{color:var(--accent);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.08em}.theme-toggle{display:inline-grid;width:42px;height:22px;place-items:center;border-radius:999px;line-height:1;cursor:pointer;transition:color .18s ease}.theme-toggle:hover,.theme-toggle:focus-visible{color:var(--accent);outline:none}.theme-toggle-track{position:relative;display:block;width:42px;height:22px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 72%,transparent);transition:border-color .18s ease,background-color .18s ease}.theme-toggle:hover .theme-toggle-track,.theme-toggle:focus-visible .theme-toggle-track{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--surface-strong) 88%,transparent)}.theme-toggle-thumb{position:absolute;top:2px;left:2px;display:grid;width:16px;height:16px;place-items:center;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:999px;background:#fff;color:#16181f;box-shadow:0 1px 6px #00000024;transition:transform .18s ease}:root[data-theme=dark] .theme-toggle-thumb{transform:translate(20px);border-color:color-mix(in srgb,var(--line) 80%,transparent);background:#05070d;color:#edf2ff;box-shadow:0 1px 8px #0000006b}.theme-icon{grid-area:1 / 1;display:grid;place-items:center;transition:opacity .14s ease}.theme-icon-dark,:root[data-theme=dark] .theme-icon-light{opacity:0}:root[data-theme=dark] .theme-icon-dark{opacity:1}.theme-toggle svg,.lucide-icon{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.theme-toggle .lucide-icon{width:12px;height:12px}.icon-link{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:5px;color:color-mix(in srgb,var(--line) 80%,var(--muted));text-decoration:none;transition:background-color .18s ease,color .18s ease}.icon-link:hover{background:color-mix(in srgb,var(--line) 68%,transparent);color:var(--accent)}.site-footer .icon-link{color:var(--muted)}.page-main{flex:1;padding:54px 0 80px}.home-page .page-main{display:grid;height:calc(100vh - 116px);padding:0;place-items:center}.home-hero{display:grid;width:100%;place-items:center;text-align:center}.hero-copy{display:grid;justify-items:center;gap:18px}h1,h2,h3,p{margin:0}h1{color:var(--text);font-size:18px;font-weight:700;line-height:1.35}.home-page h1{font-size:16px;white-space:nowrap}h2{color:var(--accent);font-size:16px;font-weight:700;line-height:1.45}h3{color:var(--text);font-size:14px;font-weight:700;line-height:1.5}.terminal-card{width:min(100%,644px);aspect-ratio:4 / 3;display:flex;flex-direction:column;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--terminal) 72%,transparent);box-shadow:0 0 40px color-mix(in srgb,var(--accent) 16%,transparent),0 24px 80px #00000038;backdrop-filter:blur(18px) saturate(1.2);text-align:left}.terminal-bar{position:relative;display:flex;min-height:34px;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.08);background:color-mix(in srgb,#2a2d39 78%,transparent);color:color-mix(in srgb,var(--terminal-text) 86%,var(--terminal-muted));font-size:14px;font-weight:600}.terminal-dots{position:absolute;left:14px;display:flex;gap:8px}.terminal-dots span{width:12px;height:12px;border-radius:999px}.terminal-dots span:nth-child(1){background:#ff6259}.terminal-dots span:nth-child(2){background:#ffbd2e}.terminal-dots span:nth-child(3){background:#27c93f}.terminal-body{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;padding:16px 9px;background:color-mix(in srgb,var(--terminal) 70%,transparent);color:var(--terminal-text);font-size:14px;line-height:1.34}.terminal-session{display:grid;gap:1px;min-width:0}.terminal-line{width:100%;max-width:100%;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}.prompt-path{color:#5fc7ff;font-weight:700}.prompt-branch{color:var(--terminal-muted)}.prompt-arrow,.terminal-command{color:#7ee787}.prompt-mark{color:#ff79c6;font-weight:700}.terminal-command{font-weight:700}.terminal-facts{display:grid;gap:0;margin-top:8px}.terminal-fact{display:grid;grid-template-columns:9ch minmax(0,1fr);column-gap:1ch;align-items:start;width:100%;min-width:0}.fact-key{color:#ffdf6e;font-weight:700;white-space:pre}.fact-value{color:color-mix(in srgb,var(--terminal-text) 72%,var(--terminal-muted));min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.final-prompt{margin-top:5px}.cursor-block{display:inline-block;width:8px;height:1.1em;margin-left:4px;transform:translateY(.17em);background:var(--terminal-text);animation:cursor-blink 1s steps(1,end) infinite}.site-footer{padding:24px 0;color:var(--muted);font-size:14px}.home-page .site-footer{padding:0 0 28px}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.home-page .footer-inner{justify-content:center}.home-page .footer-inner>span{display:none}.page-title{max-width:760px}.compact-title h1{margin-bottom:28px}.about-top{max-width:100%}.profile-section{color:var(--muted);font-size:16px;text-align:left}.profile-section p+p{margin-top:14px}.interests-box,.panel{border:1px solid var(--line);border-radius:6px;padding:12px;background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:blur(16px) saturate(1.2)}.interests-box{margin-top:28px}.section{margin-top:54px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.timeline{margin-top:16px}.detail-open body{overflow:hidden}.timeline-item{display:grid;grid-template-columns:48px 230px minmax(0,1fr) 38px;gap:18px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.timeline-icon{display:grid;width:40px;height:40px;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:8px;background:#fff;color:#fff;font-size:18px;text-decoration:none;transition:border-color .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease-in-out}.timeline-icon .lucide-icon{width:20px;height:20px}.timeline-icon img{display:block;width:72%;height:72%;border-radius:4px;object-fit:contain}.mini-action .lucide-icon,.detail-close .lucide-icon{width:18px;height:18px}.timeline-icon:hover,.timeline-icon:focus-visible{border-color:color-mix(in srgb,#fff 78%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,#fff 34%,transparent),0 8px 24px color-mix(in srgb,#fff 28%,transparent);transform:translateY(-1px);outline:none}.timeline-main p,.timeline-main span,.timeline-note{color:var(--muted)}.timeline-note{text-align:left}.timeline-actions{display:grid;justify-items:end;gap:8px}.mini-action{position:relative;display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:15px;text-decoration:none;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.mini-action:hover,.mini-action:focus{background:color-mix(in srgb,var(--line) 62%,transparent);border-color:color-mix(in srgb,var(--line) 70%,transparent);color:var(--accent);outline:none}.action-symbol{position:relative;z-index:1}.action-tooltip{position:absolute;right:calc(100% + 8px);top:50%;z-index:3;width:max-content;max-width:150px;transform:translateY(-50%);border:1px solid var(--line);border-radius:5px;padding:3px 6px;background:color-mix(in srgb,var(--surface-strong) 84%,transparent);color:var(--muted);font-size:12px;opacity:0;pointer-events:none;transition:opacity .18s ease}.mini-action:hover .action-tooltip,.mini-action:focus-visible .action-tooltip{opacity:1}.story-action{overflow:visible}.story-action:before{content:none}.story-action:after{content:none}.story-action:hover,.story-action:focus-visible{border-color:color-mix(in srgb,var(--accent-3) 72%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-3) 52%,transparent),0 0 12px color-mix(in srgb,var(--accent-3) 18%,transparent)}.tag-list{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 0;padding:0;list-style:none}.tag-list li,.meta-pill{border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:color-mix(in srgb,var(--surface-strong) 70%,transparent);color:var(--muted);font-size:14px;line-height:1.35}.tag-list li{transition:border-color .18s ease,box-shadow .18s ease,color .18s ease}.tag-list li:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:0 0 18px color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.dense-tags li:hover{color:var(--accent)}.dense-tags li:nth-child(3n+2):hover{color:var(--accent-2)}.dense-tags li:nth-child(3n+3):hover{color:var(--accent-3)}.category-filter-list li{padding:0}.tag-button{display:block;width:100%;border:0;border-radius:3px;padding:3px 6px;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer}.tag-button:hover,.tag-button:focus-visible{color:var(--accent);outline:none}.tag-button[aria-pressed=true]{color:var(--accent);font-weight:700}.tag-button[aria-pressed=false]{color:var(--muted);font-weight:400}.category-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.clear-filter{border:0;border-bottom:1px solid transparent;padding:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.clear-filter:hover,.clear-filter:focus-visible{border-bottom-color:var(--accent);color:var(--accent);outline:none}.dense-tags li:nth-child(3n+1){border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.dense-tags li:nth-child(3n+2){border-color:color-mix(in srgb,var(--accent-2) 42%,var(--line))}.dense-tags li:nth-child(3n+3){border-color:color-mix(in srgb,var(--accent-3) 42%,var(--line))}.blog-tools{display:grid;grid-template-columns:minmax(180px,1fr);gap:10px;margin-top:26px}.blog-tools label{display:grid;gap:5px;color:var(--muted)}.blog-tools input{width:100%;border:1px solid var(--line);border-radius:5px;padding:7px 8px;background:var(--surface);color:var(--text);font:inherit}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px;align-items:start;margin-top:30px}.post-list,.publication-list{display:grid;gap:0}.post-card,.publication{display:block;padding:16px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.blog-item.is-filtered-out{display:none}.publication{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:14px;align-items:start}.publication-link{justify-self:end}.contact-section{max-width:100%}.contact-section p{margin-top:12px;color:var(--muted);text-align:left}.contact-section a,.post-card:hover h3{color:var(--accent)}.post-card p,.page-title p,.publication p,.publication span{color:var(--muted)}.post-meta,.article-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;color:var(--muted)}.pagination button{border:0;border-bottom:1px solid transparent;padding:0 0 1px;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.pagination button:not(:disabled):hover{border-bottom-color:var(--accent);color:var(--accent)}.pagination button:disabled{cursor:not-allowed;opacity:.45}.article{max-width:760px}.article-header{margin-bottom:28px}.article-meta{margin-top:14px}.prose{color:var(--text);font-size:14px}.prose p,.prose ul,.prose ol,.prose pre{margin:1.15em 0}.prose h2,.prose h3{margin-top:1.8em}.prose code{border:1px solid var(--line);border-radius:4px;padding:.1em .32em;background:var(--surface-strong)}.prose pre{overflow:auto;border:1px solid var(--line);border-radius:6px;padding:14px;background:#0d1117}.prose pre code{border:0;padding:0;background:transparent}.detail-overlay{position:fixed;inset:0;z-index:50;display:grid;justify-items:end}.detail-overlay[hidden],.detail-content[hidden]{display:none}.detail-backdrop{position:absolute;inset:0;border:0;background:#03050c61;backdrop-filter:blur(9px);cursor:default;opacity:1;transition:opacity .14s ease}.detail-drawer{position:relative;width:min(92vw,620px);height:100%;overflow-y:auto;border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg) 84%,transparent);box-shadow:-28px 0 80px #0000003d;backdrop-filter:blur(22px);animation:drawer-in .17s cubic-bezier(.2,.8,.2,1) both}.detail-overlay.is-closing .detail-drawer{animation:drawer-out .14s ease-in both}.detail-overlay.is-closing .detail-backdrop{opacity:0}.detail-close{position:absolute;top:18px;right:calc(min(92vw,620px) + 10px);z-index:2;display:grid;width:36px;height:36px;margin:0;place-items:center;border:0;border-radius:5px;background:color-mix(in srgb,var(--surface-strong) 92%,white 8%);color:var(--text);font:inherit;font-size:20px;line-height:1;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease,color .18s ease;box-shadow:0 4px 16px #00000024}.detail-close:hover,.detail-close:focus{background:color-mix(in srgb,var(--surface-strong) 82%,var(--text) 8%);color:var(--text);box-shadow:0 6px 22px #0000002e;outline:none}.detail-content{padding:18px 40px 56px;color:var(--muted)}.detail-kind{color:var(--accent)}.detail-heading{margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:16px}.detail-heading h2{margin:8px 0 0}.detail-meta{margin-top:8px;color:var(--muted);white-space:pre-line}.detail-content :is(h1,h2,h3,h4){color:var(--text)}.detail-content a{color:var(--accent)}@media(max-width:1024px){.home-page{min-height:100svh;height:auto;overflow:visible}.home-page .page-main{min-height:calc(100svh - 132px);height:auto;padding:20px 0;place-items:center}.terminal-card{aspect-ratio:auto;min-height:min-content}.terminal-body{min-height:auto}}@media(max-width:760px){.content-grid,.blog-tools{grid-template-columns:1fr}.nav{align-items:flex-start;flex-direction:column;padding:12px 0}.nav-links{width:100%;justify-content:flex-end;text-align:right}.footer-inner{align-items:center;flex-direction:column;justify-content:center;text-align:center}.site-footer .icon-row{justify-content:center}.content-grid>.panel{order:-1}.timeline-item{grid-template-columns:40px 1fr 34px}.timeline-note{grid-column:2 / -1}.timeline-actions{grid-column:3;grid-row:1}.home-page .page-main{min-height:calc(100svh - 176px);padding:18px 0}}@media(max-width:560px){.site-shell{width:min(100% - 24px,var(--max))}.detail-drawer{width:calc(100vw - 48px)}.detail-close{right:calc(100vw - 38px)}.detail-content{padding-inline:26px}.terminal-card{width:100%}.terminal-bar{min-height:32px;padding:0 72px}.terminal-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal-body{padding:12px 7px}.terminal-fact{grid-template-columns:9ch minmax(0,1fr)}.fact-value{overflow-wrap:anywhere;word-break:break-word}}@media(prefers-reduced-motion:no-preference){.icon-link,.post-card,.button,.nav-links a,.mini-action,.theme-toggle,.detail-close{transition:background-color .18s ease,color .18s ease,border-color .18s ease}}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes star-drift{0%{opacity:0;transform:translate3d(-12vw,0,0)}15%,70%{opacity:var(--o)}to{opacity:0;transform:translate3d(18vw,-5vh,0)}}@keyframes warp{0%{opacity:0;transform:translate3d(-4vw,0,0) scaleX(.1)}14%{opacity:var(--o)}to{opacity:0;transform:translate3d(calc((var(--x) - 50%) * 1.55),calc((var(--y) - 50%) * 1.55),0) scaleX(1.9)}}
