.inline{display:inline}.mx-auto{margin-right:auto;margin-left:auto}.px3{padding-right:32px;padding-left:32px}.py4{padding-top:64px;padding-bottom:64px}h1,.h1{display:block;margin-top:0;margin-bottom:16px;color:var(--accent);letter-spacing:.01em;font-weight:700;font-style:normal;font-size:26px;line-height:32px;text-wrap:balance;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}h2,.h2{position:relative;display:block;margin-top:40px;margin-bottom:12px;color:var(--text);text-transform:none;letter-spacing:normal;font-weight:700;font-size:20px;line-height:28px;text-wrap:balance}h3{margin-top:32px;margin-bottom:8px;color:var(--text);font-weight:700;font-size:17px;line-height:24px;text-wrap:balance}h4,h5,h6{margin-top:24px;margin-bottom:8px;color:var(--text-secondary);font-weight:700;font-size:15px;line-height:24px}hr{border:0.5px dashed #8c8c8c;opacity:.5;margin:0;margin-top:20px;margin-bottom:20px}strong{font-weight:700}em,cite{font-style:italic}sup,sub{position:relative;vertical-align:baseline;font-size:.75em;line-height:0}sup{top:-.5em}sub{bottom:-.2em}small{font-size:.85em}ul,ol,dl{line-height:1.6}ul ul,ol ul,ul ol,ol ol{margin-top:0;margin-bottom:0}ol{list-style:decimal}dt{font-weight:700}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;line-height:20px;overflow:auto;display:block}th{padding:8px;border-bottom:1px dashed var(--border);color:var(--text);font-weight:700;font-size:13px}td{padding:0 8px;border-bottom:none}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Regular.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:italic;font-weight:400;font-display:swap;src:url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Italic.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:700;font-display:swap;src:url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Bold.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono";font-style:italic;font-weight:700;font-display:swap;src:url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Bold-Italic.woff2") format("woff2")}@font-face{font-family:"JetBrains Mono Fallback";src:local("Consolas");size-adjust:109.13%}*,*:before,*:after{box-sizing:border-box}html{margin:0;padding:0;height:100%;border-top:2px solid var(--text);-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0;height:100%;background-color:#fff;color:#383838;font-weight:400;font-size:15px;font-family:"JetBrains Mono","JetBrains Mono Fallback",Menlo,monospace;line-height:1.6;text-rendering:geometricPrecision;flex:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content{position:relative;display:flex;flex-direction:column;min-height:100%;overflow-wrap:break-word}.content h1 a,.content .h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{background:none;color:inherit;text-decoration:none}.content h1 a:hover,.content .h1 a:hover,.content h2 a:hover,.content h3 a:hover,.content h4 a:hover,.content h5 a:hover,.content h6 a:hover{background-image:linear-gradient(transparent, transparent 6px, #d480aa 6px, #d480aa);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}:where(.content a){color:var(--text);text-decoration:none;background-image:linear-gradient(transparent, transparent 5px, var(--text) 5px, var(--text));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}:where(.content a:hover){background-image:linear-gradient(transparent, transparent 4px, #d480aa 4px, #d480aa)}.max-width{max-width:800px}@media (max-width: 480px){.px3{padding-right:16px;padding-left:16px}}article :is(p, li):not(:has(img,video,iframe,.html-widget)){max-width:648px}p,li{text-wrap:pretty}#header{margin:0 auto 32px;width:100%;padding-bottom:16px;border-bottom:3px dotted var(--accent)}#header h1,#header .h1{margin-top:0;margin-bottom:0;color:var(--text);letter-spacing:.01em;font-weight:700;font-style:normal;font-size:20px;line-height:32px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#header a{background:none;color:inherit;text-decoration:none}#header #logo{position:relative;display:inline-block;float:left;overflow:hidden;margin-right:20px;width:50px;height:61px;border-radius:3px;background-size:98%;background-position:center;background-repeat:no-repeat;background-color:var(--bg);border:2px solid var(--accent)}#header #logo::after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background-color:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform 0.2s cubic-bezier(0.16, 1, 0.3, 1)}#header #logo:hover::after{transform:none}#header #nav{color:var(--accent);letter-spacing:.01em;font-weight:700;font-style:normal;font-size:13px}#header #nav ul{margin:0;padding:0;list-style-type:none;line-height:15px;display:inline-flex;flex-wrap:wrap;align-items:center}#header #nav ul a{position:relative;color:var(--accent)}#header #nav ul a::after{content:"";position:absolute;inset:-5px -3px}#header #nav ul a:hover{background-image:linear-gradient(transparent, transparent 5px, var(--accent) 5px, var(--accent));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}#header #nav ul li{display:inline-flex;align-items:center;padding:0 6px;border-right:1px dotted var(--accent);vertical-align:middle}#header #nav ul li:first-child{padding-left:0}#header #nav ul li:last-child{padding-right:0;border-right:0}#header #nav ul li.nav-control{border-right:0}body.home #header{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 auto;padding-bottom:6px}body.home #header>a{display:flex;flex-direction:column;align-items:center}body.home #header #logo{float:none;width:120px;height:145px;margin:0 0 10px 0;border-radius:5px}body.home #header #title h1{font-size:clamp(32px, 11vw, 44px);line-height:1.1;letter-spacing:-0.02em;margin-bottom:8px}body.home #header #nav{margin-top:5px}body.home .content.py4{padding-top:12px}@media screen and (max-width: 480px){#header>a{display:flex;align-items:center;gap:20px}#header #logo{flex:none;float:none;margin-right:0}#header #title{display:table;margin-right:0;min-height:auto}#header #title h1,#header #title .h1{display:table-cell;vertical-align:middle}#header #nav{margin-top:12px;font-size:12px;container-type:inline-size}#header #nav ul{display:flex;width:100%}#header #nav ul li{flex:1 1 auto;justify-content:center;min-width:45px;padding:0 3px;white-space:nowrap}#header #nav ul li:first-child{padding-left:3px}#header #nav ul li.nav-control{min-width:0;padding:0}#header .dark-mode-toggle{margin-left:0}body.home #header #nav{width:100%;max-width:360px}}@container (max-width: 286px){#header #nav ul li{min-width:auto}}@media (pointer: coarse){#header #nav ul li:not(.nav-control){position:relative;justify-content:center}#header #nav ul li:not(.nav-control) a{position:static}#header #nav ul li:not(.nav-control) a::after{inset:-5px 0 -24px}}@media (pointer: coarse) and (min-width: 481px){#header #nav ul li:not(.nav-control){min-width:45px}}.post-list{padding:0}.post-list .post-item{margin-bottom:16px;margin-left:0;list-style-type:none}.post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:var(--text-secondary);font-size:13px}@media (min-width: 480px){.post-list .post-item{display:flex;align-items:baseline;margin-bottom:5px}.post-list .post-item .meta{text-align:left}}.post-list-empty{color:var(--text-secondary)}#archive>.posttitle{margin-top:0}article header .posttitle{margin-top:0;margin-bottom:0;text-transform:none}article header .meta{margin-top:0;margin-bottom:16px}article header .meta *{color:var(--text-secondary);font-size:13px}article header .author{text-transform:uppercase;letter-spacing:.01em;font-weight:700}article header .postdate{display:inline}article .content{display:block}article .content h1{margin-top:40px}article .content img,article .content video{display:block;margin:auto;max-width:100%;height:auto}article .content blockquote{position:relative;margin:16px 0;padding:0;font-style:italic}article .content blockquote::before{position:absolute;top:0;right:100%;padding-right:8px;color:var(--accent);font-style:normal;font-weight:700;content:">"}article .content blockquote p{margin:0}article .content .caption{margin:8px auto 0;color:var(--text-secondary);font-size:13px;line-height:20px;text-align:center}article .content h2::before,#about-page .post-content h2::before{position:absolute;top:0;right:100%;padding-right:8px;color:var(--accent);content:"#"}@media (max-width: 480px){article .content h2::before,#about-page .post-content h2::before{position:static;padding-right:0;content:"# "}article .content blockquote::before{padding-right:4px}}#about-page .contact{margin-top:48px;padding-top:24px;border-top:3px dotted var(--accent)}#about-page .contact p{margin:0;font-size:20px;line-height:30px}#about-page .contact strong{font-weight:700}#about-page .contact a{color:var(--accent);background-image:linear-gradient(transparent, transparent 5px, var(--accent) 5px, var(--accent));background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}#about-page .contact a:hover{background-image:linear-gradient(transparent, transparent 4px, var(--accent) 4px, var(--accent))}@media (max-width: 480px){#about-page .contact p{font-size:17px;line-height:26px}}article .content pre.r{background-color:#f8f8f8;border-left:2px solid var(--accent)}article .content pre:not([class]){background-color:#f4f4f4;border-left:2px solid #bfbfbf;color:#555;font-style:italic}article .content pre code .hljs-comment,article .content pre code .hljs-quote{color:#666;font-style:italic}article .content pre code .hljs-string,article .content pre code .hljs-regexp,article .content pre code .hljs-addition,article .content pre code .hljs-attribute{color:#3f7e3e}article .content pre code .hljs-literal{color:#0178aa}article .content pre code .hljs-number,article .content pre code .hljs-attr,article .content pre code .hljs-variable,article .content pre code .hljs-template-variable,article .content pre code .hljs-type{color:#976701}article .content pre code .hljs-title,article .content pre code .hljs-symbol,article .content pre code .hljs-bullet,article .content pre code .hljs-link,article .content pre code .hljs-meta{color:#396bd9}article .content pre code .hljs-built_in,article .content pre code .hljs-title.class_{color:#976701}article .content pre code .hljs-section,article .content pre code .hljs-name,article .content pre code .hljs-selector-tag,article .content pre code .hljs-deletion,article .content pre code .hljs-subst{color:#c1493e}article .content pre.r code .hljs-keyword,article .content pre.r code .hljs-built_in{color:#1a1a8c;font-weight:bold}article .content pre.r code .hljs-string{color:#217d76}article .content pre.r code .hljs-number{color:#2076b2}article .content pre.r code .hljs-title.function_{color:#6469b6}article .content pre.r code .hljs-literal{color:#8e6c00}article .content pre code.hljs{padding:0;background:transparent}.posttitle{text-transform:none}.html-widget,.datatables{width:100% !important;margin:16px 0}.html-widget:empty{background-color:var(--bg-code)}.html-widget table,.dataTables_wrapper table{display:table !important;overflow:visible;font-size:12px}.dataTables_wrapper{overflow-x:auto}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{font-size:12px;color:#666}.wide{width:100vw;margin-left:calc(-50vw + 50%);padding:0 32px;overflow-x:auto;box-sizing:border-box}#archive .post-year{padding:16px;border-radius:4px;background-color:var(--card-bg);box-shadow:var(--card-shadow);margin-top:16px}@media (max-width: 480px){#archive .post-year{padding:12px}}#archive .post-year:first-of-type{margin-top:24px}#archive .post-year h2{margin-top:0;margin-bottom:12px;font-size:26px;line-height:32px}#archive .post-year .post-list{margin:0}#archive .post-year .post-list .post-item:last-child{margin-bottom:0}#archive .post-year .post-item>span a{font-size:17px;font-weight:700;line-height:24px;text-decoration:underline;background-image:none}#archive .post-year .post-item>span a:hover{color:var(--accent);text-decoration-thickness:2px;background-image:none}@media (min-width: 480px){#archive .post-year .post-list .post-item{margin-bottom:8px}}#archive .post-list{padding:0}#archive .post-list .post-item{margin-bottom:16px;margin-left:0;list-style-type:none}#archive .post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:var(--text-secondary);font-size:13px}@media (min-width: 480px){#archive .post-list .post-item{display:flex;align-items:baseline;margin-bottom:5px;margin-left:16px}#archive .post-list .post-item .meta{text-align:left}}#footer{position:static;margin-top:auto;padding-top:24px;padding-bottom:16px;width:100%;display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px}#footer .footer-left{flex-shrink:0;white-space:nowrap}#footer .footer-left a{color:var(--text-secondary);text-decoration:underline;background-image:none;transition:color 0.2s}#footer .footer-left a:hover{color:var(--text)}body.home #footer{justify-content:center}.footer-icons{display:inline-flex;gap:4px;align-items:center}.footer-icons a{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;color:var(--text);font-size:12px;text-decoration:none;background-image:none;transition:color 0.25s ease,transform 300ms cubic-bezier(0.16, 1, 0.3, 1)}.footer-icons a:hover{color:var(--accent);background-image:none}@media (hover: hover){.footer-icons a:hover{transform:scale(1.2) translateY(-2px)}}@media (max-width: 600px){#footer{flex-flow:column;text-align:center;gap:12px}}@media (pointer: coarse){.footer-icons a{min-width:44px;min-height:44px}#footer .footer-left a{position:relative}#footer .footer-left a::after{content:"";position:absolute;inset:-10px -4px}}.pagination{display:inline-block;margin-top:32px;width:100%;text-align:center}.pagination .page-number{color:var(--text);font-size:13px}.pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;padding:4px 6px;border-radius:5px;background-image:none;color:var(--text);text-decoration:none}.pagination a:hover{background-image:none}.pagination a:hover:not(.active){color:#383838}@media (pointer: coarse){.pagination a{min-width:44px;min-height:44px}}#tag-cloud .tag-cloud-title{color:#666}#tag-cloud .tag-cloud-tags{clear:both;text-align:center}#tag-cloud .tag-cloud-tags a{display:inline-block;margin:10px}#categories .category-list-title{color:#666}#categories .category-list .category-list-item .category-list-count{color:#666}#categories .category-list .category-list-item .category-list-count:before{content:" ("}#categories .category-list .category-list-item .category-list-count:after{content:")"}.project-grid{display:flex;flex-direction:column;gap:16px;margin-top:24px}.project-card{padding:16px;border-radius:4px;background-color:var(--card-bg);box-shadow:var(--card-shadow);display:grid;grid-template-columns:160px minmax(0, 1fr);column-gap:24px;align-items:start;text-decoration:none;color:var(--text);background-image:none;transition:transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1)}@media (max-width: 480px){.project-card{padding:12px}}.project-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover);background-image:none}.project-card:not(:has(.project-card-image)){grid-template-columns:minmax(0, 1fr)}.project-card-image{width:160px;height:160px}.project-card-image img{display:block;width:100%;height:100%;object-fit:contain}.project-card-body{grid-column:-2;min-width:0}.project-card-title{margin:0 0 8px;text-decoration:underline;font-size:20px;font-weight:700;line-height:28px;color:var(--accent)}.project-card-desc{margin:0;font-size:15px;color:var(--text-secondary);line-height:24px;text-align:left;hyphens:none;-webkit-hyphens:none}.project-section-heading{margin:40px 0 0;padding-top:24px;border-top:3px dotted var(--accent);font-size:20px;font-weight:700;line-height:28px;color:var(--text)}.project-card--contributor .project-card-image{opacity:0.85;transition:opacity 0.2s}.project-card--contributor:hover .project-card-image{opacity:1}.project-card-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:2px 5px;margin-bottom:8px}@media (max-width: 480px){.project-card{grid-template-columns:88px minmax(0, 1fr);column-gap:12px}.project-card-image{grid-row:span 2;width:88px;height:88px}.project-card-body{display:contents}.project-card-title,.project-card-badge{grid-column:-2}.project-card-badge{justify-self:start}.project-card:not(:has(.project-card-badge)) .project-card-title{grid-row:span 2;align-self:center;margin:0}.project-card-desc{grid-column:1 / -1;margin-top:12px}}@media (max-width: 360px){.project-card{grid-template-columns:72px minmax(0, 1fr)}.project-card-image{width:72px;height:72px}}#landing{display:flex;flex-direction:column;align-items:center;padding:0 16px}.greeting-wrapper{display:flex;flex-direction:column;align-items:center;height:40px;margin-top:24px}.greeting{display:inline-block;font-size:15px;font-weight:700;line-height:22px;letter-spacing:1px;white-space:nowrap;color:var(--text-secondary, #666)}.greeting-note{position:relative;display:inline-flex;align-items:center;height:18px;font-size:12px;letter-spacing:0.5px;color:var(--text-secondary, #666)}.greeting-lang{opacity:0;transition:opacity 180ms ease-in}.greeting-lang.is-shown{opacity:1;transition:opacity 300ms cubic-bezier(0.16, 1, 0.3, 1)}.greeting-toggle{position:absolute;top:50%;left:100%;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-12px 0 0 2px;padding:0;border:0;background:none;color:inherit;font-size:12px;cursor:pointer;opacity:0;transition:opacity 200ms ease-out}.greeting-toggle[hidden]{display:none}.greeting-toggle .icon-play{display:none}.greeting-toggle[aria-pressed="true"]{opacity:1}.greeting-toggle[aria-pressed="true"] .icon-play{display:inline-block}.greeting-toggle[aria-pressed="true"] .icon-pause{display:none}.greeting-toggle:focus-visible{opacity:1}.greeting-wrapper:hover .greeting-toggle{opacity:1}@media (hover: none){.greeting-toggle{opacity:1}}.landing-text{text-align:center;max-width:700px;margin:12px auto 0;padding:0;font-size:20px;line-height:30px;text-wrap:balance}.landing-rule{border:none;height:2px;background-color:var(--accent);width:80px;margin:12px auto 0;opacity:1}@media (max-width: 480px){.landing-text{font-size:17px;line-height:26px}}.landing-icons{margin-top:24px;display:flex;gap:24px;justify-content:center;align-items:center}.landing-icons a{color:var(--accent);font-size:26px;text-decoration:none;background-image:none}.landing-icons--animated a{transition:transform 300ms cubic-bezier(0.16, 1, 0.3, 1),opacity 200ms ease-out}@media (hover: hover){.landing-icons--animated a:hover{transform:scale(1.25) translateY(-3px);opacity:0.85}}.landing-stats{text-align:center;margin-top:12px;font-size:13px;letter-spacing:1px;color:var(--text-secondary, #666)}.landing-currently{text-align:center;margin-top:12px;font-size:12px;line-height:18px;letter-spacing:0.5px;text-wrap:balance;color:var(--text-secondary, #666)}.currently-icon{position:relative;color:inherit;text-decoration:none;background-image:none;transition:color 0.2s ease}.currently-icon::after{content:"";position:absolute;inset:-7px}.currently-icon:hover{color:var(--accent);background-image:none}.landing-ascii{text-align:center;font-size:15px;letter-spacing:2px;color:var(--accent);margin-top:12px}.landing-quote{margin:40px auto 16px;padding:0 10px 10px;max-width:500px;font-size:12px;line-height:18px;font-style:italic;color:var(--text-secondary, #666);text-align:left;border-left:3px solid var(--accent)}.landing-quote:empty{display:none}.quote-author{font-style:normal;font-weight:700}@media (pointer: coarse){.greeting-toggle{width:44px;height:44px;margin:-22px 0 0 -8px}.currently-icon::after{inset:-16px}}:root{color-scheme:light;--bg: #fff;--bg-code: #fafafa;--text: #383838;--text-secondary: #666;--border: #666;--accent: #a91100;--card-bg: #fffbeb;--card-shadow: 0 1px 2px rgba(56, 56, 56, 0.06), 0 6px 16px rgba(56, 56, 56, 0.1);--card-shadow-hover: 0 2px 4px rgba(56, 56, 56, 0.08), 0 12px 28px rgba(56, 56, 56, 0.14)}[data-theme="dark"]{color-scheme:dark;--bg: #1d1f21;--bg-code: #252729;--text: #c9cacc;--text-secondary: #999;--border: #555;--accent: #ccffb6;--card-bg: #2a2820;--card-shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 6px 16px rgba(0, 0, 0, 0.45);--card-shadow-hover: 0 2px 4px rgba(0, 0, 0, 0.55), 0 12px 28px rgba(0, 0, 0, 0.55)}::selection{background-color:var(--accent);color:var(--bg)}[data-theme="dark"] body{background-color:var(--bg);color:var(--text)}[data-theme="dark"] :where(.content a:hover){background-image:linear-gradient(transparent, transparent 4px, var(--accent) 4px, var(--accent))}[data-theme="dark"] h1,[data-theme="dark"] .h1{color:var(--accent)}[data-theme="dark"] .posttitle,[data-theme="dark"] article h1,[data-theme="dark"] .h1 a,[data-theme="dark"] h1 a{color:var(--accent)}[data-theme="dark"] pre{border-color:var(--border);background-color:var(--bg-code)}[data-theme="dark"] article .content pre.r,[data-theme="dark"] pre.r{background-color:var(--bg-code)}[data-theme="dark"] article .content pre:not([class]),[data-theme="dark"] pre:not([class]){background-color:#1a1c1e;border-left-color:var(--border);color:var(--text-secondary)}[data-theme="dark"] code{background-color:var(--bg-code)}[data-theme="dark"] pre code{background-color:transparent;color:inherit}[data-theme="dark"] article .content pre code .hljs-comment,[data-theme="dark"] article .content pre code .hljs-quote,[data-theme="dark"] pre code .hljs-comment,[data-theme="dark"] pre code .hljs-quote{color:#999}[data-theme="dark"] article .content pre.r code .hljs-keyword,[data-theme="dark"] article .content pre.r code .hljs-built_in,[data-theme="dark"] pre.r code .hljs-keyword,[data-theme="dark"] pre.r code .hljs-built_in{color:#7aa6da}[data-theme="dark"] article .content pre.r code .hljs-string,[data-theme="dark"] pre.r code .hljs-string{color:#70c0b1}[data-theme="dark"] article .content pre.r code .hljs-number,[data-theme="dark"] pre.r code .hljs-number{color:#de935f}[data-theme="dark"] article .content pre.r code .hljs-title.function_,[data-theme="dark"] pre.r code .hljs-title.function_{color:#b294bb}[data-theme="dark"] article .content pre.r code .hljs-literal,[data-theme="dark"] pre.r code .hljs-literal{color:#f0c674}[data-theme="dark"] .dataTables_wrapper{color:var(--text)}[data-theme="dark"] .dataTables_wrapper table{color:var(--text);border-color:var(--border)}[data-theme="dark"] .dataTables_wrapper table thead th,[data-theme="dark"] .dataTables_wrapper table thead td{background-color:#2a2c2e;color:var(--text);border-bottom-color:var(--border)}[data-theme="dark"] .dataTables_wrapper table tbody tr{background-color:var(--bg)}[data-theme="dark"] .dataTables_wrapper table tbody tr.odd,[data-theme="dark"] .dataTables_wrapper table.display tbody tr.odd,[data-theme="dark"] .dataTables_wrapper table.stripe tbody tr.odd{background-color:#252729}[data-theme="dark"] .dataTables_wrapper table tbody tr.even,[data-theme="dark"] .dataTables_wrapper table.display tbody tr.even,[data-theme="dark"] .dataTables_wrapper table.stripe tbody tr.even{background-color:var(--bg)}[data-theme="dark"] .dataTables_wrapper table tbody tr:hover,[data-theme="dark"] .dataTables_wrapper table.display tbody tr:hover,[data-theme="dark"] .dataTables_wrapper table.hover tbody tr:hover{background-color:#333537}[data-theme="dark"] .dataTables_wrapper table tbody td{border-top-color:var(--border)}[data-theme="dark"] .dataTables_wrapper .dataTables_length,[data-theme="dark"] .dataTables_wrapper .dataTables_filter,[data-theme="dark"] .dataTables_wrapper .dataTables_info,[data-theme="dark"] .dataTables_wrapper .dataTables_paginate{color:var(--text-secondary)}[data-theme="dark"] .dataTables_wrapper .dataTables_filter input,[data-theme="dark"] .dataTables_wrapper .dataTables_length select{background-color:#252729;color:var(--text);border-color:var(--border)}[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button{color:var(--text) !important}[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current{background:#333537;border-color:var(--border);color:var(--accent) !important}[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#333537;border-color:var(--border);color:var(--accent) !important}.lang-toggle{--lang-x: 0px;--lang-nudge: 0px;position:relative;display:inline-flex;align-items:center;width:46px;height:20px;padding:2px;border:1px solid var(--accent);border-radius:10px;background:none;text-decoration:none;cursor:pointer;vertical-align:middle;transition:background-color 0.2s ease-out}.lang-toggle::before{content:"";position:absolute;inset:-6px -3px}.lang-toggle--en{--lang-x: 20px}.lang-toggle:hover{--lang-nudge: 2px;background-color:color-mix(in srgb, var(--accent) 10%, transparent);background-image:none}.lang-toggle--en:hover{--lang-nudge: -2px}.lang-label{position:relative;z-index:2;flex:1;text-align:center;font-size:11px;font-weight:700;letter-spacing:0.5px;line-height:14px;color:var(--accent);pointer-events:none}.lang-label.active{color:var(--bg);transform:translateX(var(--lang-nudge));transition:transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.lang-slider{position:absolute;top:2px;left:2px;z-index:1;width:20px;height:14px;border-radius:7px;background-color:var(--accent);transform:translateX(calc(var(--lang-x) + var(--lang-nudge)));transition:transform 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.dark-mode-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;background:none;border:none;cursor:pointer;font-size:16px;padding:0;margin-left:10px;color:var(--accent);vertical-align:middle}.dark-mode-toggle .icon-sun{display:none}[data-theme="dark"] .dark-mode-toggle .icon-sun{display:inline-block}[data-theme="dark"] .dark-mode-toggle .icon-moon{display:none}@media (pointer: coarse){.lang-toggle::before{inset:-13px -3px}.dark-mode-toggle::before{content:"";position:absolute;inset:-10px}}pre{overflow-x:auto;padding:15px 15px 10px 15px;border:none;border-left:2px solid #b3b3b3;border-radius:0;font-size:13px;font-family:"JetBrains Mono","JetBrains Mono Fallback",Menlo,monospace;line-height:22px;position:relative}pre code{display:block;padding:0;border:none;color:inherit;background-color:transparent;font-size:inherit}code{font-family:"JetBrains Mono","JetBrains Mono Fallback",Menlo,monospace;padding:1px 5px;border:none;border-radius:3px;background-color:#f2f2f2;color:var(--accent);font-size:0.9em}.highlight>div{border-radius:2px;-webkit-border-radius:2px}.highlight pre{border:none;background:none}.highlight table pre{margin-top:0}.highlight table td:first-child pre{padding-right:0}.highlight table td:last-child pre{padding-left:0}.icon{display:inline-block;vertical-align:-0.125em;overflow:visible}main{display:flex;flex-direction:column;flex:1 0 auto}main:focus{outline:none}.skip-link{position:absolute;top:12px;left:12px;z-index:10;padding:6px 10px;border:1px solid var(--accent);border-radius:3px;background-color:var(--bg);color:var(--accent);font-size:12px;font-weight:700;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.landing-icons--animated a:hover,.footer-icons a:hover,.project-card:hover{transform:none}.lang-slider,.lang-label,#header #logo::after{transition:none}.lang-toggle:hover{--lang-nudge: 0px}}html{overflow-x:clip}@page{margin:16mm 18mm}@media print{:root,[data-theme="dark"]{color-scheme:light;--bg: #fff;--bg-code: #fff;--card-bg: #fff;--text: #000;--text-secondary: #444;--border: #999;--accent: #a91100}html{border-top:0}body{background:#fff;color:#000}.max-width{max-width:none}.px3{padding-left:0;padding-right:0}.py4{padding-top:0;padding-bottom:0}.skip-link,#header #nav,#header #logo,#footer,.greeting-wrapper,.landing-icons,#strike-easter-egg,.post-nav,.pagination,.leaflet,.section:has(.leaflet)>:is(h2, h3){display:none !important}article .content h2::before,#about-page .post-content h2::before{display:none}.project-card,#archive .post-year{box-shadow:none;border:1px solid var(--border)}#header,[data-theme="dark"] #header{margin-bottom:16px;border-bottom-color:#000}a{color:#000;background-image:none !important;text-decoration:underline}main a[href^="http"]:not([href*="akyves.net"])::after{content:" (" attr(href) ")";font-size:0.85em;color:var(--text-secondary);word-break:break-all}h1,h2,h3,h4{break-after:avoid}li,pre,blockquote,img,table,figure{break-inside:avoid}p{orphans:3;widows:3}pre{white-space:pre-wrap;border-left-color:#999}[data-theme="dark"] .hljs,[data-theme="dark"] .hljs *{color:#000 !important;background:none !important}}
