:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px;--theme:#fff;--entry:#fff;--primary:#1e1e1e;--secondary:#6c6c6c;--tertiary:#d6d6d6;--content:#1f1f1f;--code-block-bg:#1c1d21;--code-bg:#f5f5f5;--border:#eee}.dark{--theme:#1d1e20;--entry:#2e2e33;--primary:#dadadb;--secondary:#9b9c9d;--tertiary:#414244;--content:#c4c4c5;--code-block-bg:#2e2e33;--code-bg:#37383e;--border:#333}.list{background:var(--code-bg)}.dark.list{background:var(--theme)}*,:after,:before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-y:scroll}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{word-break:break-word;background:var(--theme);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:18px;line-height:1.6}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{border-collapse:collapse;border-spacing:0;word-break:keep-all;width:100%;overflow-x:auto}button,input,textarea{font:inherit;background:0 0;border:0;padding:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme) inset}img{max-width:100%;display:block}.not-found{justify-content:center;align-items:center;height:80%;font-size:160px;font-weight:700;display:flex;position:absolute;left:0;right:0}.archive-posts{width:100%;font-size:16px}.archive-year:not(:last-of-type){border-bottom:2px solid var(--border)}.archive-month{align-items:flex-start;padding:10px 0;display:flex}.archive-month-header{width:200px;margin:25px 0}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{margin:10px 0;padding:5px;position:relative}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}.footer,.top-link{color:var(--secondary);font-size:12px}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);padding:calc((var(--footer-height) - var(--gap)) / 2) var(--gap);text-align:center;margin:auto;line-height:24px}.footer span{margin-inline:1px}.footer a{color:inherit;border-bottom:1px solid var(--secondary)}.footer a:hover{border-bottom:1px solid var(--primary)}.top-link{visibility:hidden;z-index:99;background:var(--tertiary);border-radius:64px;width:42px;height:42px;padding:12px;transition:visibility .5s,opacity .8s linear;position:fixed;bottom:60px;right:30px}.top-link,.top-link svg{filter:drop-shadow(0px 0px 0px var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.nav{max-width:calc(var(--nav-width) + var(--gap) * 2);line-height:var(--header-height);flex-wrap:wrap;justify-content:space-between;margin-inline:auto;display:flex}.nav a{display:block}.logo,#menu{margin:auto var(--gap);display:flex}.logo{flex-wrap:inherit}.logo a{font-size:24px;font-weight:700}.logo a img,.logo a svg{vertical-align:middle;pointer-events:none;border-radius:6px;margin-inline-end:8px;display:inline;transform:translateY(-10%)}button#theme-toggle{margin:auto 4px;font-size:26px}body.dark #moon{vertical-align:middle;display:none}body:not(.dark) #sun{display:none}#menu{word-break:keep-all;white-space:nowrap;list-style:none;overflow-x:auto}#menu li+li{margin-inline-start:var(--gap)}#menu a{font-size:16px}#menu .active{border-bottom:2px solid;font-weight:500}.lang-switch li,.lang-switch ul,.logo-switches{margin:auto 4px;display:inline-flex}.lang-switch{flex-wrap:inherit;display:flex}.lang-switch a{margin:auto 3px;font-size:16px;font-weight:500}.logo-switches{flex-wrap:inherit}a,svg{transition-property:background-color,color;transition-duration:.4s;transition-timing-function:cubic-bezier(.33,1,.68,1)}.main{min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);padding:var(--gap);margin:auto;position:relative}.page-header h1{font-size:40px}.pagination{display:flex}.pagination a{color:var(--theme);background:var(--primary);border-radius:18px;padding:0 16px;font-size:13px;line-height:36px}.pagination .next{margin-inline-start:auto}.social-icons a{padding:10px;display:inline-flex}.social-icons a svg{color:#000;width:26px;height:26px}.social-icons a svg:hover{color:#be1e1e}code{direction:ltr}div.highlight,pre{position:relative}.copy-code{color:#fffc;border-radius:var(--radius);user-select:none;background:#4e4e4ecc;padding:0 5px;font-size:14px;display:none;position:absolute;top:4px;right:4px}div.highlight:hover .copy-code,pre:hover .copy-code{display:block}.first-entry{min-height:220px;margin:var(--gap) 0 calc(var(--gap) * 2) 0;flex-direction:column;justify-content:center;display:flex;position:relative}.first-entry .entry-header{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-content{-webkit-line-clamp:3;margin:14px 0;font-size:16px}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{-webkit-line-clamp:unset}.post-entry{margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);border:1px solid var(--border);transition:background-color .4s cubic-bezier(.33,1,.68,1),color .4s cubic-bezier(.33,1,.68,1),box-shadow .4s cubic-bezier(.33,1,.68,1),transform .4s cubic-bezier(.33,1,.68,1);position:relative}.post-entry:active{transform:scale(.96)}.tag-entry .entry-cover{display:none}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{color:var(--secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:8px 0;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;inset:0}.entry-hint{color:var(--secondary)}.entry-hint-parent{justify-content:space-between;display:flex}.entry-cover{margin-bottom:var(--gap);text-align:center;font-size:14px}.entry-cover img{border-radius:var(--radius);pointer-events:none;width:100%;height:auto}.entry-cover a{color:var(--secondary);box-shadow:0 1px 0 var(--primary)}.page-header,.post-header{margin:24px auto var(--content-gap) auto}.post-title{margin-bottom:2px;font-size:32px}.post-description{margin-top:10px;margin-bottom:5px}.post-meta,.breadcrumbs{color:var(--secondary);flex-wrap:wrap;font-size:14px;display:flex}.post-meta .i18n_list li{box-shadow:0 1px 0 var(--secondary);margin:auto 3px;list-style:none;display:inline-flex}.breadcrumbs a{font-size:16px}.post-content{color:var(--content)}.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin:24px 0 16px}.post-content h1{margin:32px auto;font-size:32px}.post-content h2{margin:32px auto 24px;font-size:28px}.post-content h3{font-size:20px}.post-content h4{font-size:16px}.post-content h5{font-size:14px}.post-content h6{font-size:12px}.post-content a,.toc a:hover{-webkit-box-decoration-break:clone;box-decoration-break:clone;transition-property:transform,box-shadow,color;transition-duration:.4s;transition-timing-function:cubic-bezier(.33,1,.68,1);box-shadow:0 1px}.post-content a:hover{color:#0064aa}.post-content a code{box-shadow:0 -1px 0 var(--primary) inset;border-radius:0;margin:auto 0}.post-content del{text-decoration:line-through}.post-content dl,.post-content ol,.post-content p,.post-content figure,.post-content ul{margin-bottom:var(--content-gap)}.post-content ol,.post-content ul{padding-inline-start:20px}.post-content li{margin-top:5px}.post-content li p{margin-bottom:0}.post-content dl{flex-wrap:wrap;margin:0;display:flex}.post-content dt{width:25%;font-weight:700}.post-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.post-content dd~dd,.post-content dt~dt{margin-top:10px}.post-content table{margin-bottom:var(--content-gap)}.post-content table th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{border-bottom:1px solid var(--border);min-width:80px;padding:8px 5px;line-height:1.5}.post-content table th{text-align:start}.post-content table:not(.highlighttable) td code:only-child{margin:auto 0}.post-content .highlight table{border-radius:var(--radius)}.post-content .highlight:not(table){border-radius:var(--radius);direction:ltr;margin:10px auto;background:var(--code-block-bg)!important}.post-content li>.highlight{margin-inline-end:0}.post-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.post-content .highlight pre{margin:0}.post-content .highlighttable{table-layout:fixed}.post-content .highlighttable td:first-child{width:40px}.post-content .highlighttable td .linenodiv{padding-inline-end:0!important}.post-content .highlighttable td .highlight,.post-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{background:var(--code-bg);border-radius:2px;margin:auto 4px;padding:4px 6px;font-size:.78em;line-height:1.5}.post-content pre code{color:#d5d5d6;border-radius:var(--radius);word-break:break-all;margin:auto 0;padding:10px;display:grid;overflow-x:auto;background:var(--code-block-bg)!important}.post-content blockquote{border-inline-start:3px solid var(--primary);margin:20px 0;padding:0 14px}.post-content hr{background:var(--tertiary);border:0;height:2px;margin:30px 0}.post-content iframe{max-width:100%}.post-content img{border-radius:4px;margin:1rem 0}.post-content img[src*=\#center]{margin:1rem auto}.post-content figure.align-center{text-align:center}.post-content figure>figcaption{color:var(--primary);margin:8px 0 16px;font-size:16px;font-weight:700}.post-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.toc{border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);margin:0 2px 40px;padding:.4em}.dark .toc{background:var(--entry)}.toc details summary{cursor:zoom-in;margin-inline-start:20px}.toc details[open] summary{cursor:zoom-out}.toc .details{font-weight:500;display:inline}.toc .inner{margin:0 20px;padding:10px 20px}.toc li ul{margin-inline-start:var(--gap)}.toc summary:focus{outline:0}.post-footer{margin-top:56px}.post-footer>*{margin-bottom:10px}.post-tags{flex-wrap:wrap;gap:10px;display:flex}.post-tags li{display:inline-block}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius)}.post-tags a{color:var(--secondary);background:var(--code-bg);padding:0 14px;font-size:14px;line-height:34px;transition-property:background-color,color;transition-duration:.4s;transition-timing-function:cubic-bezier(.33,1,.68,1);display:block}.post-tags a:hover,.paginav a:hover{color:#fff;background:#0064aa}.share-buttons{justify-content:flex-start;gap:10px;padding:10px;display:flex;overflow-x:auto}.share-buttons li,.share-buttons a{transition-property:transform,box-shadow,color;transition-duration:.4s;transition-timing-function:cubic-bezier(.33,1,.68,1);display:inline-flex}.share-buttons li:hover,.share-buttons a:hover{color:#0064aa}.share-buttons a:not(:last-of-type){margin-inline-end:12px}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{color:var(--secondary);user-select:none;margin-inline-start:8px;font-weight:500;display:inline-flex}.paginav{line-height:30px;display:flex}.paginav a{border-radius:var(--radius);padding-inline:14px}.paginav .title{letter-spacing:1px;text-transform:uppercase;color:var(--secondary);font-size:small}.paginav .prev,.paginav .next{width:50%}.paginav .next{text-align:right;margin-inline-start:auto}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}img.in-text{margin:auto;display:inline}figure{text-align:center}figure>img{display:inline-block;margin:0 auto!important}figure>figcaption{margin:0 auto!important}@media (width<=768px){.ps-root{overflow-y:scroll}}.buttons,.main .profile{justify-content:center;display:flex}.main .profile{min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));text-align:center;align-items:center}.profile .profile_inner{flex-direction:column;align-items:center;gap:10px;display:flex}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px}.button{background:var(--tertiary);border-radius:var(--radius);margin:8px;padding:6px;transition:transform .1s}.button-inner{padding:0 8px}.button:active{transform:scale(.96)}#searchbox input{width:100%;color:var(--primary);border:2px solid var(--tertiary);border-radius:var(--radius);padding:4px 10px;font-weight:700}#searchbox input:focus{border-color:var(--secondary)}#searchResults li{border-radius:var(--radius);margin:10px 0;padding:10px;font-weight:500;list-style:none;position:relative}#searchResults{width:100%;margin:10px 0}#searchResults li:active{transition:transform .1s;transform:scale(.98)}#searchResults a{outline:none;width:100%;height:100%;position:absolute;top:0;left:0}#searchResults .focus{border:2px solid var(--tertiary);transform:scale(.98)}.terms-tags li{margin:10px;font-weight:500;display:inline-block}.terms-tags a{background:var(--tertiary);border-radius:6px;padding:3px 10px;transition:transform .1s;display:block}.terms-tags a:active{background:var(--tertiary);transform:scale(.96)}.bg,.chroma{color:#cad3f5;background-color:#24273a}.chroma .err{color:#ed8796}.chroma .lnlinks{color:inherit;outline:none;text-decoration:none}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntable{border-spacing:0;border:0;margin:0;padding:0}.chroma .hl{background-color:#474733}.chroma .lnt,.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;color:#8087a2;margin-right:.4em;padding:0 .4em}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp,.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .na{color:#8aadf4}.chroma .nb,.chroma .bp{color:#91d7e3}.chroma .nc,.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf,.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn,.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#f4dbd6}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb,.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si,.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1,.chroma .ss{color:#a6da95}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#f5a97f}.chroma .o,.chroma .ow{color:#91d7e3;font-weight:700}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-style:italic;font-weight:700}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma{background-color:unset!important}.chroma .hl{display:flex}.chroma .lnt{padding:0 0 0 12px}.highlight pre.chroma code{padding:8px 0}.highlight pre.chroma .line .cl,.chroma .ln{padding:0 10px}.chroma .lntd:last-of-type{width:100%}::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-track{background:var(--code-bg)}::-webkit-scrollbar-thumb{background:var(--tertiary);border:5px solid var(--theme);border-radius:var(--radius)}.list:not(.dark)::-webkit-scrollbar-thumb{border:5px solid var(--code-bg)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}:not(.highlighttable,.highlight table,.gist .highlight)::-webkit-scrollbar{background:var(--theme)}.post-content .highlighttable td .highlight pre code::-webkit-scrollbar{display:none}.post-content :not(table) ::-webkit-scrollbar-thumb{border:2px solid var(--code-block-bg);background:#717175}.post-content :not(table) ::-webkit-scrollbar-thumb:hover{background:#a3a3a5}.gist table::-webkit-scrollbar-thumb{background:#adadad;border:2px solid #fff}.gist table::-webkit-scrollbar-thumb:hover{background:#707070}.post-content table::-webkit-scrollbar-thumb{border-width:2px}@media screen and (width>=768px){::-webkit-scrollbar{width:19px;height:11px}}@media screen and (width<=768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap)}}@media screen and (width<=900px){.list .top-link{transform:translateY(-5rem)}}@media screen and (width<=340px){.share-buttons{justify-content:unset}}@media (prefers-reduced-motion){.terms-tags a:active,.button:active,.post-entry:active,.top-link,#searchResults .focus,#searchResults li:active{transform:none}}:root{--theme:#fff;--entry:#fff;--primary:#111820;--secondary:#566170;--content:#35404e;--tertiary:#d8dfe7;--border:#dfe4eb;--code-bg:#f4f6f8;--accent:#0759c7;--accent-soft:#f0f5fc;--section-accent:#087f8c;--link-highlight-background:#000;--link-highlight-color:#fff;--main-width:860px;--nav-width:1320px;--radius:4px;--ease-soft:cubic-bezier(.22, 1, .36, 1);color-scheme:light;scroll-behavior:smooth;scroll-padding-top:32px}body.dark{--theme:#16191d;--entry:#16191d;--primary:#edf0f5;--secondary:#a9b2c0;--content:#c8cfda;--tertiary:#414a58;--border:#343d49;--code-bg:#20262f;--accent:#8ab9ff;--accent-soft:#202b3b;--section-accent:#55d4e0;--link-highlight-background:var(--primary);--link-highlight-color:var(--theme);color-scheme:dark}body,body.list,body.dark.list{background:var(--theme);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:18px;line-height:1.65;transition:background-color .28s,color .28s}a,button,input,summary{-webkit-tap-highlight-color:transparent;transition:color .24s,background-color .24s,border-color .24s}a{text-underline-offset:5px}a:hover{color:var(--accent)}:where(a,button,input,summary):focus-visible,.top-link:focus-visible,#theme-toggle:focus-visible,#searchResults a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}:where(main,body)[tabindex="-1"]:focus{outline:none}[hidden],.top-link[hidden]{display:none!important}.skip-link{z-index:1000;background:var(--theme);color:var(--accent);border:1px solid var(--accent);padding:8px 16px;position:fixed;top:10px;left:20px;transform:translateY(-160%)}.skip-link:focus-visible{transform:translateY(0)}.header{padding:22px 48px 0}.nav{border-bottom:1px solid var(--border);flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:28px;max-width:1320px;min-height:48px;margin:0 auto;padding-bottom:16px;line-height:1.4;display:flex}.logo{margin:0 auto 0 0}.logo a{letter-spacing:-.04em;font-size:24px;font-weight:650}#menu{gap:32px;margin:0;display:flex;overflow:visible}#menu li+li{margin:0}#menu a{color:var(--secondary);white-space:nowrap;padding:7px 0;font-size:16px;position:relative}#menu a:after{content:"";transform-origin:0;height:1px;transition:transform .28s var(--ease-soft);background:currentColor;position:absolute;bottom:1px;left:0;right:0;transform:scaleX(0)}#menu a:hover,#menu a[aria-current=page]{color:var(--accent)}#menu a:hover:after,#menu a:focus-visible:after{transform:scaleX(1)}#menu .active{border:0;font-weight:500}.theme-control{align-items:center;margin-left:auto;display:flex}button#theme-toggle{width:36px;height:36px;color:var(--secondary);border-radius:50%;place-items:center;margin:0;display:grid}button#theme-toggle:hover{color:var(--accent);background:var(--accent-soft)}#theme-toggle svg{width:19px;height:19px}.main{max-width:908px;min-height:calc(100svh - 230px);padding:42px 24px 72px}.footer{text-align:left;max-width:1416px;padding:24px 48px 32px;font-size:13px;line-height:1.65}.footer-navigation{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding-top:22px;display:flex}.footer-navigation nav{flex-wrap:wrap;gap:22px;display:flex}.footer a{color:var(--secondary);border:0;text-decoration:underline #0000;transition:color .24s,text-decoration-color .24s}.footer a:hover{color:var(--accent);border:0;text-decoration-color:currentColor}.footer-details{color:var(--secondary);justify-content:space-between;gap:20px;margin-top:11px;font-size:12px;display:flex}.footer span:last-child{white-space:normal}.visitor-map{opacity:.5;width:28px;height:28px;margin-top:10px;position:absolute}.top-link{visibility:visible;opacity:1;background:var(--theme);width:40px;height:40px;color:var(--secondary);border:1px solid var(--border);box-shadow:none;border-radius:4px;place-items:center;padding:9px;transition:color .24s,border-color .24s;display:grid;bottom:24px;right:24px}.top-link:hover{color:var(--accent);border-color:var(--accent)}.list .top-link{transform:none}.dossier-shell{--profile-trail-gutter:max(48px, calc((100vw - 1320px) / 2));--profile-trail-gap:56px;grid-template-columns:276px minmax(0,1fr);column-gap:56px;width:calc(100% - 96px);max-width:1320px;margin:26px auto 0;display:grid}.profile-sidebar{isolation:isolate;border-right:1px solid #0000;padding:24px 32px 40px 0;position:relative}.profile-photo{background:0 0;border-radius:6px;width:144px;height:144px;margin-bottom:22px}.profile-name{letter-spacing:-.045em;color:var(--primary);font-size:32px;font-weight:650;line-height:1.2;display:block}.profile-description{margin-top:8px}.profile-role{font-size:18px;line-height:1.45}.profile-cursor-trail{top:-20px;left:calc(-1 * var(--profile-trail-gutter));width:calc(100% + var(--profile-trail-gutter) + var(--profile-trail-gap));height:calc(var(--profile-trail-height,660px) + 40px);z-index:-1;pointer-events:none;contain:paint;-webkit-mask-image:var(--profile-trail-mask,none);mask-image:var(--profile-trail-mask,none);-webkit-mask-composite:source-in;position:absolute;overflow:hidden;mask-composite:intersect}.profile-cursor-trail-canvas{opacity:0;width:100%;height:100%;position:absolute;inset:0}.profile-cursor-trail-ready .profile-cursor-trail-canvas{opacity:1}.profile-summary{margin-top:26px}.profile-bio{color:var(--content);font-size:16px;line-height:1.55}.profile-bio+.profile-bio{margin-top:8px}.profile-links{border-top:1px solid #0000;flex-direction:column;align-items:flex-start;gap:14px;margin-top:22px;padding-top:18px;font-size:16px;display:flex}.profile-link-icon,.action-icon{flex:0 0 21px;justify-content:center;align-items:center;width:21px;height:21px;display:inline-flex}.profile-link-icon svg,.action-icon svg{width:21px;height:21px}.profile-about-link{margin-top:4px}.dossier-content{min-width:0}.dossier-header{padding:0}.dossier-header .nav{gap:32px;min-height:44px;padding-bottom:13px}.dossier-page .main{max-width:none;min-height:auto;padding:25px 0 60px}.section-label{letter-spacing:.075em;color:var(--secondary);text-transform:uppercase;margin-bottom:16px;font-size:12px;font-weight:600;line-height:1.5}.selected-research>.section-label,.research-section>.section-label{color:var(--section-accent)}.selected-research>.section-label{border-left:2px solid var(--section-accent);padding-left:9px}.research-kicker{color:var(--secondary);margin-bottom:9px;font-size:17px;line-height:1.5}.research-headline{letter-spacing:-.04em;max-width:960px;font-size:clamp(34px,2.6vw,40px);font-weight:650;line-height:1.15}.research-title-row{flex-wrap:wrap;align-items:baseline;gap:10px 14px;display:flex}.research-title-row .research-headline{min-width:0;max-width:100%}.research-tags{vertical-align:middle;flex-wrap:wrap;gap:6px;max-width:100%;display:inline-flex}.research-tag{border:1px solid var(--border);color:var(--secondary);background:var(--code-bg);letter-spacing:normal;white-space:nowrap;border-radius:3px;align-items:center;padding:2px 8px;font-size:13px;font-weight:400;line-height:1.45;display:inline-flex}.research-summary{color:var(--secondary);max-width:77ch;margin-top:12px;font-size:18px;line-height:1.55}.research-model{text-align:left;background:#fff;border-radius:2px;width:100%;max-width:800px;margin:22px 0 18px}.research-model a{border-radius:2px;display:block}.research-model img{width:100%;max-width:none;height:auto;margin:0;display:block}.research-actions{flex-wrap:wrap;align-items:center;gap:22px;padding:5px 0 23px;font-size:17px;display:flex}.research-actions a+a{border-left:1px solid var(--border);padding-left:24px}.text-link{color:var(--accent);align-items:center;gap:10px;text-decoration:underline 1px #0000;transition:text-decoration-color .24s,color .24s;display:inline-flex}.text-link:hover{text-decoration-color:currentColor}.link-arrow{transition:transform .28s var(--ease-soft);flex:0 0 18px}a:hover .link-arrow,a:focus-visible .link-arrow{transform:translate(3px)}.research-section{border-top:1px solid var(--border);padding-top:18px}.research-section .section-label{margin-bottom:8px}.research-list{list-style:none}.research-list>li+li{border-top:1px solid var(--border)}.research-row{color:var(--primary);grid-template-columns:minmax(0,1fr) minmax(180px,.66fr) 18px;align-items:center;gap:24px;padding:13px 0;line-height:1.5;display:grid}.research-row-title{font-size:17px;font-weight:500}.research-row-meta{color:var(--secondary);font-size:14px}.research-row .link-arrow{color:var(--secondary)}.research-index-link{margin-top:9px;margin-bottom:20px;font-size:14px}.highlights-section{padding-top:18px}.highlights-list{list-style:none}.highlights-list li{align-items:baseline;gap:18px;padding:7px 0;font-size:15px;line-height:1.65;display:flex}.highlight-year{white-space:nowrap;font-variant-numeric:tabular-nums;min-width:4ch;color:var(--primary);flex:none}.highlight-text{min-width:0}.highlights-list .text-link{color:var(--secondary);display:inline}.highlights-list .link-arrow{vertical-align:-3px;margin-left:7px;display:inline-block}.page-header,.post-header{margin-top:0;margin-bottom:32px}.page-header h1{letter-spacing:-.04em;font-size:38px;font-weight:650}.post-title{letter-spacing:-.035em;font-size:36px;font-weight:650;line-height:1.2}.post-description{color:var(--secondary);margin-top:14px;font-size:18px;line-height:1.6}.post-meta{margin-top:13px;font-size:13px}.post-entry{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;margin:0;padding:24px 0;transition:background-color .25s,color .25s}.post-entry:active,#searchResults li:active,#searchResults .focus,.terms-tags a:active{transform:none}.post-entry:hover{box-shadow:none}.post-entry .entry-header h2{letter-spacing:-.02em;font-size:24px;font-weight:550;line-height:1.35}.post-entry .entry-content{margin:11px 0;font-size:16px;line-height:1.65}.post-entry .entry-footer{font-size:13px}.post-entry .entry-cover{max-width:660px;margin:0 0 22px}.post-entry .entry-link{border-radius:0}.entry-cover img{border-radius:2px}.post-content{font-size:17px;line-height:1.8}.post-content h2{letter-spacing:-.025em;margin-top:42px;font-size:28px;font-weight:600}.post-content h3{font-size:21px;font-weight:600}.post-content a{color:var(--accent);box-shadow:none}.post-content img{background:#fff}.post-content pre{max-width:100%;overflow-x:auto}.post-content .ps-root{max-width:100%;overflow:auto visible}.post-content .ps-root .ps-algorithm,.post-content .ps-root .ps-algorithm.with-caption>.ps-line:first-child{border-color:currentColor}.toc{background:var(--code-bg);border-radius:4px;margin-bottom:36px;padding:12px 16px}.toc details summary{cursor:pointer;margin-left:0;font-size:15px}.toc .inner{margin:0;padding:14px 20px 0;font-size:15px}.post-tags a,.terms-tags a{background:var(--code-bg);color:var(--secondary);border-radius:3px;font-size:14px}.post-tags a:hover,.terms-tags a:hover{background:var(--accent-soft);color:var(--accent)}.paginav{border-top:1px solid var(--border);gap:24px;padding-top:24px;font-size:15px}.paginav a{padding:0}.paginav a:hover{color:var(--accent);background:0 0}.paginav span:hover:not(.title){box-shadow:none}.archive-year{margin-top:34px}.archive-year:not(:last-of-type){border-bottom-width:1px}.archive-year-header{letter-spacing:-.02em;font-size:26px;font-weight:550}.archive-month-header{width:180px;font-size:17px;font-weight:500}.archive-entry{padding:14px 0}.archive-entry-title{font-size:18px;line-height:1.5}.terms-tags{flex-wrap:wrap;gap:12px;display:flex}.terms-tags li{margin:0}.terms-tags a{padding:8px 14px}#searchbox input{border:1px solid var(--border);border-radius:3px;padding:13px 16px;font-size:18px;font-weight:400;transition:border-color .24s,box-shadow .24s}#searchbox input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}#searchResults li{border-radius:0;margin:0;padding:20px 0;font-size:18px}#searchResults .focus{border:0;border-bottom:1px solid var(--border);background:var(--accent-soft)}.search-fallback{color:var(--secondary);margin-top:26px;font-size:16px}.search-fallback-list{margin-top:15px;padding-left:22px}.about-page{max-width:800px}.about-page .page-header{margin-bottom:26px}.about-page .page-header .section-label{margin-bottom:10px}.about-content{font-size:18px}.about-content>p:first-child{color:var(--primary);font-size:21px;line-height:1.6}.about-content ul{padding-left:22px}.about-content li{margin:15px 0}.about-introduction{font-size:17px;line-height:1.75}.about-introduction>p:first-child{font-size:20px;line-height:1.6}.about-section-nav{flex-wrap:wrap;gap:8px 24px;padding:18px 0 22px;font-size:14px;line-height:1.6;display:flex}.about-section-nav a{color:var(--accent);text-decoration:underline #0000;transition:color .24s,text-decoration-color .24s}.about-section-nav a:hover{text-decoration-color:currentColor}.about-section{border-top:1px solid var(--border);margin-top:36px;padding-top:26px}.about-section:first-child{border-top:0;margin-top:0;padding-top:0}.about-section:focus{outline:none}.about-section-title{letter-spacing:-.025em;margin-bottom:22px;font-size:24px;font-weight:600;line-height:1.35}.about-section .post-content{font-size:16px;line-height:1.75}.about-section .about-content>p:first-child{color:var(--content);font-size:16px;line-height:1.75}.about-section .post-content p,.about-section .post-content ul{margin-bottom:14px}.about-section .post-content li{margin:8px 0}.cv-entry{border-top:1px solid var(--border);padding:22px 0}.cv-entry:first-child{border-top:0;padding-top:0}.cv-entry:last-child{padding-bottom:0}.cv-entry-title{letter-spacing:-.015em;margin:0;font-size:19px;font-weight:550;line-height:1.4;display:block}.cv-entry-meta{color:var(--secondary);letter-spacing:normal;font-variant-numeric:tabular-nums;margin-top:6px;font-size:14px;font-weight:400;line-height:1.6;display:block}.cv-entry-content{margin-top:14px}.cv-entry-content>:last-child{margin-bottom:0}.cv-entry-content ul{padding-left:21px}.cv-entry-disclosure>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;list-style:none;display:flex}.cv-entry-disclosure>summary::-webkit-details-marker{display:none}.cv-entry-disclosure>summary h3{min-width:0;margin:0}.cv-entry-disclosure>summary:after{content:"+";color:var(--secondary);text-align:center;flex:0 0 18px;font-size:22px;line-height:1;transition:color .24s}.cv-entry-disclosure>summary:hover:after{color:var(--accent)}.cv-entry-disclosure[open]>summary:after{content:"−"}.cv-entry-disclosure[open] .cv-entry-content{animation:cv-disclose .65s var(--ease-soft)}.about-tools .post-content{color:var(--secondary);font-size:15px}.about-tools .post-content strong{color:var(--primary);font-weight:550}@keyframes cv-disclose{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.not-found{letter-spacing:-.05em;height:45vh;font-size:96px;position:static}.link-highlight,.link-highlight-scope a:not([hidden],.anchor,:has(img,picture,svg)){-webkit-box-decoration-break:clone;box-decoration-break:clone;text-underline-offset:4px;background-color:#0000;padding:2px 4px;text-decoration:underline 1.5px #0000;transition:background-color .26s,color .26s,text-decoration-color .26s}.link-highlight:hover,.link-highlight:focus-visible,.link-highlight-scope a:not([hidden],.anchor,:has(img,picture,svg)):hover,.link-highlight-scope a:not([hidden],.anchor,:has(img,picture,svg)):focus-visible,.link-highlight-trigger:hover .link-highlight,.link-highlight-trigger:focus-within .link-highlight{color:var(--link-highlight-color);background-color:var(--link-highlight-background);text-decoration-color:currentColor}@media (width<=1150px){.dossier-shell{--profile-trail-gap:40px;grid-template-columns:240px minmax(0,1fr);column-gap:40px}.profile-sidebar{padding-right:26px}.research-headline{font-size:35px}.research-row{grid-template-columns:minmax(0,1fr) minmax(140px,.65fr) 18px;gap:18px}}@media (width<=920px){.dossier-shell{--profile-trail-gutter:32px;--profile-trail-gap:32px;flex-direction:column;width:calc(100% - 64px);margin-top:20px;display:flex}.dossier-content{display:contents}.dossier-header{order:-1;margin-bottom:30px}.profile-sidebar{border-right:0;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:34px;padding:0 0 26px;display:grid}.profile-summary,.profile-description{margin-top:0}.profile-description .profile-summary{margin-top:26px}.profile-identity{padding-bottom:34px}.profile-links{border:0;flex-flow:wrap;grid-column:1/-1;gap:13px 23px;margin-top:20px;padding-top:0;font-size:14px;display:flex}.profile-about-link{margin:0}.profile-link-icon,.profile-link-icon svg{flex-basis:18px;width:18px;height:18px}.dossier-page .main{padding-top:28px}.research-model{max-width:800px}.header{padding:20px 32px 0}.footer{padding-left:32px;padding-right:32px}}@media (width<=600px){body{font-size:17px}.dossier-shell{--profile-trail-gutter:20px;--profile-trail-gap:20px;width:calc(100% - 40px);margin-top:15px}.dossier-header{margin-bottom:25px}.nav{gap:16px;min-height:42px;padding-bottom:12px}#menu{flex-wrap:wrap;gap:12px 24px;min-width:0}#menu a{font-size:15px}.dossier-header .nav{gap:16px}.header{padding:18px 20px 0}.header:not(.dossier-header) .nav{flex-wrap:wrap}.header:not(.dossier-header) .logo{flex:calc(100% - 60px);order:0}.header:not(.dossier-header) #menu{order:2;gap:27px;width:100%;margin-top:3px}.header:not(.dossier-header) .theme-control{order:1}.logo a{font-size:22px}.profile-sidebar{padding-bottom:25px;display:block}.profile-photo{width:108px;height:108px;margin-bottom:20px}.profile-name{font-size:30px}.profile-identity{padding-bottom:0}.profile-description{margin-top:7px}.profile-role{font-size:17px}.profile-summary{margin-top:26px}.profile-bio{max-width:41ch}.profile-links{gap:12px 22px;margin-top:18px}.profile-links .text-link{gap:7px}.profile-about-link{width:100%}.dossier-page .main{padding-top:27px;padding-bottom:44px}.section-label{margin-bottom:13px;font-size:11px}.research-kicker{margin-bottom:9px;font-size:15px}.research-headline{letter-spacing:-.035em;font-size:32px;line-height:1.18}.research-summary{margin-top:13px;font-size:16px;line-height:1.65}.research-model{margin-top:24px;margin-bottom:14px}.research-actions{gap:16px;padding-bottom:22px;font-size:15px}.research-actions a{gap:7px}.research-actions a+a{padding-left:16px}.action-icon,.action-icon svg{flex-basis:18px;width:18px;height:18px}.research-row{grid-template-columns:minmax(0,1fr) 18px;gap:3px 14px;padding:15px 0}.research-row-title{font-size:16px}.research-row-meta{grid-column:1;font-size:13px}.research-row .link-arrow{grid-area:1/2/3}.highlights-list li{gap:13px;padding:9px 0;font-size:14px}.main{padding:32px 20px 56px}.page-header h1{font-size:32px}.post-title{font-size:29px;line-height:1.25}.post-description{font-size:16px}.post-entry .entry-header h2{font-size:21px}.post-content,.about-content{font-size:16px}.about-content>p:first-child{font-size:19px}.about-section-nav{gap:8px 20px;padding-top:12px;padding-bottom:20px}.about-section{margin-top:30px;padding-top:22px}.about-section-title{margin-bottom:20px;font-size:22px}.cv-entry-title{font-size:18px}.cv-entry-meta{font-size:13px}.cv-entry{padding:20px 0}.post-content h2{font-size:25px}.archive-month{display:block}.archive-month-header{width:auto;margin-bottom:10px}.archive-entry{margin:0;padding:15px 0}.footer{padding:12px 20px 26px}.footer-navigation{flex-direction:column;align-items:flex-start;gap:14px;padding-top:20px}.footer-navigation nav{gap:22px}.footer-details{flex-direction:column;gap:5px;font-size:11px}.top-link{bottom:18px;right:18px}}@media (prefers-reduced-motion:reduce){html,:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}a:hover .link-arrow,a:focus-visible .link-arrow{transform:none}.profile-cursor-trail .profile-cursor-trail-canvas{opacity:0}}
