@font-face{font-family:Inter;src:url(/fonts/inter.woff2) format("woff2-variations");font-style:oblique 0deg 10deg;font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{color-scheme:light;--gray-light-25: oklch(.994 0 0);--gray-light-50: oklch(.9831 0 0);--gray-light-100: oklch(.9602 0 0);--gray-light-200: oklch(.9366 .0017 247.84);--gray-light-300: oklch(.8785 .0047 258.33);--gray-light-600: oklch(.4596 .0174 264.39);--gray-light-900: oklch(.2304 .0209 264.04);--gray-dark-50: oklch(.9761 0 0);--gray-dark-100: oklch(.9554 .0013 286.37);--gray-dark-400: oklch(.7322 .0028 286.33);--gray-dark-500: oklch(.5725 .0033 264.53);--gray-dark-700: oklch(.4018 .0052 271.29);--gray-dark-800: oklch(.2973 .0056 271.23);--gray-dark-900: oklch(.2146 .0083 264.4);--gray-dark-950: oklch(.16 .0042 285.92);--indigo-400: oklch(.7034 .1446 271.74);--heading: var(--gray-light-900);--content: var(--gray-light-600);--muted: var(--gray-dark-500);--background: var(--gray-light-25);--surface-1: var(--gray-light-100);--surface-2: var(--gray-light-200);--separator: var(--gray-light-300);--accent: oklch(.5147 .2287 272.81);--max-width: 832px;--ease: cubic-bezier(.76, 0, .24, 1)}html.dark{color-scheme:dark;--heading: var(--gray-dark-50);--content: var(--gray-dark-400);--muted: var(--gray-dark-500);--background: var(--gray-dark-950);--surface-1: var(--gray-dark-900);--surface-2: var(--gray-dark-800);--separator: var(--gray-dark-800);--accent: var(--indigo-400);--navigation: color-mix(in oklch, var(--surface-1), var(--gray-dark-50) 5%);--navigation-separator: color-mix(in oklch, var(--separator), var(--gray-dark-50) 5%)}*{box-sizing:border-box}*::selection{background-color:color-mix(in oklch,var(--content),transparent 85%)}html{background:var(--background);scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--background);color:var(--content);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.7;text-rendering:geometricPrecision;font-feature-settings:"cv05" 1,"zero" 1,"ss03" 1,"cv09" 1,"cv10" 1;-webkit-font-smoothing:antialiased}a{color:var(--heading);font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in oklch,var(--heading),transparent 72%);text-underline-offset:4px;transition:color .16s var(--ease),text-decoration-color .16s var(--ease)}a:hover,a:focus-visible{color:var(--accent);text-decoration-color:var(--accent)}p,h1,h2{margin:0}ul{margin:0;padding:0;list-style:none}.site-shell{width:min(100% - 64px,var(--max-width));margin:0 auto;padding:96px 0 132px}.section{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:64px}.section:first-child{margin-top:0}.profile,.section>h2{grid-column:1 / 5}.content{grid-column:5 / 13}.profile{display:block}.mark-card,.project-mark{display:grid;place-items:center;border:1px solid var(--separator);border-radius:10px;background:var(--surface-1);color:var(--heading);transition:background-color .16s var(--ease),border-color .16s var(--ease)}.mark-card{width:64px;height:64px;margin-bottom:22px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px}.name{color:var(--heading);font-size:20px;font-weight:700;line-height:1.15;letter-spacing:0}.profile h1{max-width:260px;margin-top:8px;color:var(--heading);font-size:16px;font-weight:500;line-height:1.35}.pronunciation,.muted,.footer,.email-line{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.pronunciation,.muted{color:var(--muted);font-size:13px}.section>h2{color:var(--heading);font-size:16px;font-weight:700;line-height:1.4}.prose{display:grid;gap:20px;font-size:16px;line-height:1.8}.project-list,.experience-list,.post-list,.talk-list{display:grid;gap:16px}.project-list li{display:flex;gap:16px;align-items:center}.project-row-main{display:flex;flex:1;gap:16px;align-items:center}.project-mark{width:48px;height:48px;flex:0 0 auto;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.project-list p,.experience-list p,.experience-role,.post-list p,.talk-list p{color:var(--content);font-size:15px;line-height:1.45}.project-links{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:6px;font-size:13px;line-height:1.35}.project-links a{color:var(--content);font-weight:500}.experience-role a{color:var(--content)}.experience-list li>span{color:var(--heading);font-weight:600}.experience-list li,.talk-list li,.post-list li{display:grid;grid-template-columns:minmax(108px,.9fr) minmax(130px,1fr) minmax(220px,1.7fr);gap:16px;align-items:baseline}.talk-list li{grid-template-columns:minmax(108px,.9fr) minmax(0,2.6fr) auto}.post-list li{grid-template-columns:1fr auto}.row-links{display:flex;gap:14px;margin-left:auto;font-size:22px;line-height:1}.row-links a{color:var(--content);text-decoration:none}.row-links a:hover,.row-links a:focus-visible{color:var(--heading)}.email-line{font-size:14px}.footer{display:flex;justify-content:space-between;gap:16px;margin-top:72px;color:var(--muted);font-size:13px}.footer nav{display:flex;flex-wrap:wrap;gap:14px}.page-header>h1{grid-column:1 / 5;color:var(--heading);font-size:20px;font-weight:700;line-height:1.4}.posts-index{display:grid;gap:22px}.posts-index li{display:flex;justify-content:space-between;gap:24px}.posts-index p{color:var(--content);font-size:14px;line-height:1.5}.posts-index time,.post-list span{color:var(--content);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;white-space:nowrap}.dock{position:fixed;z-index:20;bottom:32px;left:50%;display:flex;transform:translate(-50%);border:1px solid var(--separator);border-radius:8px;background:color-mix(in oklch,var(--background),var(--surface-1) 60%);box-shadow:0 12px 28px color-mix(in oklch,black,transparent 78%);transition:background-color .16s var(--ease),border-color .16s var(--ease)}.dock a,.dock button{position:relative;display:grid;width:40px;height:40px;margin:4px;padding:0;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--content);cursor:pointer;font:inherit;font-weight:500;text-decoration:none;transition:background-color .16s var(--ease),color .16s var(--ease)}.dock a:before,.dock button:before{position:absolute;bottom:calc(100% + 10px);left:50%;padding:5px 8px;border-radius:6px;background:var(--surface-2);color:var(--heading);content:attr(data-tooltip);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:12px;font-weight:500;line-height:1;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .12s var(--ease),transform .12s var(--ease);white-space:nowrap}.dock a:hover:before,.dock button:hover:before,.dock a:focus-visible:before,.dock button:focus-visible:before{opacity:1;transform:translate(-50%)}.dock a:hover,.dock button:hover,.dock a:focus-visible,.dock button:focus-visible,.dock .is-active{background:var(--surface-2);color:var(--heading)}.dock svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.command-menu{width:min(90vw,440px);padding:0;border:1px solid var(--separator);border-radius:10px;background:var(--background);color:var(--content);box-shadow:0 24px 60px color-mix(in oklch,black,transparent 60%)}.command-menu::backdrop{background:color-mix(in oklch,var(--background),transparent 24%);backdrop-filter:blur(8px)}.command-menu input{width:100%;padding:16px;border:0;border-bottom:1px solid var(--separator);background:transparent;color:var(--heading);font:inherit;outline:0}.command-group{display:grid;gap:4px;padding:14px}.command-group p{color:var(--muted);font-size:12px;font-weight:700}.command-group a{padding:8px 10px;border-radius:7px;text-decoration:none}.command-group a:hover,.command-group a:focus-visible{background:var(--surface-1)}.post-shell{max-width:720px}.back-link{display:inline-flex;margin-bottom:32px;color:var(--content);font-size:14px;text-decoration:none}.post-article{display:grid;gap:28px}.post-article>h1{color:var(--heading);font-size:28px;font-weight:700;line-height:1.2}.post-meta{margin-top:-22px;color:var(--muted);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.post-article section{scroll-margin-top:40px}.post-article h2{margin-bottom:10px;color:var(--heading);font-size:18px;font-weight:700}.post-article p{font-size:17px;line-height:1.8}.post-outline{position:fixed;top:128px;left:32px;display:none;max-width:220px;color:var(--content);font-size:14px}.post-outline p{margin-bottom:12px;color:var(--heading);font-weight:700}.post-outline div{display:grid;gap:10px;padding-left:18px;border-left:1px solid var(--separator)}.post-outline a{color:var(--content);font-size:14px;font-weight:400;text-decoration:none}.post-outline a:hover,.post-outline a:focus-visible{color:var(--heading)}@media(min-width:1180px){.post-outline{display:block}}@media(max-width:720px){.site-shell{width:min(100% - 32px,var(--max-width));padding-top:48px}.section{display:block;margin-top:48px}.profile,.section>h2{margin-bottom:16px}.profile{display:flex;gap:16px;align-items:center}.mark-card{margin-bottom:0}.content{grid-column:auto}.prose{font-size:16px}.name{font-size:20px}.page-header>h1{margin-bottom:18px}.experience-list li,.talk-list li,.post-list li,.posts-index li{display:block}.experience-list li+li,.talk-list li+li{margin-top:18px}.project-list li,.project-row-main,.footer{align-items:flex-start}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
