:root{--bg: #050505;--surface: #0f0f0f;--surface-raised: #161616;--border: #272727;--border-strong: #3d3d3d;--text: #f4f4f2;--text-muted: #9a9a96;--text-faint: #636360;--accent: #ffffff;--accent-strong: #ffffff;--accent-soft: rgba(255, 255, 255, 0.08);--secondary: #b7b7b3;--secondary-soft: rgba(255, 255, 255, 0.06);--danger: #d1483a;--shadow: rgba(0, 0, 0, 0.5);--gh-level-0: #161b22;--gh-level-1: #0e4429;--gh-level-2: #006d32;--gh-level-3: #26a641;--gh-level-4: #39d353;--gh-label: #7d8590;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-body: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sidebar-w: 300px;--rail-w: 280px;--gutter: clamp(1.25rem, 4vw, 3rem);--measure: 70ch;--radius: 0px;--ease: cubic-bezier(0.2, 0.6, 0.2, 1);--dur: 0.2s;color-scheme:dark}:root[data-theme=light]{--bg: #fbfbfa;--surface: #f0f0ee;--surface-raised: #f4f4f2;--border: #dcdcd8;--border-strong: #bcbcb6;--text: #111110;--text-muted: #55554f;--text-faint: #8a8a83;--accent: #000000;--accent-strong: #000000;--accent-soft: rgba(0, 0, 0, 0.06);--secondary: #434340;--secondary-soft: rgba(0, 0, 0, 0.06);--danger: #a5341f;--shadow: rgba(20, 20, 15, 0.1);--gh-level-0: #ebedf0;--gh-level-1: #9be9a8;--gh-level-2: #40c463;--gh-level-3: #30a14e;--gh-level-4: #216e39;--gh-label: #656d76;color-scheme:light}@media(prefers-reduced-motion: reduce){:root{--dur: 0ms}}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}img,picture{display:block;max-width:100%}.icon svg,.theme-toggle svg,.mobile-nav-toggle svg{display:inline-block;vertical-align:middle;width:1em;height:1em}a{color:inherit;text-decoration-color:var(--border-strong)}ul,ol{list-style:none;padding:0}button,input,textarea{font:inherit;color:inherit;background:none;border:none}button{cursor:pointer}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15;text-wrap:balance}.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--accent);color:var(--bg);padding:.6rem 1rem;border-radius:var(--radius);font-weight:600;z-index:1000;transition:top var(--dur) var(--ease)}.skip-link:focus{top:1rem}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.hero__eyebrow,.widget__eyebrow,.timeline__date,.pub-list__date,.oss-card__status,.pr-list__status,.post__date,time{font-family:var(--font-mono);letter-spacing:.02em}.hero__name{font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:-0.01em;line-height:1.02}.hero__name--small{font-size:clamp(2rem,5vw,3rem)}.section__title{font-size:clamp(1.35rem,2.4vw,1.7rem);margin-bottom:1.1rem}.shell{display:flex;min-height:100dvh}.content{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:clamp(2rem,5vh,3.5rem) var(--gutter) 4rem}.content>*{width:100%;max-width:820px}@media(max-width: 960px){.content{padding-top:5.5rem}}.sidebar{position:sticky;top:0;flex-shrink:0;width:var(--sidebar-w);height:100dvh;border-right:1px solid var(--border);background:var(--bg);z-index:40}.sidebar__scroll{height:100%;overflow-y:auto;padding:2.25rem 1.75rem 2rem;display:flex;flex-direction:column;gap:1.75rem;scrollbar-width:thin}.brand{display:block;text-decoration:none}.brand__name{display:block;font-family:var(--font-mono);font-weight:600;font-size:1.05rem;letter-spacing:-0.01em}.brand__handle{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:.15rem}.primary-nav ul{display:flex;flex-direction:column;gap:0}.primary-nav a{display:flex;align-items:baseline;gap:.6rem;padding:.3rem 0;font-family:var(--font-mono);font-size:.82rem;text-decoration:none;color:var(--text-muted);border-left:2px solid rgba(0,0,0,0);padding-left:.7rem;margin-left:-0.7rem;transition:color .1s linear,border-color .1s linear}.primary-nav a:hover{color:var(--text)}.primary-nav a.is-active{color:var(--text);border-left-color:var(--accent)}.sidebar__socials{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .9rem;padding-top:.9rem;border-top:1px solid var(--border)}.social-link{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);text-decoration:none;border-bottom:1px solid rgba(0,0,0,0);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.social-link:hover{color:var(--text);border-color:var(--border-strong)}.theme-toggle{margin-left:auto;color:var(--text-muted);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.theme-toggle:hover{color:var(--accent);background:var(--accent-soft)}.theme-toggle svg{width:15px;height:15px}.theme-toggle__icon--moon{display:none}:root[data-theme=light] .theme-toggle__icon--sun{display:none}:root[data-theme=light] .theme-toggle__icon--moon{display:block}.mobile-nav-toggle{display:none}.sidebar-backdrop{display:none}@media(max-width: 960px){.sidebar{position:fixed;inset:0 auto 0 0;height:100dvh;transform:translateX(-100%);transition:transform var(--dur) var(--ease);box-shadow:0 0 40px var(--shadow)}.sidebar.is-open{transform:translateX(0)}.mobile-nav-toggle{display:flex;align-items:center;gap:.5rem;position:fixed;top:.9rem;left:var(--gutter);z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .7rem;font-size:.78rem;color:var(--text)}.mobile-nav-toggle svg{width:15px;height:15px}.mobile-nav-toggle__icon-close{display:none}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-toggle__icon-open{display:none}.mobile-nav-toggle[aria-expanded=true] .mobile-nav-toggle__icon-close{display:block}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease);z-index:39}.sidebar-backdrop.is-visible{opacity:1;pointer-events:auto}}.widget{border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;transition:border-color var(--dur) var(--ease)}.widget:hover{border-color:var(--border-strong)}.widget__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.widget__title{font-family:var(--font-body);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.widget__eyebrow{font-family:var(--font-mono);font-size:.65rem;color:var(--text-faint)}.widget__action{color:var(--text-muted);font-size:.85rem;line-height:1;transition:color var(--dur) var(--ease),transform .3s var(--ease)}.widget__action:hover{color:var(--accent);transform:rotate(180deg)}.widget__body{font-size:.82rem;color:var(--text-muted);line-height:1.55}.widget--apod{padding:.85rem .85rem .95rem}.apod-card{display:block;text-decoration:none;color:inherit}.apod-card__frame{position:relative;aspect-ratio:16/10;background:var(--surface);overflow:hidden;border:1px solid var(--border)}.apod-card__image{width:100%;height:100%;object-fit:cover;filter:saturate(0.9);transition:filter var(--dur) var(--ease),transform .4s var(--ease)}.apod-card:hover .apod-card__image{filter:saturate(1);transform:scale(1.03)}.apod-card__placeholder{position:absolute;inset:0;background:repeating-linear-gradient(135deg, var(--surface), var(--surface) 8px, var(--surface-raised) 8px, var(--surface-raised) 16px)}.apod-card__body{padding:.65rem .75rem .75rem}.apod-card__title{font-family:var(--font-body);font-size:.82rem;font-weight:600;margin-bottom:.15rem}.apod-card__date{font-family:var(--font-mono);font-size:.65rem;color:var(--accent);margin-bottom:.3rem}.apod-card__desc{font-size:.76rem;color:var(--text-muted);line-height:1.45}.sidebar-model{width:100%}model-viewer.sidebar-model__viewer{display:block;width:100% !important;height:auto !important;aspect-ratio:1/1 !important;background:var(--bg);--poster-color: transparent}.hero{margin-bottom:clamp(1.75rem,3.5vh,2.5rem)}.hero__eyebrow{color:var(--text-faint);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem}.hero__actions{display:flex;gap:1rem;margin-top:1.2rem;flex-wrap:wrap}.hero__cta{display:inline-block;text-decoration:none;font-family:var(--font-mono);font-size:.82rem;padding:.62rem 1.05rem;border-radius:var(--radius);background:var(--accent);color:var(--bg);transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.hero__cta:hover{background:var(--accent-strong);transform:translateY(-1px)}.hero__cta--ghost{background:none;color:var(--text);border:1px solid var(--border-strong)}.hero__cta--ghost:hover{background:var(--surface);border-color:var(--accent)}.today{margin-top:clamp(1.75rem,4vh,2.5rem);margin-bottom:clamp(1.75rem,4vh,2.5rem)}.today__grid{display:flex;flex-direction:column;gap:1.1rem}.section{scroll-margin-top:2rem}.section+.section{border-top:1px solid var(--border);margin-top:2rem;padding-top:2rem}.section__lede{color:var(--text-muted);max-width:var(--measure);margin-bottom:1.75rem;margin-top:-0.75rem}.section__card{border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.75rem}@media(max-width: 560px){.section__card{padding:1.25rem 1.1rem}}.section__prose p{max-width:var(--measure);color:var(--text);margin-bottom:1rem}.section__prose p:last-child{margin-bottom:0}.cryptonite-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--accent);text-decoration-color:var(--accent-soft);font-weight:500}.cryptonite-link__mark{display:inline-block;filter:saturate(0.9)}.text-link{display:inline-block;font-family:var(--font-mono);color:var(--accent);text-decoration:none;font-size:.82rem;border-bottom:1px solid var(--accent-soft);padding-bottom:.1rem;margin-top:.5rem;transition:border-color var(--dur) var(--ease)}.text-link:hover{border-color:var(--accent)}.reveal{opacity:1;transform:none}.js-reveal-ready .reveal{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.js-reveal-ready .reveal.is-visible{opacity:1;transform:none}.timeline{display:flex;flex-direction:column;gap:1rem}.timeline__item{border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.3rem;transition:border-color var(--dur) var(--ease)}.timeline__item:hover{border-color:var(--border-strong)}.timeline__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.timeline__title{font-size:1.08rem;font-weight:600}.timeline__date{font-size:.72rem;color:var(--text-faint);white-space:nowrap}.timeline__org{font-size:.88rem;color:var(--text-muted);margin-top:.2rem}.timeline__org a{color:var(--accent);text-decoration:none}.timeline__details{margin-top:.65rem;display:flex;flex-direction:column;gap:.3rem}.timeline__details li{position:relative;padding-left:.95rem;font-size:.86rem;color:var(--text-muted);line-height:1.5}.timeline__details li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;border-radius:50%;background:var(--secondary)}.pub-list{display:flex;flex-direction:column;gap:1rem}.pub-list__item{border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.3rem;transition:border-color var(--dur) var(--ease)}.pub-list__item:hover{border-color:var(--border-strong)}.pub-list__row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;flex-wrap:wrap}.pub-list__title{font-size:1.02rem;font-weight:600;max-width:60ch}.pub-list__date{font-size:.72rem;color:var(--text-faint);white-space:nowrap}.pub-list__venue{font-size:.85rem;color:var(--text-muted);margin-top:.25rem}.pub-list__link{display:inline-block;margin-top:.4rem;font-size:.8rem;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-soft)}.plain-list{display:flex;flex-direction:column;gap:.75rem}.plain-list__item{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1.1rem;transition:border-color var(--dur) var(--ease)}.plain-list__item:hover{border-color:var(--border-strong)}.plain-list__title{font-weight:600;font-size:.95rem}.plain-list__subtitle{color:var(--text-muted);font-size:.85rem}.skills{display:grid;grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));gap:1rem}.skills__category{font-family:var(--font-body);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:.75rem}.skills__pills{display:flex;flex-wrap:wrap;gap:.4rem}.skill-pill{position:relative;font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);padding:.28rem .55rem;cursor:default;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.skill-pill:hover,.skill-pill:focus-visible{color:var(--accent);border-color:var(--accent)}.achievements{display:grid;grid-template-columns:repeat(4, 1fr);gap:.85rem}@media(max-width: 760px){.achievements{grid-template-columns:repeat(2, 1fr)}}@media(max-width: 460px){.achievements{grid-template-columns:1fr}}.achievement-card{border:1px solid var(--border);border-radius:var(--radius);padding:.9rem .9rem;transition:border-color var(--dur) var(--ease)}.achievement-card:hover{border-color:var(--border-strong)}.achievement-card__badge{font-family:var(--font-mono);font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;padding-bottom:.65rem;margin-bottom:.65rem;border-bottom:1px solid var(--border)}.achievement-card__list li{display:flex;flex-direction:column;gap:.05rem;padding:.4rem 0}.achievement-card__list li+li{border-top:1px dotted var(--border)}.achievement-card__name{font-size:.86rem;font-weight:500}.achievement-card__loc{font-size:.75rem;color:var(--text-muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit, minmax(270px, 1fr));gap:1.1rem}.project-card{border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.3rem;display:flex;flex-direction:column;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-card__title{font-size:1.05rem;font-weight:600}.project-card__links{display:flex;gap:.85rem;margin-top:.35rem}.project-card__links a{font-family:var(--font-mono);font-size:.7rem;color:var(--accent);text-decoration:none}.project-card__desc{font-size:.85rem;color:var(--text-muted);line-height:1.55;margin-top:.65rem}.oss-card{border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.3rem;transition:border-color var(--dur) var(--ease)}.oss-card:hover{border-color:var(--border-strong)}.oss-card--wide{grid-column:1/-1}.oss-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.4rem}.oss-card__name{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.oss-card__repo{font-weight:600;font-size:1rem}.oss-card__tagline{font-family:var(--font-mono);font-size:.65rem;color:var(--accent)}.oss-card__status{font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.04em;padding:.16rem .45rem;border-radius:2px;white-space:nowrap}.oss-card__status--merged{color:var(--secondary);background:var(--secondary-soft)}.oss-card__status--approved{color:var(--accent);background:var(--accent-soft)}.oss-card__meta{font-family:var(--font-mono);font-size:.72rem;color:var(--text-faint);margin-bottom:.6rem}.oss-card__meta a{color:inherit;text-decoration:none}.oss-card__desc{font-size:.85rem;color:var(--text-muted);line-height:1.55}.pr-list{display:flex;flex-direction:column;gap:.45rem;margin:.9rem 0}.pr-list__row{display:flex;align-items:center;gap:.75rem;padding:.5rem .7rem;background:var(--surface);border-radius:var(--radius);font-size:.76rem;flex-wrap:wrap}.pr-list__tag{font-family:var(--font-mono);font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}.pr-list__desc{flex:1;color:var(--text-muted);min-width:200px}.pr-list__status{font-family:var(--font-mono);font-size:.6rem;color:var(--secondary);white-space:nowrap}.oss-card__pr-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.85rem}.pr-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.28rem .65rem;font-family:var(--font-mono);font-size:.72rem;font-weight:500;color:var(--accent);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;transition:all var(--dur) var(--ease)}.pr-pill:hover{border-color:var(--accent);color:var(--text);transform:translateY(-1px)}.github-graph-card{border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.3rem;margin-bottom:1.5rem;background:var(--surface);position:relative;transition:border-color var(--dur) var(--ease)}.github-graph-card:hover{border-color:var(--border-strong)}.github-graph__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;flex-wrap:wrap}.github-graph__title-group{display:flex;align-items:center;gap:.75rem}.github-graph__icon{display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--border);color:var(--text);flex-shrink:0}.github-graph__icon svg{width:1.05rem;height:1.05rem}.github-graph__title{font-size:.95rem;font-weight:600;line-height:1.2}.github-graph__subtitle{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);margin-top:.15rem}.github-graph__subtitle .gh-total-count{color:var(--accent);font-weight:600}.github-graph__profile-link{font-family:var(--font-mono);font-size:.72rem;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:.1rem;transition:border-color var(--dur) var(--ease)}.github-graph__profile-link:hover{border-color:var(--accent)}.github-graph__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:.35rem 0;margin:0 -0.2rem}.github-graph__svg{display:block;min-width:720px;width:100%;height:auto}.gh-day{shape-rendering:geometricPrecision;cursor:pointer;transition:stroke var(--dur) var(--ease),opacity var(--dur) var(--ease)}.gh-day:hover{stroke:var(--text);stroke-width:1px;opacity:.9}.gh-day--level-0{fill:var(--gh-level-0)}.gh-day--level-1{fill:var(--gh-level-1)}.gh-day--level-2{fill:var(--gh-level-2)}.gh-day--level-3{fill:var(--gh-level-3)}.gh-day--level-4{fill:var(--gh-level-4)}.gh-text{fill:var(--gh-label);font-family:var(--font-mono);font-size:9px;user-select:none}.github-graph__footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;font-family:var(--font-mono);font-size:.68rem;color:var(--text-faint);flex-wrap:wrap}.github-graph__legend{display:flex;align-items:center;gap:.3rem;margin-left:auto}.github-graph__legend .legend-box{width:10px;height:10px;border-radius:2px;display:inline-block}.github-graph__tooltip{position:absolute;pointer-events:none;background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.35rem .6rem;font-family:var(--font-mono);font-size:.72rem;white-space:nowrap;opacity:0;transform:translate(-50%, -100%) translateY(-6px);transition:opacity .15s var(--ease),transform .15s var(--ease);z-index:10;box-shadow:0 4px 12px var(--shadow)}.github-graph__tooltip.is-visible{opacity:1;transform:translate(-50%, -100%) translateY(-8px)}.hobby-list{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}.hobby-pill{display:inline-block;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .95rem;font-size:.85rem;transition:border-color var(--dur) var(--ease)}.hobby-pill:hover{border-color:var(--accent)}.content>.model-embed{max-width:864px}.model-embed{position:relative;margin-bottom:clamp(1.75rem,4vh,2.5rem)}model-viewer.model-embed__viewer{display:block;width:100% !important;height:auto !important;aspect-ratio:1/1 !important;background:var(--bg);--poster-color: transparent}.model-embed__credit{position:absolute;bottom:.4rem;right:.5rem;color:var(--text-faint);opacity:0;font-size:.7rem;text-decoration:none;transition:opacity var(--dur) var(--ease)}.model-embed:hover .model-embed__credit,.model-embed__credit:focus-visible{opacity:1}.blog-index__head{margin-bottom:2.5rem}.blog-list__item{padding:1.1rem 0}.blog-list__item+.blog-list__item{border-top:1px dotted var(--border)}.blog-list__item a{font-family:var(--font-display);font-size:1.15rem;font-weight:600;text-decoration:none;color:var(--text)}.blog-list__item a:hover{color:var(--accent)}.blog-list__item p{color:var(--text-muted);font-size:.88rem;margin-top:.3rem}.blog-list__item time{display:block;font-family:var(--font-mono);font-size:.7rem;color:var(--text-faint);margin-top:.4rem}.blog-list--upcoming .blog-list__item{color:var(--text-muted);font-size:.92rem}.blog-teaser-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem}.blog-teaser-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.85rem 1.1rem;transition:border-color var(--dur) var(--ease)}.blog-teaser-list li:hover{border-color:var(--border-strong)}.blog-teaser-list a{color:var(--text);text-decoration:none;font-weight:500}.blog-teaser-list a:hover{color:var(--accent)}.blog-teaser-list time{font-family:var(--font-mono);font-size:.72rem;color:var(--text-faint)}.post__head{margin-bottom:2.5rem}.post__date{display:block;font-size:.75rem;color:var(--text-faint);margin-top:.5rem}.post__content{max-width:var(--measure)}.post__content>:first-child{margin-top:0}.post__content h1{font-size:clamp(1.8rem,4vw,2.4rem);margin:0 0 1.5rem;padding-bottom:.8rem;border-bottom:1px solid var(--border)}.post__content h2{font-size:1.45rem;margin:2.4rem 0 1rem}.post__content h3{font-size:1.15rem;margin:1.9rem 0 .75rem;color:var(--accent)}.post__content p{margin-bottom:1.2rem}.post__content a{color:var(--accent);text-decoration-color:var(--accent-soft)}.post__content ul,.post__content ol{margin:0 0 1.2rem;padding-left:1.4rem;list-style:disc}.post__content ol{list-style:decimal}.post__content li{margin-bottom:.4rem}.post__content pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;overflow-x:auto;margin-bottom:1.4rem;font-size:.82rem}.post__content code{font-family:var(--font-mono);font-size:.85em;background:var(--surface);padding:.1rem .35rem;border-radius:2px;color:var(--accent)}.post__content pre code{background:none;padding:0;color:var(--text)}.post__content blockquote{border-left:2px solid var(--accent);padding-left:1.1rem;margin:0 0 1.4rem;color:var(--text-muted)}.post__content img{border-radius:var(--radius);border:1px solid var(--border);margin:1.6rem 0}.post__content table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:.85rem;display:block;overflow-x:auto}.post__content th,.post__content td{border:1px solid var(--border);padding:.55rem .75rem;text-align:left}.post__content th{background:var(--surface);color:var(--accent)}.post__foot{display:flex;justify-content:space-between;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.math-block{overflow-x:auto;padding:.75rem 0;margin:1.4rem 0;text-align:center}.katex-display{display:block;margin:1.5rem auto;padding:.6rem 0;overflow-x:auto;overflow-y:hidden;max-width:100%;text-align:center}.katex{font-size:1.05em;color:var(--text)}mjx-container{display:inline-block !important;color:var(--text) !important;outline:none}mjx-container[display=true]{display:block !important;text-align:center;margin:1.4rem auto !important;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:.5rem 0}mjx-container svg{display:inline-block !important;max-width:none !important;width:auto !important;height:auto !important}.svg-diagram{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1rem;margin:2rem 0;overflow-x:auto;display:flex;justify-content:center}.diagram-svg{display:block;width:100%;max-width:760px;height:auto;margin:0 auto}.interactive-fig{margin:2.2rem 0}.fig-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.15rem 1.3rem}.fig-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}.fig-title{font-size:.78rem;font-weight:700;font-family:var(--font-mono)}.fig-status{font-size:.68rem;color:var(--secondary);font-family:var(--font-mono);background:var(--secondary-soft);border-radius:3px;padding:.18rem .5rem}.fig-svg{width:100%;height:auto;display:block;margin:.6rem 0 1.1rem}.fig-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-top:.9rem;border-top:1px solid var(--border)}.toolbar-group{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.toolbar-label{font-size:.65rem;color:var(--text-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em}.btn-group{display:inline-flex;gap:.35rem;flex-wrap:wrap}.fig-btn{font-family:var(--font-mono);font-size:.68rem;padding:.32rem .65rem;border-radius:3px;border:1px solid var(--border);color:var(--text-muted);transition:all var(--dur) var(--ease)}.fig-btn:hover{color:var(--text);border-color:var(--border-strong)}.fig-btn.active{background:var(--accent);color:var(--bg);font-weight:700;border-color:var(--accent)}.fig-slider{accent-color:var(--accent);cursor:pointer;width:130px}.fig-caption{font-size:.72rem;color:var(--text-faint);margin-top:.6rem;line-height:1.5;font-family:var(--font-mono)}.post__content .highlight{margin-bottom:1.5rem;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background-color:#282c34}.post__content .highlight pre.chroma{margin-bottom:0;padding:1.1rem 1.25rem;background-color:#282c34 !important;color:#abb2bf !important;font-family:var(--font-mono);font-size:.84rem;line-height:1.6;overflow-x:auto}.post__content pre code{background:none !important;padding:0 !important;border:none !important;color:inherit !important;font-size:inherit;font-family:var(--font-mono)}.chroma{color:#abb2bf;background-color:#282c34}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:100%}.chroma .hl{background-color:#3d4148;display:block;width:100%}.chroma .lnt,.chroma .ln{white-space:pre;user-select:none;margin-right:.8em;padding:0 .4em;color:#55595f}.chroma .line{display:flex}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:#c678dd}.chroma .kc,.chroma .kt,.chroma .nb,.chroma .bp,.chroma .nc{color:#e5c07b}.chroma .nf{color:#61afef;font-weight:600}.chroma .fm{color:#56b6c2;font-weight:600}.chroma .nd{color:#61afef}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#98c379}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#d19a66}.chroma .o,.chroma .ow,.chroma .or{color:#56b6c2}.chroma .n,.chroma .na,.chroma .no,.chroma .ni,.chroma .ne,.chroma .nl,.chroma .nn,.chroma .nx,.chroma .py,.chroma .nt,.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#e06c75}.chroma .p{color:#abb2bf}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#7f848e;font-style:italic}.chroma .gd{color:#e06c75;background-color:rgba(224,108,117,.15)}.chroma .gi{color:#98c379;background-color:rgba(152,195,121,.15);font-weight:600}.chroma .ge{font-style:italic}.chroma .gs{font-weight:bold}.chroma .gu{color:#c678dd}.chroma .gt{color:#e06c75}.chroma .gl{text-decoration:underline}.chroma .w{color:#55595f}.chroma .err{color:#e06c75}.connect-card{display:flex;flex-direction:column;gap:1.75rem}.connect-list{display:flex;flex-direction:column;gap:.85rem}.connect-item{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:.95rem 1.15rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.connect-item:hover{border-color:var(--border-strong)}.connect-item__main{display:flex;align-items:center;gap:1rem;min-width:0;flex:1}.connect-item__icon{display:flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--border);color:var(--text);flex-shrink:0}.connect-item__icon svg{width:1.15rem;height:1.15rem;display:block}.connect-item__details{display:flex;flex-direction:column;gap:.15rem;min-width:0}.connect-item__label{font-family:var(--font-mono);font-size:.68rem;color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase}.connect-item__value-wrap{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;min-width:0}.connect-item__value{font-family:var(--font-mono);font-size:.88rem;font-weight:500;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color var(--dur) var(--ease)}.connect-item__value:hover{color:var(--accent)}.connect-item__subvalue{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.connect-item__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.connect-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.42rem .75rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-decoration:none;line-height:1;transition:all var(--dur) var(--ease)}.connect-btn:hover{color:var(--text);border-color:var(--accent)}.connect-btn .btn-icon{display:inline-flex;align-items:center;justify-content:center}.connect-btn .btn-icon svg{width:.85rem;height:.85rem;display:block}.connect-btn.is-copied{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.connect-btn.is-copied .copy-icon{display:none}.connect-btn.is-copied .check-icon{display:inline-flex}.connect-btn .check-icon{display:none}.contact-footer{padding-top:1.25rem;border-top:1px solid var(--border)}.contact-footer p{color:var(--text-muted);font-size:.88rem;margin-bottom:.6rem}.contact-footer a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-soft);transition:border-color var(--dur) var(--ease)}.contact-footer a:hover{border-color:var(--accent)}.contact-footer__resume a{font-family:var(--font-mono);font-size:.85rem}.whoami{margin-top:3rem;color:var(--text-faint);font-family:var(--font-mono);font-size:.8rem}@media(max-width: 580px){.connect-item{flex-direction:column;align-items:stretch;gap:.85rem}.connect-item__actions{justify-content:flex-end;width:100%}}