:root{--main-color: #000;--main-hover-color: #22293a;--raw-bg-color: rgba(67, 95, 119, .162);--main-bg-color: #fff;--nav-bg-color: #fff;--gray-color: #6d6d6d;--accent: #4a63c7;--black: #0f1219;--code-text: #2b64cf;--code-border: rgba(43, 100, 207, .2);--code-bg: rgba(43, 100, 207, .05);--code-block-border: rgba(85, 131, 217, .3);--code-block-bg: rgba(54, 108, 209, .01);--font-base: -apple-system, BlinkMacSystemFont, "Rival Sans", "Source Sans Pro", "Source Sans Pro Variable", "Noto Sans SC", "PingFang SC", "Microsoft Yahei", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: "dejavu sans mono", "Ubuntu Mono", "Inconsolata", ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--font-math: "New Computer Modern Math", "Latin Modern Math", "STIX Two Math", "TeX Gyre Termes Math", "DejaVu Math TeX Gyre", math;--content-max-width: min(50rem, calc(100% - 2em) );--border-radius: 8px;--heading-hash-offset: 1.75rem;--transition-fast: .1s;--transition-normal: .2s;--transition-slow: .3s}body{font:300 .9rem/1.6 var(--font-base);margin:0;padding:0;background:var(--main-bg-color);background-size:100% 600px;word-wrap:break-word;overflow-wrap:break-word;color:var(--main-color);text-shadow:0 0 .5px rgba(57,57,57,.25)}main{max-width:var(--content-max-width);margin:auto;overflow-x:hidden;padding:3em 1em}h1,h2,h3,h4,h5,h6{margin:0}h1 :target,h2 :target,h3 :target,h4 :target,h5 :target,h6 :target{scroll-margin-top:var(--heading-hash-offset)}h1{font-size:2.75em;margin-bottom:.89em;line-height:1.11}h2{font-size:2em;margin:1.6em 0 .6em;line-height:1.33}h3{font-size:1.5em;margin:1em 0 .6em;line-height:1.2}h4{font-size:1.25em;margin:1em 0 .6em;line-height:1.2;font-weight:600}h5{font-size:1.1em;margin:1.5em 0 .5em;line-height:1.5}p{margin-bottom:.5em}strong,b{font-weight:500}a,.link{color:var(--accent);text-decoration:none;cursor:pointer;transition:color var(--transition-fast),text-decoration var(--transition-fast)}nav a{color:var(--main-color)}nav a:hover{color:var(--main-hover-color)}textarea,input{font-size:16px}textarea{width:100%}img{max-width:100%;height:auto;border-radius:var(--border-radius)}pre,code,kbd,samp{font-family:var(--font-mono)}code{background:var(--code-bg);color:var(--code-text);padding:1px 2px;border:1px solid var(--code-border);border-radius:2px;font:small var(--font-mono);overflow-x:auto}pre{padding:8px 15px;background:var(--code-block-bg);border:1px solid var(--code-block-border);border-radius:5px;font-family:var(--font-mono);overflow-x:auto}pre code{background:none;color:var(--code-text);padding:0;border:none;border-radius:0}blockquote{border-left:4px solid var(--accent);padding:0 0 0 18px;margin:0;font-size:1em}hr{border:none;border-top:1px solid var(--raw-bg-color)}figcaption{text-align:center}dt{color:#444;font-weight:500}[aria-hidden=true]{display:none!important}.inline-equation{display:inline-block;width:fit-content;margin:0 .15em;font-family:var(--font-math)}.block-equation{display:grid;place-items:center;overflow-x:auto;font-family:var(--font-math)}math{color:#00f}.block-list,.block-list li{margin:0;padding:0}.block-list>li{list-style:none;border-left:2.5px solid var(--main-color)}.block-list>li>h4{list-style:none;padding-left:.5em;border-left:2.5px solid var(--main-color)}.block-list.accent>li{border-left:2.5px solid var(--accent)}ul.tags{display:flex;flex-wrap:nowrap;gap:.5rem;list-style:none;padding:0;margin:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}ul.tags::-webkit-scrollbar{display:none}ul.tags li{white-space:nowrap;flex-shrink:0}ul.tags a{font-size:1rem;padding:.1rem .2rem;border-radius:.25rem;background:#4a63c71a;color:var(--accent);text-decoration:none;display:inline-block;transition:background-color var(--transition-normal) ease}ul.tags a:hover{background:#4a63c733}.posts.block-list>li{margin:.4rem 0 0 1.2rem;padding:0 0 .2rem;border-left:none;list-style:disc}.posts .heading{display:inline;margin-bottom:.1rem}.posts .heading a{font-size:.95rem;margin:0;line-height:1.2;font-weight:400;text-decoration:none}.posts .date{font-size:.95rem;color:var(--main-color);white-space:nowrap;font-weight:500;margin-right:.5rem}.posts .tags,.posts li>p,.posts .description{display:none}header{position:sticky;top:0;z-index:100;background:var(--nav-bg-color);border-bottom:.5px solid rgba(109,109,109,.1);box-shadow:0 1px 3px #0000000d,0 1px 2px #0000000d;transition:all var(--transition-slow) ease}header nav{display:flex;align-items:center;justify-content:space-between;max-width:var(--content-max-width);margin:0 auto;padding:0 1em;height:4rem}.logo-container{display:flex;align-items:center}.logo{font:800 1.25rem var(--font-base);letter-spacing:-.025em;margin:0}.logo-link{display:flex;align-items:center;text-decoration:none;color:var(--main-color);transition:all var(--transition-slow) ease;position:relative}.logo-link:hover{color:var(--accent);transform:translateY(-1px)}.logo-text{color:var(--main-color);font:300 1.5rem var(--font-base);letter-spacing:-.02em;text-shadow:0 0 3px rgba(58,57,57,.25)}.internal-links{display:flex;align-items:center;gap:.5rem}.nav-link{display:flex;align-items:center;padding:.2rem;text-decoration:none;color:var(--main-color);font-weight:400;font-size:.95rem;border-radius:.5rem}.nav-text{font-weight:300;text-shadow:0 0 3px rgba(58,57,57,.25);transition:opacity var(--transition-normal) ease;position:relative}.nav-text:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background-color:var(--main-color);transform:scaleX(0);transition:transform var(--transition-normal) ease}.nav-link:hover .nav-text{opacity:.7}.nav-link.active .nav-text:after{transform:scaleX(1)}.about-section{margin-bottom:3rem}.about-container{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:start}.about-content{min-width:0}.about-image{display:flex;justify-content:center;align-items:flex-start}.profile-photo{width:150px;height:180px;object-fit:cover;border-radius:12px;margin-top:2rem;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;transition:transform var(--transition-slow) ease,box-shadow var(--transition-slow) ease}.profile-photo:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026,0 3px 6px #0000001a}.post-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e5e5}.post-header h1{margin-bottom:.3em;font-size:2.5rem;font-weight:700;color:#1a1a1a;line-height:1.2}.post-meta{display:flex;gap:1.5rem;margin-top:1rem;font-size:.95rem;color:#6b7280;font-weight:500}.post-meta .date,.post-meta .author{color:#4b5563;font-size:.8rem}.post-meta .author{font-style:italic}.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:3rem;padding:.75rem 1.5rem;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;color:#4b5563;text-decoration:none;font-weight:500;transition:all var(--transition-normal) ease}.back-link:hover{background-color:#f1f5f9;border-color:#cbd5e1;color:#1e293b;transform:translate(-2px)}section:not([aria-label=CV]) table,.blog-post table,article table{border-collapse:collapse;margin:1rem auto;width:100%;border:1px solid var(--code-block-border)}section:not([aria-label=CV]) th,section:not([aria-label=CV]) td,.blog-post th,.blog-post td,article th,article td{padding:.4rem .6rem;border:1px solid var(--code-block-border);text-align:left;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}section:not([aria-label=CV]) th,.blog-post th,article th{background-color:var(--code-block-bg);font-weight:600;color:#444}section:not([aria-label=CV]) tr:nth-child(2n),.blog-post tr:nth-child(2n),article tr:nth-child(2n){background-color:#4a63c705}article{margin:0 auto;color:var(--main-color)}article h2{font-size:1.25em;margin:1em 0 .6em;line-height:1.2;font-weight:400}article h3{font-size:1.1em;margin:1.5em 0 .5em;line-height:1.5;font-weight:400}article ul,article ol{margin-bottom:1.5rem;padding-left:1.5rem}article li{margin-bottom:.5rem}article blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid var(--accent);background-color:#4a63c70d;font-style:italic}article code{font-size:.9em;padding:.2em .4em;border-radius:3px;background-color:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border)}article pre{margin:1.5rem 0;padding:1rem;border-radius:6px;background-color:var(--code-block-bg);border:1px solid var(--code-block-border);overflow-x:auto}article pre code{padding:0;background:none;border:none;font-size:.9em}article img{max-width:80%;height:auto;margin:0 auto}section[aria-label=News] p{margin:.1em}.blog-post .content{width:100%;contain:layout}.mathyml-block-center{text-align:center}.mathyml-inline-span{display:inline-block}.mathyml-align-right{text-align:right;padding:0}.mathyml-align-left{text-align:left;padding:0}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm){.mathyml-align-right{text-align:-webkit-right}.mathyml-align-left{text-align:-webkit-left}}@media (max-width: 768px){header nav{height:3.5rem}.logo-text{font-size:1.25rem}.internal-links{gap:.15rem}.nav-link{padding:.2rem;font-size:.9rem}.about-container{grid-template-columns:1fr;gap:2rem;text-align:center}.about-image{order:-1;justify-content:center}.profile-photo{width:120px;height:150px}.post-meta{flex-direction:column;gap:.25rem}.blog-post .content{overflow-x:auto;-webkit-overflow-scrolling:touch}section:not([aria-label=CV]) table,.blog-post table,article table{min-width:max-content;margin:.5rem auto}section:not([aria-label=CV]) th,section:not([aria-label=CV]) td,.blog-post th,.blog-post td,article th,article td{padding:.25rem .4rem;font-size:.85rem;white-space:nowrap}article{padding:1rem}article h1{font-size:2rem}article h2{font-size:1.5rem}article h3{font-size:1.2rem}}@media (max-width: 720px){main{padding:1em}body{text-align:left}}@media (max-width: 600px){.posts .heading a,.posts .date{font-size:.85rem}.posts.block-list>li{margin-top:.3rem}}@media (max-width: 480px){header nav{padding:0 .75rem}.logo-text{font-size:1.1rem}.internal-links{gap:.1rem}.nav-link{font-size:.85rem}.about-container{gap:1.5rem}.profile-photo{width:100px;height:125px}}@media (max-width: 380px){.nav-link{font-size:.85rem}}code[class*=language-],pre[class*=language-]{background:#fafafa;color:#383a42;font-family:Fira Code,Fira Mono,Menlo,Consolas,DejaVu Sans Mono,monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::-moz-selection,code[class*=language-] *::-moz-selection,pre[class*=language-] *::-moz-selection{background:#e5e5e6;color:inherit}code[class*=language-]::selection,code[class*=language-] *::selection,pre[class*=language-] *::selection{background:#e5e5e6;color:inherit}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-]{padding:.2em .3em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.cdata{color:#a0a1a7}.token.doctype,.token.punctuation,.token.entity{color:#383a42}.token.attr-name,.token.class-name,.token.boolean,.token.constant,.token.number,.token.atrule{color:#b76b01}.token.keyword{color:#a626a4}.token.property,.token.tag,.token.symbol,.token.deleted,.token.important{color:#e45649}.token.selector,.token.string,.token.char,.token.builtin,.token.inserted,.token.regex,.token.attr-value,.token.attr-value>.token.punctuation{color:#50a14f}.token.variable,.token.operator,.token.function{color:#4078f2}.token.url{color:#0184bc}.token.attr-value>.token.punctuation.attr-equals,.token.special-attr>.token.attr-value>.token.value.css{color:#383a42}.language-css .token.selector{color:#e45649}.language-css .token.property{color:#383a42}.language-css .token.function,.language-css .token.url>.token.function{color:#0184bc}.language-css .token.url>.token.string.url{color:#50a14f}.language-css .token.important,.language-css .token.atrule .token.rule,.language-javascript .token.operator{color:#a626a4}.language-javascript .token.template-string>.token.interpolation>.token.interpolation-punctuation.punctuation{color:#ca1243}.language-json .token.operator{color:#383a42}.language-json .token.null.keyword{color:#b76b01}.language-markdown .token.url,.language-markdown .token.url>.token.operator,.language-markdown .token.url-reference.url>.token.string{color:#383a42}.language-markdown .token.url>.token.content{color:#4078f2}.language-markdown .token.url>.token.url,.language-markdown .token.url-reference.url{color:#0184bc}.language-markdown .token.blockquote.punctuation,.language-markdown .token.hr.punctuation{color:#a0a1a7;font-style:italic}.language-markdown .token.code-snippet{color:#50a14f}.language-markdown .token.bold .token.content{color:#b76b01}.language-markdown .token.italic .token.content{color:#a626a4}.language-markdown .token.strike .token.content,.language-markdown .token.strike .token.punctuation,.language-markdown .token.list.punctuation,.language-markdown .token.title.important>.token.punctuation{color:#e45649}.token.bold{font-weight:700}.token.comment,.token.italic{font-style:italic}.token.entity{cursor:help}.token.namespace{opacity:.8}.token.token.tab:not(:empty):before,.token.token.cr:before,.token.token.lf:before,.token.token.space:before{color:#383a4233}div.code-toolbar>.toolbar.toolbar>.toolbar-item{margin-right:.4em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span{background:#e5e5e6;color:#696c77;padding:.1em .4em;border-radius:.3em}div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:focus{background:#c6c7c7;color:#383a42}.line-highlight.line-highlight{background:#383a420d}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background:#e5e5e6;color:#383a42;padding:.1em .6em;border-radius:.3em;box-shadow:0 2px #0003}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#383a420d}.line-numbers.line-numbers .line-numbers-rows,.command-line .command-line-prompt{border-right-color:#383a4233}.line-numbers .line-numbers-rows>span:before,.command-line .command-line-prompt>span:before{color:#9d9d9f}.rainbow-braces .token.token.punctuation.brace-level-1,.rainbow-braces .token.token.punctuation.brace-level-5,.rainbow-braces .token.token.punctuation.brace-level-9{color:#e45649}.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6,.rainbow-braces .token.token.punctuation.brace-level-10{color:#50a14f}.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7,.rainbow-braces .token.token.punctuation.brace-level-11{color:#4078f2}.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8,.rainbow-braces .token.token.punctuation.brace-level-12{color:#a626a4}pre.diff-highlight>code .token.token.deleted:not(.prefix),pre>code.diff-highlight .token.token.deleted:not(.prefix){background-color:#ff526626}pre.diff-highlight>code .token.token.deleted:not(.prefix)::-moz-selection,pre.diff-highlight>code .token.token.deleted:not(.prefix) *::-moz-selection,pre>code.diff-highlight .token.token.deleted:not(.prefix)::-moz-selection,pre>code.diff-highlight .token.token.deleted:not(.prefix) *::-moz-selection{background-color:#fb566940}pre.diff-highlight>code .token.token.deleted:not(.prefix)::selection,pre.diff-highlight>code .token.token.deleted:not(.prefix) *::selection,pre>code.diff-highlight .token.token.deleted:not(.prefix)::selection,pre>code.diff-highlight .token.token.deleted:not(.prefix) *::selection{background-color:#fb566940}pre.diff-highlight>code .token.token.inserted:not(.prefix),pre>code.diff-highlight .token.token.inserted:not(.prefix){background-color:#1aff5b26}pre.diff-highlight>code .token.token.inserted:not(.prefix)::-moz-selection,pre.diff-highlight>code .token.token.inserted:not(.prefix) *::-moz-selection,pre>code.diff-highlight .token.token.inserted:not(.prefix)::-moz-selection,pre>code.diff-highlight .token.token.inserted:not(.prefix) *::-moz-selection{background-color:#38e06240}pre.diff-highlight>code .token.token.inserted:not(.prefix)::selection,pre.diff-highlight>code .token.token.inserted:not(.prefix) *::selection,pre>code.diff-highlight .token.token.inserted:not(.prefix)::selection,pre>code.diff-highlight .token.token.inserted:not(.prefix) *::selection{background-color:#38e06240}.prism-previewer.prism-previewer:before,.prism-previewer-gradient.prism-previewer-gradient div{border-color:hsl(0,0,95%)}.prism-previewer-color.prism-previewer-color:before,.prism-previewer-gradient.prism-previewer-gradient div,.prism-previewer-easing.prism-previewer-easing:before{border-radius:.3em}.prism-previewer.prism-previewer:after{border-top-color:hsl(0,0,95%)}.prism-previewer-flipped.prism-previewer-flipped.after{border-bottom-color:hsl(0,0,95%)}.prism-previewer-angle.prism-previewer-angle:before,.prism-previewer-time.prism-previewer-time:before,.prism-previewer-easing.prism-previewer-easing{background:#fff}.prism-previewer-angle.prism-previewer-angle circle,.prism-previewer-time.prism-previewer-time circle{stroke:#383a42;stroke-opacity:1}.prism-previewer-easing.prism-previewer-easing circle,.prism-previewer-easing.prism-previewer-easing path,.prism-previewer-easing.prism-previewer-easing line{stroke:#383a42}.prism-previewer-easing.prism-previewer-easing circle{fill:transparent}
