@import"https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,400&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{color-scheme:light;--global-bg-color:#fff;--global-code-bg-color:#f6f8fa;--global-text-color:#1f2933;--global-text-color-light:#4f5b6a;--global-heading-color:#111827;--global-theme-color:#0969da;--global-hover-color:#0969da;--global-hover-text-color:#fff;--global-footer-bg-color:#1c1c1d;--global-footer-text-color:#e8e8e8;--global-footer-link-color:#fff;--global-distill-app-color:#4f5b6a;--global-divider-color:rgba(15,23,42,0.22);--global-card-bg-color:#fff;--global-highlight-color:#b71c1c;--global-back-to-top-bg-color:rgba(0,0,0,0.4);--global-back-to-top-text-color:#fff;--global-newsletter-bg-color:#fff;--global-newsletter-text-color:#000;--global-text-secondary:#4f5b6a;--global-text-muted:#5b6776;--global-border-subtle:rgba(15,23,42,0.18);--global-border-default:rgba(15,23,42,0.26);--global-border-strong:rgba(15,23,42,0.34);--global-surface-default:#fff;--global-surface-elevated:#f8fafc;--global-surface-subtle:#f1f5f9;--global-link-color:#0b5fc2;--global-link-hover-color:#084c9a;--global-focus-ring-color:#0b5fc2;--global-focus-ring-shadow:rgba(11,95,194,0.25);--home-cube-body-color:#4f5b6a;--home-cube-panel-color:#1f2933;--home-cube-edge-color:#111827;--home-cube-divider-color:#5b6776;--home-cube-highlight-color:#1f2933;--post-inline-code-bg:rgba(9,105,218,0.07);--post-inline-code-border:rgba(9,105,218,0.2);--post-strong-color:#0d0d0d;--post-series-active-bg:rgba(9,105,218,0.09);--global-tip-block:#42b983;--global-tip-block-bg:#e2f5ec;--global-tip-block-text:#215d42;--global-tip-block-title:#359469;--global-warning-block:#e7c000;--global-warning-block-bg:#fff8d8;--global-warning-block-text:#6b5900;--global-warning-block-title:#b29400;--global-danger-block:#c00;--global-danger-block-bg:#ffe0e0;--global-danger-block-text:#600;--global-danger-block-title:#c00;--accent-orange:#f7a030;--accent-green:#3fb950;--accent-green-hi:#7ee787;--accent-blue:#0969da;--accent-blue-hi:#38bdf8;--accent-red:#cf222e;--fs-2xs:.75rem;--fs-xs:.8125rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:2rem;--fs-4xl:2.5rem;--fs-5xl:3.5rem}:root #light-toggle-system{padding-left:10px;padding-top:12px;display:block}:root #light-toggle-dark{display:none}:root #light-toggle-light{display:none}:root .only-light{display:block}:root .only-dark{display:none}:root #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color);bottom:30px;right:30px;height:40px;width:40px;z-index:10}html[data-theme=dark]{color-scheme:dark;--global-bg-color:#212529;--global-code-bg-color:#2e3640;--global-text-color:#e6edf3;--global-text-color-light:#a9b4c2;--global-heading-color:#f3f7fb;--global-theme-color:#f7a030;--global-hover-color:#f7a030;--global-hover-text-color:#fff;--global-footer-bg-color:#e8e8e8;--global-footer-text-color:#1c1c1d;--global-footer-link-color:#000;--global-distill-app-color:#e8e8e8;--global-divider-color:#505a68;--global-card-bg-color:#212529;--global-back-to-top-bg-color:rgba(255,255,255,0.5);--global-back-to-top-text-color:#000;--global-newsletter-bg-color:#e8e8e8;--global-newsletter-text-color:#1c1c1d;--global-text-secondary:#a9b4c2;--global-text-muted:#8f9baa;--global-border-subtle:rgba(226,232,240,0.2);--global-border-default:rgba(226,232,240,0.28);--global-border-strong:rgba(226,232,240,0.38);--global-surface-default:#212529;--global-surface-elevated:#262b31;--global-surface-subtle:#2d343d;--global-link-color:#ffbe64;--global-link-hover-color:#ffd08d;--global-focus-ring-color:#ffbe64;--global-focus-ring-shadow:rgba(255,190,100,0.28);--home-cube-body-color:#a9b4c2;--home-cube-panel-color:#e6edf3;--home-cube-edge-color:#f3f7fb;--home-cube-divider-color:#8f9baa;--home-cube-highlight-color:#f3f7fb;--post-inline-code-bg:rgba(247,160,48,0.1);--post-inline-code-border:rgba(247,160,48,0.28);--post-strong-color:#fff;--post-series-active-bg:rgba(247,160,48,0.1);--global-tip-block:#3fb950;--global-tip-block-bg:rgba(63,185,80,0.1);--global-tip-block-text:#7ee787;--global-tip-block-title:#3fb950;--global-warning-block:#e7c000;--global-warning-block-bg:rgba(231,192,0,0.1);--global-warning-block-text:#e2c268;--global-warning-block-title:#e7c000;--global-danger-block:#fb4934;--global-danger-block-bg:rgba(251,73,52,0.1);--global-danger-block-text:#ff8080;--global-danger-block-title:#fb4934}html[data-theme=dark] .only-light{display:none}html[data-theme=dark] .only-dark{display:block}html[data-theme-setting=dark] #light-toggle-system{display:none}html[data-theme-setting=dark] #light-toggle-dark{padding-left:10px;padding-top:12px;display:block}html[data-theme-setting=dark] #light-toggle-light{display:none}html[data-theme-setting=dark] #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color)}html[data-theme-setting=light] #light-toggle-system{display:none}html[data-theme-setting=light] #light-toggle-dark{display:none}html[data-theme-setting=light] #light-toggle-light{padding-left:10px;padding-top:12px;display:block}:root{--site-frame-max:1120px;--site-gutter-x:clamp(1rem,2vw,1.5rem)}@media(max-width:576px){:root{--site-gutter-x:12px}}@media(max-width:400px){:root{--site-gutter-x:10px}}body{padding-bottom:70px;color:var(--global-text-color);background-color:var(--global-bg-color);word-wrap:break-word;overflow-wrap:break-word;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:66px;word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}@media(max-width:576px){body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:56px}}@media(max-width:576px){body{font-size:.9375rem;line-height:1.6}}body.fixed-top-nav{padding-top:56px}body.sticky-bottom-footer{padding-bottom:0}.container{width:100%;max-width:var(--site-frame-max);padding-left:var(--site-gutter-x);padding-right:var(--site-gutter-x)}.profile img{width:100%}p,h1,h2,h3,h4,h5,h6,em,div,li,span,strong{color:var(--global-text-color)}hr{border-top:1px solid var(--global-divider-color)}table{width:100%;max-width:100%;margin-bottom:1rem}table td,table th{font-size:1rem;padding:1px 1rem 1px 0;word-wrap:break-word;overflow-wrap:break-word}table th{font-weight:bold}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{margin-bottom:0}@media(max-width:576px){.table-responsive>table{border:0}}a,table.table a{color:var(--global-link-color,var(--global-theme-color));transition:color .14s ease;text-underline-offset:2px;text-decoration-thickness:1px}a:hover,table.table a:hover{color:var(--global-link-hover-color,var(--global-hover-color));text-decoration:underline}a:hover:after :not(.nav-item.dropdown),table.table a:hover:after :not(.nav-item.dropdown){width:100%}.table-dark{background-color:rgba(0,0,0,0)}blockquote{background:var(--global-bg-color);border-left:5px solid var(--global-theme-color);margin:1.5em 0;padding:1em;font-size:1.2rem}blockquote p{margin-bottom:0}.equation{margin-bottom:1rem;text-align:center}.caption{font-size:.875rem;line-height:1.55;color:var(--global-text-muted,var(--global-text-color-light));margin-top:.75rem;margin-bottom:1.5rem;text-align:center}.card{background-color:var(--global-card-bg-color)}.card .card-title{color:var(--global-text-color)}.citation,.citation-number{color:var(--global-theme-color)}.profile{width:100%}.profile .more-info{margin-bottom:5px;margin-top:5px;font-family:monospace}.profile .more-info p{display:inline-block;margin:0}.profile.float-right{margin-left:1rem;margin-bottom:1rem}.profile.float-left{margin-right:1rem;margin-bottom:1rem}@media(max-width:400px){.profile{width:100%!important;float:none!important;margin-left:0!important;margin-right:0!important;margin-bottom:1.5rem;text-align:center}}@media(min-width:401px)and (max-width:575px){.profile.float-right{margin-left:1.5rem}.profile.float-left{margin-right:1.5rem}}@media(min-width:576px){.profile{width:30%}.profile .address p{display:block}.profile.float-right{margin-left:2.5rem;margin-bottom:0}.profile.float-left{margin-right:2.5rem;margin-bottom:0}}.post-description{margin-bottom:2rem;font-size:.875rem;color:var(--global-text-secondary,var(--global-text-color-light));word-wrap:break-word;overflow-wrap:break-word;hyphens:auto}@media(max-width:576px){.post-description{font-size:.8125rem;margin-bottom:1.5rem}}.post-description a{color:inherit}.post-description a:hover{color:var(--global-theme-color);text-decoration:none}.navbar{box-shadow:none;border-bottom:1px solid var(--global-border-default,var(--global-divider-color));background-color:var(--global-bg-color);background-color:color-mix(in srgb,var(--global-bg-color) 88%,transparent);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)}.navbar .dropdown-menu{background-color:var(--global-bg-color);border:1px solid var(--global-border-default,var(--global-divider-color))}.navbar .dropdown-menu a:not(.active){color:var(--global-text-color)}.navbar .dropdown-menu a:hover{color:var(--global-hover-color)}.dropdown-item{color:var(--global-text-color)}.dropdown-item:hover{color:var(--global-hover-color);background-color:var(--global-bg-color)}.dropdown-item:focus-visible{outline:2px solid var(--global-focus-ring-color,var(--global-theme-color));outline-offset:1px}.navbar.navbar-light a:hover{text-decoration:none}.navbar.navbar-light .navbar-brand{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:2px;border-radius:4px}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:inherit;font-weight:bolder;color:var(--global-theme-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-brand.social{padding-bottom:0;padding-top:0;font-size:1.7rem}.navbar.navbar-light .navbar-brand.social a img{width:1.7rem;height:1.7rem;margin-bottom:.5rem}.navbar.navbar-light .navbar-brand.social a svg{width:1.7rem;height:1.7rem;margin-bottom:.5rem}.navbar.navbar-light .navbar-brand.social a svg image{width:1.7rem;height:1.7rem}.navbar.navbar-light .navbar-brand.social a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.navbar.navbar-light .navbar-brand.social a:hover i::before{color:var(--global-theme-color)}.navbar-toggler .icon-bar{display:block;width:22px;height:2px;background-color:var(--global-text-color);border-radius:1px;margin-bottom:4px;transition:all .2s}.navbar-toggler .top-bar{transform:rotate(45deg);transform-origin:10% 10%}.navbar-toggler .middle-bar{opacity:0}.navbar-toggler .bottom-bar{transform:rotate(-45deg);transform-origin:10% 90%}.navbar-toggler.collapsed .top-bar{transform:rotate(0)}.navbar-toggler.collapsed .middle-bar{opacity:1}.navbar-toggler.collapsed .bottom-bar{transform:rotate(0)}#light-toggle,#search-toggle{padding:0;border:0;background-color:inherit;color:var(--global-text-color)}#light-toggle:hover,#search-toggle:hover{color:var(--global-hover-color)}#light-toggle:focus-visible,#search-toggle:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:2px;border-radius:4px}.mobile-nav-panel{display:contents}.mobile-nav-header{display:none}@media(max-width:576px){body:has(#navbarNav.show){overflow:hidden}.navbar-toggler{padding:10px 8px;margin-right:-6px}#navbarNav.collapse,#navbarNav.collapsing{display:flex!important;height:100dvh!important;transition:none!important}#navbarNav{position:fixed!important;inset:0;z-index:1050;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:0;background:var(--global-bg-color);background:color-mix(in srgb,var(--global-bg-color) 82%,transparent);backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);border-top:2px solid var(--global-theme-color);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px);transition:opacity .22s ease,visibility 0s .22s,transform .22s ease}#navbarNav.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .22s ease,transform .22s ease}#navbarNav .navbar-nav{flex:1;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px;width:100%!important;margin:0!important;padding:20px 32px 44px!important;flex-wrap:nowrap!important}#navbarNav .nav-item{width:100%;max-width:260px;margin:0;border:none!important;text-align:center}#navbarNav .nav-item .nav-link{display:block;padding:14px 24px;font-size:1.25rem;font-weight:500;letter-spacing:.01em;line-height:1.2;color:var(--global-text-color);border-left:0;text-align:center;background:rgba(0,0,0,0);border-radius:10px;transition:color .15s ease,background .15s ease}#navbarNav .nav-item .nav-link:hover{color:var(--global-theme-color);background:color-mix(in srgb,var(--global-theme-color) 8%,transparent);text-decoration:none}#navbarNav .nav-item.active .nav-link{color:var(--global-theme-color);font-weight:600;background:color-mix(in srgb,var(--global-theme-color) 12%,transparent)}#navbarNav .nav-item.dropdown .dropdown-menu{position:static!important;float:none;box-shadow:none;border:0;border-radius:0;background:rgba(0,0,0,0);padding:2px 0 8px;margin:0;text-align:center}#navbarNav .nav-item.dropdown .dropdown-menu .dropdown-item{display:block;padding:7px 16px;font-size:.9375rem;font-weight:400;color:var(--global-text-secondary,var(--global-text-color-light));text-align:center;background:rgba(0,0,0,0);transition:color .15s ease}#navbarNav .nav-item.dropdown .dropdown-menu .dropdown-item:hover{color:var(--global-theme-color);background:rgba(0,0,0,0)}#navbarNav .nav-item:has(#search-toggle){border:none!important;max-width:180px;margin-top:24px;padding-top:20px;border-top:1px solid var(--global-divider-color)!important;display:flex;justify-content:center}#navbarNav .toggle-container{border:none!important;margin-top:4px;padding:0;list-style:none;display:flex;justify-content:center}#navbarNav #search-toggle{background:rgba(0,0,0,0);border:0;padding:0;display:flex;align-items:center;justify-content:center}#navbarNav #search-toggle .nav-link{display:flex;align-items:center;justify-content:center;padding:8px 14px;font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--global-text-secondary,var(--global-text-color-light));border-left:0;gap:6px;min-height:auto;background:rgba(0,0,0,0);border-radius:8px;transition:color .15s ease,background .15s ease}#navbarNav #search-toggle .nav-link i{font-size:.875rem}#navbarNav #search-toggle .nav-link:hover{color:var(--global-hover-color);background:rgba(128,128,128,.1)}#navbarNav .toggle-container #light-toggle{display:flex;align-items:center;justify-content:center;padding:8px 10px;background:rgba(0,0,0,0);border:0;color:var(--global-text-secondary,var(--global-text-color-light));cursor:pointer;width:auto;border-radius:8px;transition:color .15s ease,background .15s ease}#navbarNav .toggle-container #light-toggle i{font-size:1rem}#navbarNav .toggle-container #light-toggle::after{content:none}#navbarNav .toggle-container #light-toggle:hover{color:var(--global-hover-color);background:rgba(128,128,128,.1)}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;height:60px;min-height:60px;flex-shrink:0;border-bottom:1px solid var(--global-divider-color)}.mobile-nav-brand{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--global-text-color-light);text-decoration:none;border-radius:10px;font-size:1.0625rem;transition:color .12s ease,background .12s ease}.mobile-nav-brand:hover{color:var(--global-theme-color);background:rgba(128,128,128,.1);text-decoration:none}.mobile-nav-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;background:rgba(0,0,0,0);color:var(--global-text-color-light);border-radius:10px;cursor:pointer;transition:background .12s ease,color .12s ease}.mobile-nav-close i{font-size:1.125rem;line-height:1}.mobile-nav-close:hover{background:rgba(128,128,128,.1);color:var(--global-text-color)}.mobile-nav-close:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:1px}.mobile-nav-close:focus:not(:focus-visible){outline:0}}.social{text-align:center;margin-top:3rem}.social .contact-icons{font-size:clamp(1.4rem,3.5vw,1.75rem)}.social .contact-icons a img{width:clamp(1.1rem,2.8vw,1.4rem);height:clamp(1.1rem,2.8vw,1.4rem);margin-bottom:.5rem}.social .contact-icons a svg{width:clamp(1.25rem,3vw,1.6rem);height:clamp(1.4rem,3.5vw,1.75rem);margin-bottom:.25rem}.social .contact-icons a svg image{width:clamp(1.25rem,3vw,1.6rem);height:clamp(1.25rem,3vw,1.6rem)}.social .contact-icons a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons a:hover{text-decoration:none}.social .contact-icons a:hover i::before{color:var(--global-theme-color)}.social .contact-note{font-size:.8rem;margin-top:.5rem;color:var(--global-text-secondary,var(--global-text-color-light))}footer.fixed-bottom{background-color:rgba(0,0,0,0);font-size:.8125rem}footer.fixed-bottom .container{color:var(--global-text-secondary,var(--global-text-color));padding-top:9px;padding-bottom:8px;text-align:center}footer.fixed-bottom a{color:var(--global-text-secondary,var(--global-text-color))}footer.fixed-bottom a:hover{color:var(--global-theme-color);text-decoration:none}footer.sticky-bottom{background-color:rgba(0,0,0,0);border-top:0;padding-top:40px;padding-bottom:40px;font-size:.9375rem}@media(max-width:576px){footer.sticky-bottom{padding-top:24px;padding-bottom:24px;font-size:.8125rem}}footer.sticky-bottom .container{text-align:center;color:var(--global-text-secondary,var(--global-text-color))}footer.sticky-bottom a{color:var(--global-text-secondary,var(--global-text-color))}footer.sticky-bottom a:hover{color:var(--global-theme-color);text-decoration:none}.post-content a:not(.badge):not(.btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--global-theme-color)}.post-content a:not(.badge):not(.btn):hover{text-decoration-thickness:2px}.post-content a:not(.badge):not(.btn):focus-visible{outline:2px solid var(--global-theme-color);outline-offset:3px;border-radius:2px}.post-content a:not(.badge):not(.btn):focus:not(:focus-visible){outline:0}.post-content :not(pre)>code{padding:.15em .42em;border-radius:4px;font-size:.875em;background-color:var(--post-inline-code-bg);border:1px solid var(--post-inline-code-border);box-shadow:inset 0 1px 2px rgba(0,0,0,.06);color:var(--global-theme-color);word-break:break-word}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{color:var(--global-heading-color,var(--global-text-color))}footer a.footer-license-link{color:var(--global-theme-color)}footer a.footer-license-link:hover{color:var(--global-theme-color);text-decoration:underline;filter:brightness(1.18)}.cv{margin-bottom:40px}.cv .card{background-color:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.cv .card .list-group-item{background-color:inherit;border-color:var(--global-divider-color)}.cv .card .list-group-item .badge{color:var(--global-card-bg-color)!important;background-color:var(--global-theme-color)!important}@media(min-width:768px){.repo{max-width:50%}}.blog-page .blog-header{text-align:center;padding:2rem 0 1.5rem;border-bottom:1px solid var(--global-divider-color);margin-bottom:1.25rem}@media(max-width:576px){.blog-page .blog-header{padding:1.5rem 0 1rem}}.blog-page .blog-title{color:var(--global-text-color);font-size:clamp(2.1rem,4.5vw,3.4rem);font-weight:600;letter-spacing:-0.02em;margin:0 0 .35em;line-height:1.1}@media(max-width:768px){.blog-page .blog-title{font-size:clamp(1.6rem,5vw,2.2rem)}}@media(max-width:576px){.blog-page .blog-title{font-size:clamp(1.35rem,6vw,1.7rem)}}.blog-page .blog-description{color:var(--global-text-color-light);font-size:1rem;margin:0;max-width:36em;margin-left:auto;margin-right:auto}.blog-page .blog-tags-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem .75rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--global-divider-color)}.blog-page .blog-tag-pill{display:inline-block;padding:.35em .85em;font-size:.875rem;color:var(--global-text-color);background:rgba(0,0,0,0);border:1px solid var(--global-divider-color);border-radius:2rem;text-decoration:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.blog-page .blog-tag-pill:hover{color:var(--global-theme-color);border-color:var(--global-theme-color);background:color-mix(in srgb,var(--global-theme-color) 8%,transparent);text-decoration:none}.blog-page .blog-tag-pill:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:2px}.blog-page .blog-posts-section{margin-top:.5rem}.blog-page .blog-posts-heading{font-size:1.125rem;font-weight:600;color:var(--global-text-color-light);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.25rem;padding-bottom:.5rem}.post-title{overflow-wrap:anywhere;hyphens:auto;max-width:100%;font-size:clamp(1.75rem,5vw,3rem);line-height:1.2;letter-spacing:-0.02em}@media(max-width:768px){.post-title{font-size:clamp(1.4rem,4.5vw,2rem);line-height:1.18;letter-spacing:-0.015em}}@media(max-width:576px){.post-title{font-size:clamp(1.1rem,5vw,1.35rem);line-height:1.2;letter-spacing:-0.01em;margin-bottom:.5rem}}.post-list{margin:0;margin-bottom:40px;padding:0}.post-list li{border-bottom:1px solid var(--global-divider-color);list-style:none;padding-top:2rem;padding-bottom:2rem}@media(max-width:576px){.post-list li{padding-top:1.25rem;padding-bottom:1.25rem}}.post-list li a{color:var(--global-text-color);text-decoration:none}.post-list li a:hover{color:var(--global-theme-color)}.pagination{flex-wrap:wrap;gap:.25rem}.distill a:hover{border-bottom-color:var(--global-theme-color);text-decoration:none}.projects a{text-decoration:none}.projects a:hover .card-title,.projects a:hover h2.category{color:var(--global-theme-color)}.projects .card img{width:100%}.projects .col{padding-bottom:1rem}.projects .grid-item{width:250px;margin-bottom:10px}.projects h2.category{color:var(--global-text-color);font-size:1.35rem;font-weight:600;letter-spacing:.02em;border-bottom:0;border-left:4px solid var(--global-theme-color);padding:.5rem 0 .5rem 1rem;margin-top:2rem;margin-bottom:1rem;text-align:left;text-transform:capitalize}.projects h2.category:first-child{margin-top:.5rem}.publications{margin-top:2rem}.publications h1{color:var(--global-theme-color);font-size:2rem;text-align:center;margin-top:1em;margin-bottom:1em}.publications h2{margin-bottom:1rem}.publications h2 span{font-size:1.5rem}.publications h2.bibliography{color:var(--global-text-color-light);border-top:1px solid var(--global-divider-color);padding-top:1rem;margin-top:2rem;text-align:right}.publications ol.bibliography{list-style:none;padding:0;margin-top:0}.publications ol.bibliography li{margin-bottom:1rem}.publications ol.bibliography li .abbr{margin-bottom:.5rem}.publications ol.bibliography li .abbr abbr{display:inline-block;background-color:var(--global-theme-color);margin-bottom:.5rem;color:var(--global-card-bg-color)!important}.publications ol.bibliography li .abbr abbr a{color:#fff}.publications ol.bibliography li .abbr abbr a:hover{text-decoration:none}.publications ol.bibliography li .abbr .award{color:var(--global-theme-color)!important;border:1px solid var(--global-theme-color)}.publications ol.bibliography li .title{font-weight:bolder}.publications ol.bibliography li .author a{border-bottom:1px dashed var(--global-theme-color)}.publications ol.bibliography li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .author>span.more-authors{color:var(--global-text-color-light);border-bottom:1px dashed var(--global-text-color-light);cursor:pointer}.publications ol.bibliography li .author>span.more-authors:hover{color:var(--global-text-color);border-bottom:1px dashed var(--global-text-color)}.publications ol.bibliography li .links a.btn{color:var(--global-text-color);border:1px solid var(--global-text-color);padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;margin-left:0}.publications ol.bibliography li .links a.btn:hover{color:var(--global-theme-color);border-color:var(--global-theme-color)}.publications ol.bibliography li .links a.award.btn{border-color:var(--global-highlight-color)}.publications ol.bibliography li .badges{padding-bottom:.5rem}.publications ol.bibliography li .badges span{display:inline-block;color:#000;height:100%;padding-right:.5rem;vertical-align:middle}.publications ol.bibliography li .badges span:hover{text-decoration:underline}.publications ol.bibliography li .hidden{font-size:.875rem;max-height:0;overflow:hidden;text-align:justify;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li .hidden p{line-height:1.4em;margin:10px}.publications ol.bibliography li .hidden pre{font-size:1em;line-height:1.4em;padding:10px}.publications ol.bibliography li .hidden.open{max-height:100em;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open{border-color:var(--global-text-color)}.publications ol.bibliography div.award.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography div.award.hidden.open{border-color:var(--global-highlight-color)}figure.highlight{margin:0 0 1rem}pre{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:6px;padding:6px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;word-wrap:normal;word-break:normal;white-space:pre}@media(max-width:576px){pre{font-size:.875rem;padding:8px}}pre pre,pre code{background-color:rgba(0,0,0,0);border-radius:0;margin-bottom:0;padding:0;overflow-x:visible}code{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:3px;padding:3px 3px}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 750ms!important;transition-delay:0!important}.post{word-wrap:break-word;overflow-wrap:break-word}@media(max-width:576px){.post{padding-left:.75rem;padding-right:.75rem}}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:rgba(0,0,0,0);color:var(--global-theme-color)}progress::-webkit-progress-bar{background-color:rgba(0,0,0,0)}progress::-webkit-progress-value{background-color:var(--global-theme-color)}progress::-moz-progress-bar{background-color:var(--global-theme-color)}.progress-container{width:100%;background-color:rgba(0,0,0,0);position:fixed;top:56px;left:0;height:5px;display:block}.progress-bar{background-color:var(--global-theme-color);width:0;display:block;height:inherit}nav[data-toggle=toc]{top:5rem;border-left:2px solid var(--global-border-default,var(--global-divider-color));padding-left:.5rem}nav[data-toggle=toc] .nav .nav>li>a{font-size:var(--fs-xs,0.8125rem)}nav[data-toggle=toc] .nav>li>a{color:var(--global-text-secondary,var(--global-text-color-light));font-size:var(--fs-xs,0.8125rem);transition:color .14s ease}nav[data-toggle=toc] .nav>li>a:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}nav[data-toggle=toc] .nav>li>a:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:1px;border-radius:2px}nav[data-toggle=toc] .nav>li>a:focus:not(:focus-visible){outline:0}nav[data-toggle=toc] .nav-link.active{color:var(--global-theme-color);border-left-color:var(--global-theme-color);font-size:var(--fs-xs,0.8125rem)}nav[data-toggle=toc] .nav-link.active:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}@media(max-width:576px){nav[data-toggle=toc]{visibility:hidden;height:0;top:0}}.unloaded{display:none!important}#toc-sidebar{z-index:1}.echarts{height:400px;width:100%}.map{height:400px;width:100%}.newsletter-form-container{margin-bottom:20px}.newsletter-form{display:flex;flex-direction:row;align-items:center;width:100%}.newsletter-form-input,.bibsearch-form-input{color:var(--global-newsletter-text-color);background:var(--global-newsletter-bg-color);border:1px solid var(--global-newsletter-text-color);outline:0;margin:0 10px 0 0;width:100%;max-width:350px;min-width:100px;box-sizing:border-box;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;padding:8px 12px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.newsletter-form-input:focus,.bibsearch-form-input:focus{border-color:var(--global-theme-color)!important}.newsletter-form-input:focus-visible,.bibsearch-form-input:focus-visible{outline:0;box-shadow:0 0 0 3px var(--global-focus-ring-shadow,transparent)}.newsletter-form-button{background:var(--global-theme-color);color:var(--global-bg-color);display:flex;width:min-content;max-width:200px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:0;cursor:pointer}.newsletter-loading-button{background:var(--global-theme-color);color:var(--global-bg-color);display:none;width:min-content;max-width:300px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:0;cursor:pointer;margin-right:20px}.newsletter-success{color:var(--global-text-color);display:none;align-items:center;width:100%}.newsletter-error{color:var(--global-theme-color);display:none;align-items:center;width:100%}.newsletter-back-button{color:var(--global-theme-color);margin:10px auto;text-align:center;display:none;background:rgba(0,0,0,0);border:0;cursor:pointer}@media(max-width:575px){.newsletter-form-input,.newsletter-form-button,.newsletter-loading-button,.newsletter-success,.newsletter-error{font-size:16px!important}.newsletter-form-container{margin-right:20px;margin-left:20px}}.popover{background-color:var(--global-bg-color);border-color:var(--global-divider-color)}.popover .popover-header{color:var(--global-text-color);border-bottom:1px solid var(--global-divider-color)}.popover .popover-body{color:var(--global-text-color)}::highlight(search){background-color:var(--global-theme-color);color:var(--global-text-color)}figure.cover{display:inline-block;text-align:center;margin:.5rem}figure.cover img{vertical-align:bottom}figure.cover figcaption.abandoned{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#ee5f5b}figure.cover figcaption.finished,figure.cover figcaption.watched{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#62c462}figure.cover figcaption.interested{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#7691db}figure.cover figcaption.paused{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#bdac7e}figure.cover figcaption.reading{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#f89406}d-byline{border-top-color:var(--global-divider-color)!important}d-byline h3{color:var(--global-text-color)!important}d-byline a,d-article d-byline a{color:var(--global-text-color)!important}d-byline a:hover,d-article d-byline a:hover{color:var(--global-hover-color)!important}d-article{border-top-color:var(--global-divider-color)!important}d-article p,d-article h1,d-article h2,d-article h3,d-article h4,d-article h5,d-article h6,d-article li,d-article table{color:var(--global-text-color)!important}d-article h1,d-article h2,d-article hr,d-article table,d-article table th,d-article table td{border-bottom-color:var(--global-divider-color)!important}d-article a{color:var(--global-theme-color)!important}d-article a:hover{color:var(--global-theme-color)!important}d-article b i{display:inline}d-article blockquote{border-left:2px solid var(--global-theme-color)!important}d-article details{color:var(--global-text-color);background-color:var(--global-code-bg-color);margin-top:0;padding:8px 12px;position:relative;border-radius:6px;display:block;margin-bottom:20px;grid-column:text;overflow:auto;max-width:100%}d-article details summary{color:var(--global-theme-color)}d-article details p{margin-top:.5rem;margin-bottom:.5rem}d-article d-footnote{scroll-margin-top:66px;color:var(--global-theme-color)!important}d-article d-footnote:hover{color:var(--global-hover-color)!important}d-article d-cite a,d-article a.citation{color:var(--global-theme-color)!important}d-article d-cite a:hover,d-article a.citation:hover{color:var(--global-hover-color)!important}d-appendix{border-top-color:var(--global-divider-color)!important;color:var(--global-distill-app-color)!important}d-appendix h3,d-appendix li,d-appendix span{color:var(--global-distill-app-color)!important}d-appendix a,d-appendix a.footnote-backlink{color:var(--global-distill-app-color)!important}d-appendix a:hover,d-appendix a.footnote-backlink:hover{color:var(--global-hover-color)!important}table.table-cv{background-color:rgba(0,0,0,0)!important}table.table-cv td,table.table-cv th{padding:1px}p.location{font-size:.7rem;white-space:nowrap}i.iconinstitution{color:var(--global-theme-color);font-size:.95rem;margin-right:.3rem}table.institution{margin-bottom:1rem}td.department{font-size:.8rem}div.list-group{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;margin-bottom:2rem}a.anchor{display:block;position:relative;top:-50px;visibility:hidden}ul.timeline{margin-top:2rem;margin-bottom:2rem}ul.timeline li{position:relative;min-height:2.2rem;color:var(--global-text-color);list-style-position:inside}ul.timeline li::before{content:"";min-height:2.5rem;width:1px;background:var(--global-text-color);margin:0;padding:0;position:absolute;left:2px;top:-0.5rem}.tab{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none;position:relative}.tab>*{flex:none;padding-left:20px;position:relative}.tab>*>a{display:block;text-align:center;padding:9px 20px;color:var(--global-text-color-light);border-bottom:2px solid rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0);font-size:12px;text-transform:uppercase;transition:color .1s ease-in-out;line-height:20px}.tab>.active>a{color:var(--global-text-color);border-color:var(--global-theme-color)}.tab>li>a{text-decoration:none;cursor:pointer}.tab-content{padding:0}.tab-content>li{display:none}.tab-content>li.active{display:block}.typogram .diagram{display:block}.typogram .diagram line,.typogram .diagram circle,.typogram .diagram rect{stroke:var(--global-text-color)}.typogram .diagram line{stroke-width:2}.typogram .diagram circle{r:3.5}.typogram .diagram rect{width:6px;height:6px}.typogram .diagram text,.typogram .glyph,.typogram .debug text{font-family:Iosevka Fixed,monospace;font-size:3em;text-anchor:middle;alignment-baseline:central;white-space:pre;fill:var(--global-text-color)}.typogram .reserved{fill:rgba(0,0,0,0);white-space:pre}.typogram .debug[debug=true] .reserved{fill:var(--global-text-color);opacity:.5}.typogram .debug[debug=true] line.grid{stroke:var(--global-text-color);stroke-width:.2;stroke-linecap:butt;fill:var(--global-text-color);opacity:1%}.typogram polygon{stroke-width:0}.typogram .debug[debug=true] polygon.inner{fill:var(--global-text-color);stroke:var(--global-text-color);opacity:5%}.typogram polygon{stroke:var(--global-text-color);stroke-linecap:butt;fill:var(--global-text-color)}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] line.grid{opacity:10%}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] path,.typogram .debug[debug=true] circle{opacity:50%}.typogram .debug[debug=true] polygon{fill:red;stroke:red}.typogram .debug[debug=true] circle,.typogram .debug[debug=true] path{opacity:50%;fill:red}.typogram .debug[debug=true] circle{stroke:red}.typogram .debug[debug=true] .inner{stroke-width:.2}.typogram line.part{stroke-width:6;stroke-linecap:butt;stroke:var(--global-text-color)}.typogram .debug[debug=true] line.part{opacity:50%;stroke:red}.typogram .debug[debug=true] line.center{stroke-width:3;stroke-linecap:butt;opacity:10%;stroke:var(--global-text-color)}.typogram text::selection{fill:HighlightText;background-color:Highlight}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.far,.fa-solid,.fa-brands,.fa{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.far::before,.fa-solid::before,.fa-brands::before,.fa::before{content:var(--fa)}.fa-solid,.far{font-family:"Font Awesome 6 Free"}.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,0.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,0.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-0.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,0.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-0.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,0.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,0.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-file-lines{--fa:"";--fa--fa:""}.fa-flag{--fa:"";--fa--fa:""}.fa-folder{--fa:"";--fa--fa:""}.fa-user{--fa:"";--fa--fa:""}.fa-folder-open{--fa:"";--fa--fa:""}.fa-terminal{--fa:"";--fa--fa:""}.fa-file-pdf{--fa:"";--fa--fa:""}.fa-envelope{--fa:"";--fa--fa:""}.fa-circle-info{--fa:"";--fa--fa:""}.fa-download{--fa:"";--fa--fa:""}.fa-link{--fa:"";--fa--fa:""}.fa-hashtag{--fa:"\#";--fa--fa:"\#\#"}.fa-calendar{--fa:"";--fa--fa:""}.fa-book-open{--fa:"";--fa--fa:""}.fa-building-columns{--fa:"";--fa--fa:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-brands:'Font Awesome 6 Brands';--fa-font-brands:normal 400 1em/1 'Font Awesome 6 Brands'}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-brands-400.woff2") format("woff2"),url("../webfonts/fa-brands-400.ttf") format("truetype")}.fa-brands{font-weight:400}.fa-discord{--fa:""}.fa-x-twitter{--fa:""}.fa-linkedin{--fa:""}.fa-facebook{--fa:""}.fa-github{--fa:""}.fa-telegram{--fa:""}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:'Font Awesome 6 Free';--fa-font-solid:normal 900 1em/1 'Font Awesome 6 Free'}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.ttf") format("truetype")}.fa-solid{font-weight:900}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:'Font Awesome 6 Free';--fa-font-regular:normal 400 1em/1 'Font Awesome 6 Free'}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-regular-400.woff2") format("woff2"),url("../webfonts/fa-regular-400.ttf") format("truetype")}.far{font-weight:400}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons.woff?") format("woff"),url("../fonts/tabler-icons.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-home:before{content:"\eac1"}.ti-moon-filled:before{content:"\f684"}.ti-search:before{content:"\eb1c"}.ti-sun-filled:before{content:"\f6a9"}.ti-sun-moon:before{content:"\f4a3"}.ti-x:before{content:"\eb55"}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-filled.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons-filled.woff?") format("woff"),url("../fonts/tabler-icons-filled.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-home:before{content:"\fe2b"}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-outline.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons-outline.woff?") format("woff"),url("../fonts/tabler-icons-outline.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-home:before{content:"\eac1"}.ti-search:before{content:"\eb1c"}.ti-sun-moon:before{content:"\f4a3"}.ti-x:before{content:"\eb55"}:root{--font-mono:"JetBrains Mono","Fira Code","Source Code Pro",ui-monospace,SFMono-Regular,Menlo,monospace}body:not(.ctf-layout){font-size:1.0625rem;line-height:1.65;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:not(.ctf-layout) p,body:not(.ctf-layout) div:not([class*=fa-]):not([class*=icon]):not([class*=ai]):not([class*=social]),body:not(.ctf-layout) span:not([class*=fa-]):not([class*=icon]):not([class*=ai]):not([class*=social]),body:not(.ctf-layout) li,body:not(.ctf-layout) td,body:not(.ctf-layout) th,body:not(.ctf-layout) article,body:not(.ctf-layout) section{font-family:Merriweather,Georgia,"Times New Roman",Times,serif;font-feature-settings:"kern" 1,"liga" 1}body:not(.ctf-layout) p{font-size:1.0625rem;line-height:1.65;margin-bottom:1.125rem}body:not(.ctf-layout) h1,body:not(.ctf-layout) h2,body:not(.ctf-layout) h3,body:not(.ctf-layout) h4,body:not(.ctf-layout) h5,body:not(.ctf-layout) h6{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-weight:600;letter-spacing:-0.01em;font-feature-settings:"kern" 1,"liga" 1}body:not(.ctf-layout) h1{font-weight:700;letter-spacing:-0.02em}body:not(.ctf-layout) h2{font-weight:600}body:not(.ctf-layout) em:not([class*=fa-]):not([class*=ai]):not([class*=icon]),body:not(.ctf-layout) i:not([class*=fa-]):not([class*=ai]):not([class*=icon]):not([class^=fab]):not([class^=fas]):not([class^=far]){font-family:Merriweather,Georgia,"Times New Roman",Times,serif;font-style:italic}body:not(.ctf-layout) strong,body:not(.ctf-layout) b{font-weight:700}body:not(.ctf-layout) code,body:not(.ctf-layout) pre,body:not(.ctf-layout) kbd,body:not(.ctf-layout) code *,body:not(.ctf-layout) pre *{font-family:var(--font-mono)!important}.fa,.far,[class^=fa-],[class*=" fa-"]{font-family:"Font Awesome 6 Free","Font Awesome 6 Pro","Font Awesome 6 Brands","FontAwesome"!important;font-style:normal!important;font-weight:normal!important}.ai,[class^=ai-],[class*=" ai-"]{font-family:"Academicons"!important;font-style:normal!important;font-weight:normal!important;font-variant:normal!important;text-transform:none!important}[class^=scholar-],[class*=" scholar-"]{font-family:"Scholar Icons"!important;font-style:normal!important}.ti,[class^=ti-],[class*=" ti-"]{font-family:"tabler-icons"!important;font-style:normal!important}body:not(.ctf-layout) .navbar{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:1rem}body:not(.ctf-layout) .publications .title{font-family:Merriweather,Georgia,"Times New Roman",Times,serif;font-weight:700}body:not(.ctf-layout) .publications .author{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:.95rem}body:not(.ctf-layout) .publications .venue{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-style:italic}body:not(.ctf-layout) .post-title{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:clamp(2.1rem,4.5vw,3.4rem);font-weight:600;letter-spacing:-0.02em}@media(max-width:768px){body:not(.ctf-layout) .post-title{font-size:clamp(1.6rem,5vw,2.2rem)}}@media(max-width:576px){body:not(.ctf-layout) .post-title{font-size:clamp(1.35rem,6vw,1.7rem)}}body:not(.ctf-layout) .post-description{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:.9375rem}body:not(.ctf-layout) blockquote{font-family:Merriweather,Georgia,"Times New Roman",Times,serif;font-size:1rem;font-style:italic;line-height:1.6}body:not(.ctf-layout) .caption,body:not(.ctf-layout) figcaption{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:.875rem}body:not(.ctf-layout) footer{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:.875rem}.post .post-content table td{padding:2px 2rem 2px 0}.post .post-content table{padding-bottom:2px}.post .post-content table tbody tr:nth-child(odd){background-color:var(--global-divider-color)}i.fa,i.far,i[class^=fa-],i[class*=" fa-"],em.fa,em.far,em[class^=fa-],em[class*=" fa-"]{font-family:"Font Awesome 6 Free","Font Awesome 6 Pro","Font Awesome 6 Brands"!important;font-style:normal!important;font-weight:900!important}i.ai,i[class^=ai-],i[class*=" ai-"],em.ai,em[class^=ai-],em[class*=" ai-"]{font-family:"Academicons"!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-rendering:auto!important;-moz-osx-font-smoothing:grayscale!important;-webkit-font-smoothing:antialiased!important}@font-face{font-family:"Anonymous Pro";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/AnonymousPro-Regular.woff") format("woff")}@font-face{font-family:"Anonymous Pro";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/AnonymousPro-Bold.woff") format("woff")}@font-face{font-family:"Nightrace";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Nightrace-0WVwz.woff") format("woff")}@font-face{font-family:"High Swift Regular";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/HighswiftRegular-DOXWW.woff") format("woff")}.ctf-section{scroll-margin-top:96px;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif;--ctf-bg-dark:#0a0e27;--ctf-bg-darker:#050811;--ctf-text-primary:#00ff41;--ctf-text-secondary:#39ff14;--ctf-text-muted:#7cfc00;--ctf-accent:#ff0080;--ctf-accent-alt:#0ff;--ctf-border:#1a3d4a;--ctf-glow:rgba(0,255,65,0.3);--ctf-bg-light:#f5f5f5;--ctf-text-dark:#1a1a1a}:root{--terminal-prompt:#cf222e;--terminal-command:#0969da;--terminal-input-text:#334155;--terminal-cursor:#0969da;--terminal-placeholder:#64748b;--terminal-output:#0d1117}html[data-theme=dark],html:not([data-theme=light]){--terminal-prompt:#3fb950;--terminal-command:#f7a030;--terminal-input-text:#e2e8f0;--terminal-cursor:#3fb950;--terminal-placeholder:rgba(255,255,255,0.4);--terminal-output:#e2e8f0}body.ctf-layout,.ctf-layout{--ctf-ia:var(--accent-red);--ctf-ia-bg:rgba(207,34,46,0.07);--ctf-ia-bdr:rgba(207,34,46,0.45);--ctf-ia-glow:rgba(207,34,46,0.08);--ctf-sa:var(--accent-blue);--ctf-sa-bg:rgba(9,105,218,0.06);--ctf-sa-bdr:rgba(9,105,218,0.35)}html[data-theme=dark] body.ctf-layout,html[data-theme=dark] .ctf-layout,html:not([data-theme=light]) body.ctf-layout,html:not([data-theme=light]) .ctf-layout{--ctf-ia:var(--accent-green-hi);--ctf-ia-bg:rgba(126,231,135,0.07);--ctf-ia-bdr:rgba(126,231,135,0.45);--ctf-ia-glow:rgba(63,185,80,0.08);--ctf-sa:var(--accent-orange);--ctf-sa-bg:rgba(247,160,48,0.07);--ctf-sa-bdr:rgba(247,160,48,0.4)}body main.post[data-ctf-post=true],body.ctf-layout main.post[data-ctf-post=true]{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:1.0625rem!important;line-height:1.76!important}body main.post[data-ctf-post=true] .post-title,body main.post[data-ctf-post=true] h1,body.ctf-layout main.post[data-ctf-post=true] .post-title,body.ctf-layout main.post[data-ctf-post=true] h1{font-family:"High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:2.725rem!important;line-height:2.3!important;font-style:italic!important;letter-spacing:.05em;text-rendering:optimizeLegibility;font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-shadow:0 0 .5px currentColor}@media(max-width:768px){body main.post[data-ctf-post=true] .post-title,body main.post[data-ctf-post=true] h1,body.ctf-layout main.post[data-ctf-post=true] .post-title,body.ctf-layout main.post[data-ctf-post=true] h1{font-size:1.875rem!important;line-height:1.55!important;letter-spacing:.03em}}@media(max-width:576px){body main.post[data-ctf-post=true] .post-title,body main.post[data-ctf-post=true] h1,body.ctf-layout main.post[data-ctf-post=true] .post-title,body.ctf-layout main.post[data-ctf-post=true] h1{font-size:clamp(1.15rem,5.5vw,1.5rem)!important;line-height:1.25!important;letter-spacing:.015em;margin-bottom:.5rem;overflow-wrap:anywhere}}body main.post[data-ctf-post=true] .post-title a,body main.post[data-ctf-post=true] h1.post-title a,body.ctf-layout main.post[data-ctf-post=true] .post-title a,body.ctf-layout main.post[data-ctf-post=true] h1.post-title a{padding-bottom:.55em!important;text-underline-offset:.5em!important;text-decoration-skip-ink:auto;display:inline-block;position:relative}body main.post[data-ctf-post=true] .post-title a::after,body main.post[data-ctf-post=true] h1.post-title a::after,body.ctf-layout main.post[data-ctf-post=true] .post-title a::after,body.ctf-layout main.post[data-ctf-post=true] h1.post-title a::after{content:"";position:absolute;left:0;right:0;bottom:.12em;height:1px;background:currentColor;opacity:0;transition:opacity .2s ease}body main.post[data-ctf-post=true] .post-title a:hover::after,body main.post[data-ctf-post=true] h1.post-title a:hover::after,body.ctf-layout main.post[data-ctf-post=true] .post-title a:hover::after,body.ctf-layout main.post[data-ctf-post=true] h1.post-title a:hover::after{opacity:1}body main.post[data-ctf-post=true] .post-title a:hover,body main.post[data-ctf-post=true] h1.post-title a:hover,body.ctf-layout main.post[data-ctf-post=true] .post-title a:hover,body.ctf-layout main.post[data-ctf-post=true] h1.post-title a:hover{text-decoration:none!important}body main.post[data-ctf-post=true] h2,body main.post[data-ctf-post=true] h3,body main.post[data-ctf-post=true] h4,body main.post[data-ctf-post=true] h5,body main.post[data-ctf-post=true] h6,body.ctf-layout main.post[data-ctf-post=true] h2,body.ctf-layout main.post[data-ctf-post=true] h3,body.ctf-layout main.post[data-ctf-post=true] h4,body.ctf-layout main.post[data-ctf-post=true] h5,body.ctf-layout main.post[data-ctf-post=true] h6{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;line-height:1.3!important}body main.post[data-ctf-post=true] h2,body.ctf-layout main.post[data-ctf-post=true] h2{font-size:1.625rem!important}body main.post[data-ctf-post=true] h3,body.ctf-layout main.post[data-ctf-post=true] h3{font-size:1.375rem!important}body main.post[data-ctf-post=true] h4,body.ctf-layout main.post[data-ctf-post=true] h4{font-size:1.125rem!important}body main.post[data-ctf-post=true] .post-content,body main.post[data-ctf-post=true] .post-content *,body.ctf-layout main.post[data-ctf-post=true] .post-content,body.ctf-layout main.post[data-ctf-post=true] .post-content *{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;line-height:1.76!important}body main.post[data-ctf-post=true] .post-content h2,body main.post[data-ctf-post=true] .post-content h3,body main.post[data-ctf-post=true] .post-content h4,body main.post[data-ctf-post=true] .post-content h5,body main.post[data-ctf-post=true] .post-content h6,body.ctf-layout main.post[data-ctf-post=true] .post-content h2,body.ctf-layout main.post[data-ctf-post=true] .post-content h3,body.ctf-layout main.post[data-ctf-post=true] .post-content h4,body.ctf-layout main.post[data-ctf-post=true] .post-content h5,body.ctf-layout main.post[data-ctf-post=true] .post-content h6{font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-weight:700!important;letter-spacing:.06em!important;line-height:1.3!important}body main.post[data-ctf-post=true] .post-content h2,body.ctf-layout main.post[data-ctf-post=true] .post-content h2{font-size:1.625rem!important}body main.post[data-ctf-post=true] .post-content h3,body.ctf-layout main.post[data-ctf-post=true] .post-content h3{font-size:1.375rem!important}body main.post[data-ctf-post=true] .post-content h4,body.ctf-layout main.post[data-ctf-post=true] .post-content h4{font-size:1.125rem!important}body main.post[data-ctf-post=true] .post-content pre,body main.post[data-ctf-post=true] .post-content code,body main.post[data-ctf-post=true] .post-content kbd,body.ctf-layout main.post[data-ctf-post=true] .post-content pre,body.ctf-layout main.post[data-ctf-post=true] .post-content code,body.ctf-layout main.post[data-ctf-post=true] .post-content kbd{font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace!important}body main.post[data-ctf-post=true] #toc,body main.post[data-ctf-post=true] aside#toc,body.ctf-layout main.post[data-ctf-post=true] #toc,body.ctf-layout main.post[data-ctf-post=true] aside#toc{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important}body main.post[data-ctf-post=true] #toc .toc-title,body main.post[data-ctf-post=true] aside#toc .toc-title,body.ctf-layout main.post[data-ctf-post=true] #toc .toc-title,body.ctf-layout main.post[data-ctf-post=true] aside#toc .toc-title{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-weight:600!important}body main.post[data-ctf-post=true] .post-content blockquote,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important}body main.post[data-ctf-post=true] .post-content blockquote::before,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote::before{font-family:Georgia,serif!important}body main.post[data-ctf-post=true] .post-content p,body.ctf-layout main.post[data-ctf-post=true] .post-content p{margin-bottom:1.5em!important;margin-top:0!important}body main.post[data-ctf-post=true] .post-body,body.ctf-layout main.post[data-ctf-post=true] .post-body{max-width:100%;width:100%;box-sizing:border-box}body main.post[data-ctf-post=true] .post-content h2,body.ctf-layout main.post[data-ctf-post=true] .post-content h2{margin-top:2.4em!important;margin-bottom:.65em!important}body main.post[data-ctf-post=true] .post-content h3,body.ctf-layout main.post[data-ctf-post=true] .post-content h3{margin-top:2em!important;margin-bottom:.6em!important}body main.post[data-ctf-post=true] .post-content h4,body.ctf-layout main.post[data-ctf-post=true] .post-content h4{margin-top:1.75em!important;margin-bottom:.5em!important}body main.post[data-ctf-post=true] .post-content h5,body main.post[data-ctf-post=true] .post-content h6,body.ctf-layout main.post[data-ctf-post=true] .post-content h5,body.ctf-layout main.post[data-ctf-post=true] .post-content h6{margin-top:1.5em!important;margin-bottom:.45em!important}body main.post[data-ctf-post=true] .post-content strong,body main.post[data-ctf-post=true] .post-content b,body.ctf-layout main.post[data-ctf-post=true] .post-content strong,body.ctf-layout main.post[data-ctf-post=true] .post-content b{font-weight:700!important;letter-spacing:.015em!important;color:var(--post-strong-color)!important}body main.post[data-ctf-post=true] .post-content em,body main.post[data-ctf-post=true] .post-content i,body.ctf-layout main.post[data-ctf-post=true] .post-content em,body.ctf-layout main.post[data-ctf-post=true] .post-content i{font-style:italic!important;letter-spacing:.02em!important}body main.post[data-ctf-post=true] .post-content ul,body main.post[data-ctf-post=true] .post-content ol,body.ctf-layout main.post[data-ctf-post=true] .post-content ul,body.ctf-layout main.post[data-ctf-post=true] .post-content ol{margin-bottom:1.4em!important;padding-left:1.6em!important}body main.post[data-ctf-post=true] .post-content li,body.ctf-layout main.post[data-ctf-post=true] .post-content li{margin-bottom:.45em!important;line-height:1.72!important}body main.post[data-ctf-post=true] .post-content li>ul,body main.post[data-ctf-post=true] .post-content li>ol,body.ctf-layout main.post[data-ctf-post=true] .post-content li>ul,body.ctf-layout main.post[data-ctf-post=true] .post-content li>ol{margin-top:.35em!important;margin-bottom:.35em!important}body main.post[data-ctf-post=true] .post-content blockquote,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote{position:relative!important;border-left:none!important;font-size:1rem!important;padding:.55em .85em!important;margin:1.75em 0 1.75em 1.75rem!important}body main.post[data-ctf-post=true] .post-content blockquote::before,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote::before{content:""!important;position:absolute!important;left:0!important;top:.55em!important;bottom:.55em!important;width:4px!important;background:var(--global-theme-color)!important;border-radius:2px!important}body main.post[data-ctf-post=true] .post-content blockquote p,body main.post[data-ctf-post=true] .post-content blockquote li,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote p,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote li{line-height:1.55!important;margin-bottom:0!important}body main.post[data-ctf-post=true] .post-content blockquote p+p,body.ctf-layout main.post[data-ctf-post=true] .post-content blockquote p+p{margin-top:.75em!important}body main.post[data-ctf-post=true] .post-content hr,body.ctf-layout main.post[data-ctf-post=true] .post-content hr{margin:2.5em 0!important}body main.post[data-ctf-post=true] .post-series-nav,body.ctf-layout main.post[data-ctf-post=true] .post-series-nav{font-family:"Anonymous Pro",monospace!important;margin:.85rem 0 1.4rem;padding:.6rem .85rem;border:1px solid var(--global-divider-color,rgba(128,128,128,0.22));border-radius:8px;background:rgba(0,0,0,0)}body main.post[data-ctf-post=true] .post-series-header,body.ctf-layout main.post[data-ctf-post=true] .post-series-header{display:flex;align-items:baseline;gap:.38em;margin-bottom:.55rem;font-size:.72rem;line-height:1}body main.post[data-ctf-post=true] .post-series-header .post-series-eyebrow,body.ctf-layout main.post[data-ctf-post=true] .post-series-header .post-series-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-weight:700;opacity:.4}body main.post[data-ctf-post=true] .post-series-header .post-series-sep,body.ctf-layout main.post[data-ctf-post=true] .post-series-header .post-series-sep{opacity:.28}body main.post[data-ctf-post=true] .post-series-header .post-series-name,body.ctf-layout main.post[data-ctf-post=true] .post-series-header .post-series-name{opacity:.65;font-weight:400}body main.post[data-ctf-post=true] .post-series-list,body.ctf-layout main.post[data-ctf-post=true] .post-series-list{list-style:none!important;padding:0!important;margin:0!important;display:flex;flex-wrap:wrap;gap:.35rem}body main.post[data-ctf-post=true] .post-series-link,body.ctf-layout main.post[data-ctf-post=true] .post-series-link{display:inline-flex;align-items:center;gap:.32em;padding:.18rem .6rem;border-radius:20px;font-size:.75rem;line-height:1.4;text-decoration:none!important;border:1px solid var(--global-divider-color,rgba(128,128,128,0.28));color:inherit;opacity:.62;transition:opacity .18s ease,border-color .18s ease,background .18s ease}body main.post[data-ctf-post=true] .post-series-link:hover,body.ctf-layout main.post[data-ctf-post=true] .post-series-link:hover{opacity:1;border-color:var(--global-theme-color);text-decoration:none!important}body main.post[data-ctf-post=true] .post-series-link .post-series-num,body.ctf-layout main.post[data-ctf-post=true] .post-series-link .post-series-num{font-size:.72em;opacity:.65;font-variant-numeric:tabular-nums}body main.post[data-ctf-post=true] .post-series-item--current .post-series-link,body.ctf-layout main.post[data-ctf-post=true] .post-series-item--current .post-series-link{opacity:1;font-weight:600;border-color:var(--global-theme-color);background:var(--post-series-active-bg,rgba(128,128,128,0.1));color:var(--global-theme-color);cursor:default;pointer-events:none}body main.post[data-ctf-post=true] .post-series-item--current .post-series-link .post-series-num,body.ctf-layout main.post[data-ctf-post=true] .post-series-item--current .post-series-link .post-series-num{opacity:.7}body main.post[data-ctf-post=true] .post-article-with-toc,body.ctf-layout main.post[data-ctf-post=true] .post-article-with-toc{display:flex;gap:1.5rem;align-items:flex-start;margin-top:0}body main.post[data-ctf-post=true] .post-toc-sidebar,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar{flex-shrink:0;width:220px;max-width:280px;padding-right:1rem;border-right:1px solid rgba(0,0,0,.12);font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;display:flex;flex-direction:column;align-self:stretch}body main.post[data-ctf-post=true] .post-toc-sidebar *,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar *{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important}body main.post[data-ctf-post=true] .post-toc-sidebar .widget-recently-updated-wrapper .widget-title,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .widget-recently-updated-wrapper .widget-title{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:.875rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.05em!important;margin-bottom:.75rem!important;padding-bottom:.5rem!important;opacity:1!important}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-sticky-wrapper,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-sticky-wrapper{position:sticky;top:4.25rem;max-height:calc(100vh - 4.25rem - 1.5rem);display:flex;flex-direction:column;overflow-y:auto}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-title,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-title{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:.875rem!important;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem!important;padding-bottom:.5rem;flex-shrink:0}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-content,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-content{flex:1;overflow-y:auto;min-height:0}body main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a,body main.post[data-ctf-post=true] .post-toc-sidebar .toc-entry.toc-item-active>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-entry.toc-item-active>a{display:flex!important;align-items:center!important;gap:.4em!important;opacity:1!important;font-weight:500!important;background-color:rgba(148,163,184,.15)!important;border-left:3px solid currentColor!important;padding-left:calc(.55rem - 3px)!important;border-radius:6px!important;text-decoration:none!important;transition:background-color .25s ease,border-left-color .25s ease,opacity .25s ease!important}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav,body main.post[data-ctf-post=true] .post-toc-sidebar ul,body main.post[data-ctf-post=true] .post-toc-sidebar ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol{list-style:none!important;padding-left:0!important;margin-left:0!important;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:.875rem;line-height:1.5;flex:1 1 auto;overflow-y:auto;padding-right:.35rem}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul,body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol,body main.post[data-ctf-post=true] .post-toc-sidebar ul ul,body main.post[data-ctf-post=true] .post-toc-sidebar ul ol,body main.post[data-ctf-post=true] .post-toc-sidebar ol ul,body main.post[data-ctf-post=true] .post-toc-sidebar ol ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ol{list-style:none!important;margin-left:0!important;padding-left:0!important}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li,body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a,body main.post[data-ctf-post=true] .post-toc-sidebar ul li,body main.post[data-ctf-post=true] .post-toc-sidebar ul li a,body main.post[data-ctf-post=true] .post-toc-sidebar ol li,body main.post[data-ctf-post=true] .post-toc-sidebar ol li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li a{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li,body main.post[data-ctf-post=true] .post-toc-sidebar ul li,body main.post[data-ctf-post=true] .post-toc-sidebar ol li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li{margin-bottom:.4rem!important}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a,body main.post[data-ctf-post=true] .post-toc-sidebar ul li a,body main.post[data-ctf-post=true] .post-toc-sidebar ol li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li a{display:flex!important;align-items:center;gap:.4em;text-decoration:none!important;color:inherit;opacity:.9;border-radius:6px;padding:.2rem .55rem;border-left:3px solid rgba(0,0,0,0);padding-left:calc(.55rem - 3px);transition:opacity .25s ease,background-color .25s ease,border-left-color .25s ease}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a:hover,body main.post[data-ctf-post=true] .post-toc-sidebar ul li a:hover,body main.post[data-ctf-post=true] .post-toc-sidebar ol li a:hover,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li a:hover,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li a:hover,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li a:hover{opacity:1;text-decoration:none!important;background-color:rgba(148,163,184,.1);border-left-color:rgba(148,163,184,.3)}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li.toc-item-active>a,body main.post[data-ctf-post=true] .post-toc-sidebar ul li.toc-item-active>a,body main.post[data-ctf-post=true] .post-toc-sidebar ol li.toc-item-active>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav li.toc-item-active>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul li.toc-item-active>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol li.toc-item-active>a{color:#38bdf8;opacity:1;font-weight:600;background-color:rgba(56,189,248,.16)}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul ul,body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol ol,body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul ol,body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol ul,body main.post[data-ctf-post=true] .post-toc-sidebar ul ul ul,body main.post[data-ctf-post=true] .post-toc-sidebar ul ol ol,body main.post[data-ctf-post=true] .post-toc-sidebar ul ul ol,body main.post[data-ctf-post=true] .post-toc-sidebar ul ol ul,body main.post[data-ctf-post=true] .post-toc-sidebar ol ul ul,body main.post[data-ctf-post=true] .post-toc-sidebar ol ol ol,body main.post[data-ctf-post=true] .post-toc-sidebar ol ul ol,body main.post[data-ctf-post=true] .post-toc-sidebar ol ol ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ul ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav ol ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ul ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ol ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ul ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ul ol ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ul ul,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ol ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ul ol,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar ol ol ul{margin-top:.25rem!important;padding-left:1rem!important;border-left:1px solid rgba(0,0,0,.1)}body main.post[data-ctf-post=true] .post-toc-sidebar .section-nav .toc-entry>a::before,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .section-nav .toc-entry>a::before{display:inline-block;width:.85em;text-align:center;flex-shrink:0;font-style:normal!important;line-height:1;transition:opacity .25s ease}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h2>a::before,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h2>a::before{content:"○";font-size:.48em;opacity:.72;position:relative;top:.04em}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h3>a::before,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h3>a::before{content:"–";font-size:.78em;opacity:.55}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h4>a::before,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h4>a::before{content:"·";font-size:1.1em;opacity:.42}body main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a::before,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a::before{opacity:1!important}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h2>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h2>a{font-weight:500}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h3>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h3>a{font-weight:450}body main.post[data-ctf-post=true] .post-toc-sidebar .toc-h4>a,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar .toc-h4>a{font-weight:400}body main.post[data-ctf-post=true] .post-body,body.ctf-layout main.post[data-ctf-post=true] .post-body{flex:1;min-width:0}@media(max-width:768px){body main.post[data-ctf-post=true] .post-article-with-toc,body.ctf-layout main.post[data-ctf-post=true] .post-article-with-toc{flex-direction:column;gap:1.5rem}body main.post[data-ctf-post=true] .post-toc-sidebar,body.ctf-layout main.post[data-ctf-post=true] .post-toc-sidebar{width:100%;max-width:none;position:static;padding-right:0;border-right:0;border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:1rem}body main.post[data-ctf-post=true] .post-body,body.ctf-layout main.post[data-ctf-post=true] .post-body{max-width:100%}}body main.post[data-ctf-post=true] .pagination,body.ctf-layout main.post[data-ctf-post=true] .pagination{margin-top:24px;display:flex;justify-content:center}body main.post[data-ctf-post=true] .pagination__buttons,body.ctf-layout main.post[data-ctf-post=true] .pagination__buttons{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;max-width:720px;width:100%}body main.post[data-ctf-post=true] .button,body.ctf-layout main.post[data-ctf-post=true] .button{position:relative;display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:1px solid rgba(148,163,184,.6);border-radius:999px;max-width:50%;padding:0;cursor:pointer;appearance:none;color:inherit;box-shadow:0 8px 18px rgba(15,23,42,.06),0 0 0 1px rgba(148,163,184,.12);transition:transform .15s ease,background-color .15s ease,border-color .15s ease}body main.post[data-ctf-post=true] .button:hover,body.ctf-layout main.post[data-ctf-post=true] .button:hover{transform:translateY(-1px);background:rgba(148,163,184,.08)}body main.post[data-ctf-post=true] .button a,body.ctf-layout main.post[data-ctf-post=true] .button a{display:flex;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif;font-weight:500;letter-spacing:.01em;text-transform:none;font-size:.82rem;color:#374151}body main.post[data-ctf-post=true] .button__text,body.ctf-layout main.post[data-ctf-post=true] .button__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body main.post[data-ctf-post=true] .button__icon,body.ctf-layout main.post[data-ctf-post=true] .button__icon{flex:0 0 auto;opacity:.85}html[data-theme=dark] main.post[data-ctf-post=true] .post-toc-sidebar,html:not([data-theme=light]) main.post[data-ctf-post=true] .post-toc-sidebar{border-right-color:hsla(0,0,100%,.15)}@media(max-width:768px){html[data-theme=dark] main.post[data-ctf-post=true] .post-toc-sidebar,html:not([data-theme=light]) main.post[data-ctf-post=true] .post-toc-sidebar{border-bottom-color:hsla(0,0,100%,.15)}}html[data-theme=light] main.post[data-ctf-post=true] .post-toc-sidebar a{color:#0969da!important}html[data-theme=light] main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a,html[data-theme=light] main.post[data-ctf-post=true] .post-toc-sidebar .toc-entry.toc-item-active>a{color:#0969da!important}html[data-theme=dark] main.post[data-ctf-post=true] .post-toc-sidebar a,html:not([data-theme=light]) main.post[data-ctf-post=true] .post-toc-sidebar a{color:#f5921f!important}html[data-theme=dark] main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a,html[data-theme=dark] main.post[data-ctf-post=true] .post-toc-sidebar .toc-entry.toc-item-active>a,html:not([data-theme=light]) main.post[data-ctf-post=true] .post-toc-sidebar li.toc-item-active>a,html:not([data-theme=light]) main.post[data-ctf-post=true] .post-toc-sidebar .toc-entry.toc-item-active>a{color:#f5921f!important}@keyframes blink-cursor{0%,50%{opacity:1}51%,100%{opacity:0}}.ctf-content{background:rgba(0,0,0,0);border:0;padding:0;margin:0;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.54;color:#222;width:100%;max-width:100%;margin:0;padding:0 1.5rem 2rem}@media(max-width:900px){.ctf-content{padding:0 1rem 2rem}}.ctf-content h1{color:inherit;margin-top:0;margin-bottom:1.5rem;font-size:2.725rem;font-weight:400;line-height:2.3;font-family:"High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content h2{color:inherit;margin-top:2.5rem;margin-bottom:1rem;font-size:1.625rem;font-weight:400;line-height:1.3;font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content h3{color:inherit;margin-top:2rem;margin-bottom:1rem;font-size:1.375rem;font-weight:400;line-height:1.3;font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content h4,.ctf-content h5,.ctf-content h6{color:var(--ctf-text-primary);margin-top:1.5rem;margin-bottom:.75rem;font-weight:400;font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content p{color:inherit;line-height:1.54;margin-bottom:1rem;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content ul,.ctf-content ol{color:inherit;margin-left:2rem;margin-bottom:1.5rem;padding-left:1rem;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content ul li,.ctf-content ol li{margin-bottom:.75rem;line-height:1.54;font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif}.ctf-content ul li ul,.ctf-content ul li ol,.ctf-content ol li ul,.ctf-content ol li ol{margin-top:.5rem;margin-bottom:.5rem;margin-left:1.5rem}.ctf-content ul li p,.ctf-content ol li p{margin-bottom:.5rem}.ctf-content>ul,.ctf-content>ol{margin-left:1.5rem}.ctf-content a{color:var(--global-theme-color);text-decoration:underline;text-decoration-color:rgba(0,0,0,.3);transition:all .3s ease}.ctf-content a:hover{text-decoration-color:currentColor;opacity:.8}.ctf-content li a{color:var(--global-theme-color)}.ctf-content :not(.cbe-wrapper)>code,.ctf-content p>code,.ctf-content li>code,.ctf-content td>code,.ctf-content h1>code,.ctf-content h2>code,.ctf-content h3>code,.ctf-content h4>code,.ctf-content h5>code,.ctf-content h6>code{background:rgba(40,40,40,.85);color:#ebdbb2;padding:.2rem .4rem;border-radius:4px;font-size:.88em;border:1px solid #504945;font-family:"SF Mono","Fira Code",Consolas,Monaco,monospace}.ctf-content pre:not(.cbe-wrapper pre){background:#282828;border:1px solid #504945;border-left:3px solid var(--ctf-text-primary);padding:1.25rem;border-radius:6px;overflow-x:auto;margin:1.5rem 0}.ctf-content pre:not(.cbe-wrapper pre) code{background:rgba(0,0,0,0);border:0;padding:0;color:#ebdbb2}.ctf-content>*:first-child{margin-top:0}.ctf-content>*:last-child{margin-bottom:0}.ctf-content li code,.ctf-content p code{font-size:.9em;padding:.15rem .3rem}.ctf-content strong{color:var(--ctf-text-primary);font-weight:600}.ctf-content em{font-style:italic;color:var(--ctf-text-secondary)}.ctf-content hr{border:0;border-top:1px solid var(--ctf-border);margin:2rem 0}.ctf-content blockquote{border-left:3px solid var(--ctf-accent);padding-left:1.5rem;margin:1.5rem 0;color:var(--ctf-text-secondary);font-style:italic}.ctf-content table{width:100%;border-collapse:collapse;margin:1.5rem 0}.ctf-content table th,.ctf-content table td{padding:.75rem;border:1px solid var(--ctf-border);text-align:left}.ctf-content table th{background:rgba(0,0,0,.3);color:var(--ctf-text-primary);font-weight:600}.ctf-content table td{color:var(--ctf-text-secondary)}body.ctf-layout .ctf-posts-wrapper,.ctf-layout .ctf-posts-wrapper{background:rgba(0,0,0,0)!important;border:none!important;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important}body.ctf-layout .ctf-posts-wrapper .container,.ctf-layout .ctf-posts-wrapper .container{max-width:100%!important;padding:0!important;margin:0!important}body.ctf-layout .ctf-posts-wrapper *,.ctf-layout .ctf-posts-wrapper *{box-sizing:border-box}body.ctf-layout .ctf-posts-wrapper.post,body.ctf-layout .ctf-posts-wrapper .post,.ctf-layout .ctf-posts-wrapper.post,.ctf-layout .ctf-posts-wrapper .post{background:rgba(0,0,0,0)!important;padding:0!important;margin:0!important;border:none!important}body.ctf-layout .ctf-posts-wrapper.post .post-header,body.ctf-layout .ctf-posts-wrapper .post .post-header,.ctf-layout .ctf-posts-wrapper.post .post-header,.ctf-layout .ctf-posts-wrapper .post .post-header{display:none!important}body.ctf-layout .ctf-posts-wrapper .post-list,.ctf-layout .ctf-posts-wrapper .post-list{display:none!important;margin:0!important;margin-bottom:0!important;padding:0!important}body.ctf-layout .ctf-posts-wrapper .post-list li,.ctf-layout .ctf-posts-wrapper .post-list li{border-bottom:none!important;list-style:none!important;padding-top:0!important;padding-bottom:0!important}body.ctf-layout .ctf-posts-wrapper .card,body.ctf-layout .ctf-posts-wrapper .row,body.ctf-layout .ctf-posts-wrapper .col,.ctf-layout .ctf-posts-wrapper .card,.ctf-layout .ctf-posts-wrapper .row,.ctf-layout .ctf-posts-wrapper .col{display:none!important}body.ctf-layout .ctf-posts-main,.ctf-layout .ctf-posts-main{width:100%!important;max-width:100%!important;text-align:left!important;padding:0 1.5rem 2rem!important;margin:0!important;background:rgba(0,0,0,0)!important;font-family:"Anonymous Pro",monospace!important}@media(max-width:900px){body.ctf-layout .ctf-posts-main,.ctf-layout .ctf-posts-main{padding:0 1rem 2rem!important}}body.ctf-layout .ctf-categories-page,.ctf-layout .ctf-categories-page{width:100%;max-width:100%;padding:0 1.5rem 2rem;font-family:"Anonymous Pro",monospace}@media(max-width:900px){body.ctf-layout .ctf-categories-page,.ctf-layout .ctf-categories-page{padding:0 1rem 2rem}}body.ctf-layout .ctf-categories-title,.ctf-layout .ctf-categories-title{font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif;font-size:3.6rem!important;font-weight:700!important;letter-spacing:.12em!important;margin:0 0 2.2rem!important;text-transform:uppercase;color:#0f172a;line-height:1.2!important}.ctf-categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem 2.25rem;list-style:none;margin:0;padding:0}@media(max-width:768px){.ctf-categories-grid{grid-template-columns:1fr;gap:1.5rem}}.ctf-category-block{position:relative;padding:1.1rem 1.25rem .9rem;background:rgba(15,23,42,.025);border:1px solid rgba(15,23,42,.09);border-left:2px solid rgba(207,34,46,.55);transition:background .2s ease,border-left-color .2s ease;min-width:0;overflow:hidden}.ctf-category-block:hover{background:rgba(207,34,46,.09);border-left-color:#cf222e}.ctf-category-block:hover .ctf-category-block-icon{opacity:1;color:#cf222e}.ctf-category-block-heading{display:flex;align-items:center;gap:.4rem;margin:0 0 .75rem;padding-bottom:.6rem;border-bottom:1px solid rgba(15,23,42,.09);font-size:var(--fs-xs,0.8125rem);font-weight:700;letter-spacing:.08em;line-height:1.2;text-transform:uppercase}.ctf-category-block-icon{flex-shrink:0;color:#cf222e;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;opacity:.55;transition:opacity .15s ease,color .15s ease}.ctf-category-block-icon i{font-size:1em}.ctf-category-block-name{font-family:"Anonymous Pro",monospace;font-size:1.15rem;color:#0f172a;text-decoration:none;transition:color .15s ease}.ctf-category-block-name:hover{color:var(--ctf-ia,#cf222e)}.ctf-category-block-posts{margin:0 0 .6rem;padding:0;list-style:none}.ctf-category-block-post{margin:0;padding:.18rem 0;line-height:1.6;display:flex;align-items:baseline;gap:.35rem;min-width:0}.ctf-category-block-post::before{content:"›";font-size:.85rem;color:#94a3b8;flex-shrink:0;line-height:1;transition:color .15s ease}.ctf-category-block-post:hover::before{color:rgba(207,34,46,.65)}.ctf-category-post-link{font-size:.98rem;color:#475569;text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s ease}.ctf-category-post-link:hover{color:var(--ctf-ia,#cf222e)}@media(max-width:768px){.ctf-category-post-link{white-space:normal;overflow:visible;text-overflow:unset;word-break:break-word;overflow-wrap:anywhere}}.ctf-category-more{display:inline-block;font-family:"Anonymous Pro",monospace;font-size:.95rem;color:rgba(207,34,46,.55);text-decoration:none;letter-spacing:.03em;transition:color .15s ease}.ctf-category-more:hover{color:#b91c1c;text-decoration:underline}body.ctf-layout .ctf-posts-title,.ctf-layout .ctf-posts-title{color:#000!important;font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:3.6rem!important;font-weight:700!important;letter-spacing:.12em!important;margin:0 0 2.2rem!important;text-transform:uppercase!important;line-height:1.2!important;font-style:normal!important;text-align:left!important;border:none!important;padding:0!important;text-shadow:none!important;display:block!important;visibility:visible!important;opacity:1!important}body.ctf-layout .ctf-posts-group,.ctf-layout .ctf-posts-group{display:flex!important;margin-bottom:1.9em!important;line-height:normal!important}@media(max-width:900px){body.ctf-layout .ctf-posts-group,.ctf-layout .ctf-posts-group{display:block!important}}body.ctf-layout .ctf-posts-list,.ctf-layout .ctf-posts-list{flex-grow:1!important;margin:0!important;padding:0!important;list-style:none!important}body.ctf-layout .ctf-posts-list li,.ctf-layout .ctf-posts-list li{list-style:none!important;margin:0!important;padding:0!important;background:rgba(0,0,0,0)!important;border:none!important}body.ctf-layout .ctf-post-year,.ctf-layout .ctf-post-year{padding-top:6px!important;margin-right:1.8em!important;font-size:1.6em!important;opacity:.6!important;color:#4b4b4b!important;font-family:"Anonymous Pro",monospace!important;font-weight:400!important;line-height:normal!important}@media(max-width:900px){body.ctf-layout .ctf-post-year,.ctf-layout .ctf-post-year{margin:-6px 0 6px!important}}body.ctf-layout .ctf-post-item-list,.ctf-layout .ctf-post-item-list{border-bottom:1px dashed rgba(180,180,180,.6)!important;margin:0!important;padding:.75rem 0!important;background:rgba(0,0,0,0)!important;list-style:none!important}body.ctf-layout .ctf-post-item-list:last-child,.ctf-layout .ctf-post-item-list:last-child{border-bottom:none!important}body.ctf-layout .ctf-post-item-list h3,.ctf-layout .ctf-post-item-list h3{display:none!important}body.ctf-layout .ctf-post-item-list p,.ctf-layout .ctf-post-item-list p{display:none!important}body.ctf-layout .ctf-post-link,.ctf-layout .ctf-post-link{display:flex!important;justify-content:space-between!important;align-items:baseline!important;padding:12px 0!important;text-decoration:none!important;color:var(--global-theme-color)!important;transition:color .3s ease!important;border:none!important;background:rgba(0,0,0,0)!important}body.ctf-layout .ctf-post-link:hover,.ctf-layout .ctf-post-link:hover{color:var(--global-theme-color)!important;text-decoration:underline!important;background:rgba(0,0,0,0)!important;opacity:.8}body.ctf-layout .ctf-post-link:visited,.ctf-layout .ctf-post-link:visited{color:var(--global-theme-color)!important}body.ctf-layout .ctf-post-title-text,.ctf-layout .ctf-post-title-text{font-size:1rem!important;margin:0!important;color:inherit!important;font-family:"Anonymous Pro",monospace!important;line-height:1.4!important;text-transform:none!important;font-weight:400!important;font-style:normal!important;text-decoration:none!important}body.ctf-layout .ctf-post-date,.ctf-layout .ctf-post-date{flex-shrink:0!important;margin-left:1em!important;opacity:.6!important;color:inherit!important;font-family:"Anonymous Pro",monospace!important;text-transform:capitalize!important;font-size:1rem!important;font-weight:400!important}body.ctf-layout .post,.ctf-layout .post,body.ctf-layout main.post,.ctf-layout main.post{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:1rem!important;line-height:1.54!important;background-color:#fff!important;color:#222!important;width:100%!important;max-width:100%!important;text-align:left!important;padding:20px!important;margin:20px 0!important}body.ctf-layout .post article .post-title,.ctf-layout .post article .post-title,body.ctf-layout main.post article .post-title,.ctf-layout main.post article .post-title{font-family:"High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:2.625rem!important;font-weight:400!important;font-style:italic!important;line-height:2.3!important;letter-spacing:.12em!important;text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;text-shadow:0 0 .5px currentColor!important;color:inherit!important;margin:0 0 20px 0!important}body.ctf-layout .post article .post-title a,.ctf-layout .post article .post-title a,body.ctf-layout main.post article .post-title a,.ctf-layout main.post article .post-title a{padding-bottom:.5em!important;text-underline-offset:.45em!important;text-decoration-skip-ink:auto!important;display:inline-block!important}@media(max-width:684px){body.ctf-layout .post article .post-title,.ctf-layout .post article .post-title,body.ctf-layout main.post article .post-title,.ctf-layout main.post article .post-title{font-size:2rem!important}}@media(max-width:576px){body.ctf-layout .post article .post-title,.ctf-layout .post article .post-title,body.ctf-layout main.post article .post-title,.ctf-layout main.post article .post-title{font-size:1.75rem!important;line-height:1.9!important}}@media(max-width:400px){body.ctf-layout .post article .post-title,.ctf-layout .post article .post-title,body.ctf-layout main.post article .post-title,.ctf-layout main.post article .post-title{font-size:1.5rem!important;line-height:1.7!important;letter-spacing:.08em!important}}body.ctf-layout .post .post-header,.ctf-layout .post .post-header,body.ctf-layout main.post .post-header,.ctf-layout main.post .post-header{margin-bottom:0!important}body.ctf-layout .post .post-header .post-title,.ctf-layout .post .post-header .post-title,body.ctf-layout main.post .post-header .post-title,.ctf-layout main.post .post-header .post-title{font-family:"High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:2.625rem!important;font-weight:400!important;font-style:italic!important;line-height:2.3!important;letter-spacing:.12em!important;text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;text-shadow:0 0 .5px currentColor!important;color:inherit!important;margin:0 0 20px 0!important}body.ctf-layout .post .post-header .post-title a,.ctf-layout .post .post-header .post-title a,body.ctf-layout main.post .post-header .post-title a,.ctf-layout main.post .post-header .post-title a{padding-bottom:.5em!important;text-underline-offset:.45em!important;text-decoration-skip-ink:auto!important;display:inline-block!important}@media(max-width:684px){body.ctf-layout .post .post-header .post-title,.ctf-layout .post .post-header .post-title,body.ctf-layout main.post .post-header .post-title,.ctf-layout main.post .post-header .post-title{font-size:2rem!important}}@media(max-width:576px){body.ctf-layout .post .post-header .post-title,.ctf-layout .post .post-header .post-title,body.ctf-layout main.post .post-header .post-title,.ctf-layout main.post .post-header .post-title{font-size:1.75rem!important;line-height:1.9!important}}@media(max-width:400px){body.ctf-layout .post .post-header .post-title,.ctf-layout .post .post-header .post-title,body.ctf-layout main.post .post-header .post-title,.ctf-layout main.post .post-header .post-title{font-size:1.5rem!important;line-height:1.7!important;letter-spacing:.08em!important}}body.ctf-layout .post .post-content,.ctf-layout .post .post-content,body.ctf-layout main.post .post-content,.ctf-layout main.post .post-content{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:1rem!important;line-height:1.54!important;color:#222!important;margin-top:30px!important}body.ctf-layout .post .post-content p,body.ctf-layout .post .post-content li,body.ctf-layout .post .post-content div,body.ctf-layout .post .post-content span,body.ctf-layout .post .post-content a,body.ctf-layout .post .post-content blockquote,body.ctf-layout .post .post-content figcaption,body.ctf-layout .post .post-content dd,body.ctf-layout .post .post-content dt,body.ctf-layout .post .post-content td,body.ctf-layout .post .post-content th,.ctf-layout .post .post-content p,.ctf-layout .post .post-content li,.ctf-layout .post .post-content div,.ctf-layout .post .post-content span,.ctf-layout .post .post-content a,.ctf-layout .post .post-content blockquote,.ctf-layout .post .post-content figcaption,.ctf-layout .post .post-content dd,.ctf-layout .post .post-content dt,.ctf-layout .post .post-content td,.ctf-layout .post .post-content th,body.ctf-layout main.post .post-content p,body.ctf-layout main.post .post-content li,body.ctf-layout main.post .post-content div,body.ctf-layout main.post .post-content span,body.ctf-layout main.post .post-content a,body.ctf-layout main.post .post-content blockquote,body.ctf-layout main.post .post-content figcaption,body.ctf-layout main.post .post-content dd,body.ctf-layout main.post .post-content dt,body.ctf-layout main.post .post-content td,body.ctf-layout main.post .post-content th,.ctf-layout main.post .post-content p,.ctf-layout main.post .post-content li,.ctf-layout main.post .post-content div,.ctf-layout main.post .post-content span,.ctf-layout main.post .post-content a,.ctf-layout main.post .post-content blockquote,.ctf-layout main.post .post-content figcaption,.ctf-layout main.post .post-content dd,.ctf-layout main.post .post-content dt,.ctf-layout main.post .post-content td,.ctf-layout main.post .post-content th{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;line-height:1.54!important}body.ctf-layout .post .post-content p,.ctf-layout .post .post-content p,body.ctf-layout main.post .post-content p,.ctf-layout main.post .post-content p{font-size:1rem!important;color:inherit!important;margin-bottom:1rem!important}body.ctf-layout .post .post-content h1,body.ctf-layout .post .post-content h2,body.ctf-layout .post .post-content h3,body.ctf-layout .post .post-content h4,body.ctf-layout .post .post-content h5,body.ctf-layout .post .post-content h6,.ctf-layout .post .post-content h1,.ctf-layout .post .post-content h2,.ctf-layout .post .post-content h3,.ctf-layout .post .post-content h4,.ctf-layout .post .post-content h5,.ctf-layout .post .post-content h6,body.ctf-layout main.post .post-content h1,body.ctf-layout main.post .post-content h2,body.ctf-layout main.post .post-content h3,body.ctf-layout main.post .post-content h4,body.ctf-layout main.post .post-content h5,body.ctf-layout main.post .post-content h6,.ctf-layout main.post .post-content h1,.ctf-layout main.post .post-content h2,.ctf-layout main.post .post-content h3,.ctf-layout main.post .post-content h4,.ctf-layout main.post .post-content h5,.ctf-layout main.post .post-content h6{font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;color:inherit!important;font-weight:700!important;letter-spacing:.06em!important}body.ctf-layout .post .post-content h2,.ctf-layout .post .post-content h2,body.ctf-layout main.post .post-content h2,.ctf-layout main.post .post-content h2{font-size:1.625rem!important;margin-top:2.5rem!important;margin-bottom:1rem!important}body.ctf-layout .post .post-content h3,.ctf-layout .post .post-content h3,body.ctf-layout main.post .post-content h3,.ctf-layout main.post .post-content h3{font-size:1.375rem!important;margin-top:2rem!important;margin-bottom:1rem!important}body.ctf-layout .post .post-content ul,body.ctf-layout .post .post-content ol,.ctf-layout .post .post-content ul,.ctf-layout .post .post-content ol,body.ctf-layout main.post .post-content ul,body.ctf-layout main.post .post-content ol,.ctf-layout main.post .post-content ul,.ctf-layout main.post .post-content ol{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;color:inherit!important;margin-left:40px!important;margin-bottom:1.5rem!important;padding:0!important}@media(max-width:684px){body.ctf-layout .post .post-content ul,body.ctf-layout .post .post-content ol,.ctf-layout .post .post-content ul,.ctf-layout .post .post-content ol,body.ctf-layout main.post .post-content ul,body.ctf-layout main.post .post-content ol,.ctf-layout main.post .post-content ul,.ctf-layout main.post .post-content ol{margin-left:20px!important}}body.ctf-layout .post .post-content ul li,body.ctf-layout .post .post-content ol li,.ctf-layout .post .post-content ul li,.ctf-layout .post .post-content ol li,body.ctf-layout main.post .post-content ul li,body.ctf-layout main.post .post-content ol li,.ctf-layout main.post .post-content ul li,.ctf-layout main.post .post-content ol li{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;color:inherit!important;line-height:1.54!important;margin-bottom:.75rem!important}body.ctf-layout .post .post-content ul ol,body.ctf-layout .post .post-content ol ol,.ctf-layout .post .post-content ul ol,.ctf-layout .post .post-content ol ol,body.ctf-layout main.post .post-content ul ol,body.ctf-layout main.post .post-content ol ol,.ctf-layout main.post .post-content ul ol,.ctf-layout main.post .post-content ol ol{list-style-type:lower-alpha!important}body.ctf-layout .post .post-content a,.ctf-layout .post .post-content a,body.ctf-layout main.post .post-content a,.ctf-layout main.post .post-content a{color:inherit!important;text-decoration:none!important}body.ctf-layout .post .post-content a:hover,.ctf-layout .post .post-content a:hover,body.ctf-layout main.post .post-content a:hover,.ctf-layout main.post .post-content a:hover{border-bottom:1px solid currentColor!important}body.ctf-layout .post .post-content hr,.ctf-layout .post .post-content hr,body.ctf-layout main.post .post-content hr,.ctf-layout main.post .post-content hr{width:100%!important;border:none!important;background:#dcdcdc!important;height:1px!important;margin:1.5rem 0!important}body.ctf-layout .post .post-content #toc,body.ctf-layout .post .post-content aside#toc,.ctf-layout .post .post-content #toc,.ctf-layout .post .post-content aside#toc,body.ctf-layout main.post .post-content #toc,body.ctf-layout main.post .post-content aside#toc,.ctf-layout main.post .post-content #toc,.ctf-layout main.post .post-content aside#toc{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;margin:1.5rem 0!important}body.ctf-layout .post .post-content #toc .toc-title,body.ctf-layout .post .post-content aside#toc .toc-title,.ctf-layout .post .post-content #toc .toc-title,.ctf-layout .post .post-content aside#toc .toc-title,body.ctf-layout main.post .post-content #toc .toc-title,body.ctf-layout main.post .post-content aside#toc .toc-title,.ctf-layout main.post .post-content #toc .toc-title,.ctf-layout main.post .post-content aside#toc .toc-title{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:1rem!important;font-weight:600!important;margin-bottom:.5rem!important}body.ctf-layout .post .post-content #toc nav ul,body.ctf-layout .post .post-content aside#toc nav ul,.ctf-layout .post .post-content #toc nav ul,.ctf-layout .post .post-content aside#toc nav ul,body.ctf-layout main.post .post-content #toc nav ul,body.ctf-layout main.post .post-content aside#toc nav ul,.ctf-layout main.post .post-content #toc nav ul,.ctf-layout main.post .post-content aside#toc nav ul{margin-left:1.5rem!important;padding-left:0!important}body.ctf-layout .post .post-content #toc nav ul li,body.ctf-layout .post .post-content aside#toc nav ul li,.ctf-layout .post .post-content #toc nav ul li,.ctf-layout .post .post-content aside#toc nav ul li,body.ctf-layout main.post .post-content #toc nav ul li,body.ctf-layout main.post .post-content aside#toc nav ul li,.ctf-layout main.post .post-content #toc nav ul li,.ctf-layout main.post .post-content aside#toc nav ul li{margin-bottom:.5rem!important}body.ctf-layout .post .post-content #toc nav ul li a,body.ctf-layout .post .post-content aside#toc nav ul li a,.ctf-layout .post .post-content #toc nav ul li a,.ctf-layout .post .post-content aside#toc nav ul li a,body.ctf-layout main.post .post-content #toc nav ul li a,body.ctf-layout main.post .post-content aside#toc nav ul li a,.ctf-layout main.post .post-content #toc nav ul li a,.ctf-layout main.post .post-content aside#toc nav ul li a{color:inherit!important;text-decoration:underline!important;text-decoration-color:rgba(0,0,0,.3)!important}body.ctf-layout .post .post-content #toc nav ul li a:hover,body.ctf-layout .post .post-content aside#toc nav ul li a:hover,.ctf-layout .post .post-content #toc nav ul li a:hover,.ctf-layout .post .post-content aside#toc nav ul li a:hover,body.ctf-layout main.post .post-content #toc nav ul li a:hover,body.ctf-layout main.post .post-content aside#toc nav ul li a:hover,.ctf-layout main.post .post-content #toc nav ul li a:hover,.ctf-layout main.post .post-content aside#toc nav ul li a:hover{text-decoration-color:rgba(0,0,0,.6)!important}body.ctf-layout .post .post-content code,.ctf-layout .post .post-content code,body.ctf-layout main.post .post-content code,.ctf-layout main.post .post-content code{font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace!important;background:#eaeaea!important;padding:.2rem .4rem!important;border-radius:3px!important;font-size:.9em!important}body.ctf-layout .post .post-content pre,.ctf-layout .post .post-content pre,body.ctf-layout main.post .post-content pre,.ctf-layout main.post .post-content pre{font-family:Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace!important;background:#2d2d2d!important;color:#ccc!important;padding:1em!important;margin:.5em 0!important;overflow:auto!important;border-radius:4px!important}body.ctf-layout .post .post-content pre code,.ctf-layout .post .post-content pre code,body.ctf-layout main.post .post-content pre code,.ctf-layout main.post .post-content pre code{background:rgba(0,0,0,0)!important;padding:0!important;color:inherit!important}body.ctf-layout .post .post-content blockquote,.ctf-layout .post .post-content blockquote,body.ctf-layout main.post .post-content blockquote,.ctf-layout main.post .post-content blockquote{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;color:inherit!important;border-left:3px solid rgba(0,0,0,.2)!important;padding-left:1.5rem!important;margin:1.5rem 0!important;position:relative!important}body.ctf-layout .post .post-content blockquote::before,.ctf-layout .post .post-content blockquote::before,body.ctf-layout main.post .post-content blockquote::before,.ctf-layout main.post .post-content blockquote::before{content:""!important;font-family:Georgia,serif!important;font-size:3.875rem!important;position:absolute!important;left:-40px!important;top:-20px!important;opacity:.3!important}body.ctf-layout .post .post-content blockquote p:first-of-type,.ctf-layout .post .post-content blockquote p:first-of-type,body.ctf-layout main.post .post-content blockquote p:first-of-type,.ctf-layout main.post .post-content blockquote p:first-of-type{margin-top:0!important}body.ctf-layout .post .post-content blockquote p:last-of-type,.ctf-layout .post .post-content blockquote p:last-of-type,body.ctf-layout main.post .post-content blockquote p:last-of-type,.ctf-layout main.post .post-content blockquote p:last-of-type{margin-bottom:0!important}body.ctf-layout .post .post-content img,.ctf-layout .post .post-content img,body.ctf-layout main.post .post-content img,.ctf-layout main.post .post-content img{display:block!important;max-width:85%!important;width:auto!important;height:auto!important;border-radius:8px!important;margin:2rem auto!important}@media(max-width:576px){body.ctf-layout .post .post-content img,.ctf-layout .post .post-content img,body.ctf-layout main.post .post-content img,.ctf-layout main.post .post-content img{max-width:100%!important;margin:1.25rem auto!important}}body.ctf-layout .post .post-content img.small,.ctf-layout .post .post-content img.small,body.ctf-layout main.post .post-content img.small,.ctf-layout main.post .post-content img.small{max-width:50%!important}body.ctf-layout .post .post-content img.center,.ctf-layout .post .post-content img.center,body.ctf-layout main.post .post-content img.center,.ctf-layout main.post .post-content img.center{margin-left:auto!important;margin-right:auto!important}body.ctf-layout .post .post-content img.left,.ctf-layout .post .post-content img.left,body.ctf-layout main.post .post-content img.left,.ctf-layout main.post .post-content img.left{margin-left:0!important;margin-right:auto!important}body.ctf-layout .post .post-content img.right,.ctf-layout .post .post-content img.right,body.ctf-layout main.post .post-content img.right,.ctf-layout main.post .post-content img.right{margin-left:auto!important;margin-right:0!important}body.ctf-layout .post .post-content figure,.ctf-layout .post .post-content figure,body.ctf-layout main.post .post-content figure,.ctf-layout main.post .post-content figure{margin:2rem auto!important;display:block!important;text-align:center!important}body.ctf-layout .post .post-content figure img,.ctf-layout .post .post-content figure img,body.ctf-layout main.post .post-content figure img,.ctf-layout main.post .post-content figure img{margin:0 auto!important}body.ctf-layout .post .post-content figcaption,.ctf-layout .post .post-content figcaption,body.ctf-layout main.post .post-content figcaption,.ctf-layout main.post .post-content figcaption{font-size:.82rem!important;color:var(--global-text-color-light,#6b7280)!important;text-align:center!important;margin-top:.5rem!important;line-height:1.45!important;font-style:italic!important}body.ctf-layout .post,.post[data-ctf-post=true]{font-family:"Anonymous Pro",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important}body.ctf-layout .ctf-posts-pagination,.ctf-layout .ctf-posts-pagination{display:flex!important;justify-content:center!important;gap:1rem!important;width:100%!important;max-width:100%!important;margin:2rem 0 3.5rem 0!important;padding:0 1.5rem!important}body.ctf-layout .ctf-posts-pagination nav,.ctf-layout .ctf-posts-pagination nav{display:none!important}body.ctf-layout .ctf-posts-pagination ul.pagination,.ctf-layout .ctf-posts-pagination ul.pagination{display:none!important}@media(max-width:900px){body.ctf-layout .ctf-posts-pagination,.ctf-layout .ctf-posts-pagination{padding:0 1rem!important}}body.ctf-layout .ctf-pagination-link,.ctf-layout .ctf-pagination-link{display:inline-flex!important;align-items:center!important;gap:.5rem!important;padding:.6rem 1.4rem!important;border-radius:6px!important;border:1px solid #d4d4d4!important;background:#f5f5f5!important;color:#4b4b4b!important;font-family:"Anonymous Pro",monospace!important;font-size:.95rem!important;text-decoration:none!important;transition:all .3s ease!important;cursor:pointer!important}body.ctf-layout .ctf-pagination-link:hover,.ctf-layout .ctf-pagination-link:hover{color:#1f1f1f!important;border-color:#1f1f1f!important;background:#f0f0f0!important;text-decoration:none!important}body.ctf-layout .ctf-pagination-link:visited,.ctf-layout .ctf-pagination-link:visited{color:#4b4b4b!important}.ctf-terminal{background:#0d1117;border:1px solid var(--ctf-border);border-radius:6px;padding:0;margin:2rem 0;box-shadow:0 2px 8px rgba(0,0,0,.3);overflow:hidden;min-height:0;height:auto;max-height:none;display:flex;flex-direction:column;position:relative;width:100%;max-width:100%;transition:min-height .3s ease,max-height .3s ease}.ctf-terminal.has-suggestions{overflow:visible}.ctf-terminal>.terminal-body{overflow-x:hidden}.ctf-terminal.ctf-terminal-compact{margin:1rem 0 2rem 0;max-height:none;height:auto;overflow:hidden}.ctf-terminal.ctf-terminal-compact.has-suggestions{overflow:visible}.ctf-terminal.ctf-terminal-compact .terminal-body.has-content{max-height:500px;height:auto;padding:.75rem 1rem;font-size:.85rem;overflow-y:auto}.ctf-terminal.ctf-terminal-compact .terminal-body .terminal-line .terminal-username,.ctf-terminal.ctf-terminal-compact .terminal-input-wrapper .terminal-username,.ctf-terminal.ctf-terminal-compact .terminal-input-wrapper .terminal-prompt{color:#3fb950!important}.ctf-terminal.ctf-terminal-compact .terminal-input-wrapper{padding:.6rem .75rem}.ctf-terminal.ctf-terminal-compact .terminal-input-wrapper .terminal-prompt{font-size:.85rem;margin-right:.4rem}.ctf-terminal.ctf-terminal-compact .terminal-input-wrapper .terminal-input{font-size:.85rem}.ctf-terminal .terminal-body{color:#fff;font-family:"Libertinus Mono",monospace;font-size:.9rem;line-height:1.6;padding:0;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;max-height:0;height:auto;background:rgba(0,0,0,.2);scrollbar-width:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);transition:padding .3s ease,opacity .3s ease,max-height .3s ease;opacity:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ctf-terminal .terminal-body.has-content{max-height:600px;height:auto;padding:1rem 1.5rem;opacity:1;overflow-y:auto}.ctf-terminal .terminal-body::-webkit-scrollbar{display:none}.ctf-terminal .terminal-body::-webkit-scrollbar{width:8px}.ctf-terminal .terminal-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ctf-terminal .terminal-body::-webkit-scrollbar-thumb{background:var(--ctf-border);border-radius:4px}.ctf-terminal .terminal-body::-webkit-scrollbar-thumb:hover{background:var(--ctf-text-primary)}.ctf-terminal .terminal-body .terminal-line{margin-bottom:.5rem;display:flex;align-items:flex-start;word-wrap:break-word;animation:fadeIn .3s ease-in;flex-wrap:wrap;gap:.5rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ctf-terminal .terminal-body .terminal-line .terminal-prompt{color:var(--terminal-prompt);flex-shrink:0;font-weight:500;margin-right:.25rem}.ctf-terminal .terminal-body .terminal-line .terminal-username{color:#3fb950!important}.ctf-terminal .terminal-body .terminal-line .terminal-command{color:var(--terminal-command)!important;flex-shrink:0;margin-right:.25rem}.ctf-terminal .terminal-body .terminal-line .terminal-output{color:#fff;white-space:pre-wrap;font-family:"Libertinus Mono",monospace;line-height:1.6;display:inline-block;vertical-align:top;word-break:break-word;overflow-wrap:break-word}.ctf-terminal .terminal-body .terminal-line .terminal-output .terminal-cmd-name{color:var(--terminal-command)!important}.ctf-terminal .terminal-body .terminal-line .terminal-output{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.terminal-line>.ctf-terminal .terminal-body .terminal-line .terminal-output:only-child{display:block;width:100%}.ctf-terminal .terminal-input-wrapper{display:flex;align-items:center;padding:.75rem 1rem;background:rgba(0,0,0,.15);position:relative;overflow:visible;z-index:10;transition:margin-top .2s ease;flex-shrink:0;border-top:1px solid rgba(26,61,74,.5)}.ctf-terminal .terminal-input-wrapper .terminal-prompt,.ctf-terminal .terminal-input-wrapper .terminal-username{color:var(--terminal-prompt)!important}.ctf-terminal .terminal-input-wrapper .terminal-prompt{margin-right:.5rem;font-family:"Libertinus Mono",monospace;flex-shrink:0;font-weight:500}.ctf-terminal .terminal-input-wrapper .terminal-input-container{flex:1;position:relative;display:flex;align-items:center}.ctf-terminal .terminal-input-wrapper .terminal-input{flex:1;background:rgba(0,0,0,0);border:0;outline:0;color:var(--terminal-input-text);font-family:"Libertinus Mono",monospace;font-size:.9rem;font-weight:500;padding:0;margin:0;caret-color:rgba(0,0,0,0);-webkit-appearance:none;appearance:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.ctf-terminal .terminal-input-wrapper .terminal-input::placeholder{color:var(--terminal-placeholder);opacity:1;font-style:italic}.ctf-terminal .terminal-input-wrapper .terminal-cursor{position:absolute;display:none;width:2px;height:1.2em;background-color:var(--terminal-cursor);animation:blink-cursor 1s infinite;pointer-events:none;left:0}.ctf-terminal .terminal-suggestions{position:absolute;top:auto;left:auto;right:auto;bottom:auto;width:auto;box-sizing:border-box;background:#1c2333;border:1px solid hsla(0,0,100%,.12);border-radius:8px;padding:.25rem 0;margin:0;max-height:240px;overflow-y:auto;overflow-x:hidden;z-index:1000;display:none;font-family:"Anonymous Pro","SF Mono","Consolas",monospace;font-size:.875rem;box-shadow:0 4px 16px rgba(0,0,0,.4)}.ctf-terminal .terminal-suggestions .terminal-suggestion-item{padding:.45rem .875rem;color:#e2e8f0;cursor:pointer;transition:background .1s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5;background:rgba(0,0,0,0);font-weight:400}.ctf-terminal .terminal-suggestions .terminal-suggestion-item:hover{background:hsla(0,0,100%,.08)}.ctf-terminal .terminal-suggestions .terminal-suggestion-item.selected{background:rgba(245,146,31,.2);color:#fdba74;font-weight:500;border-left:2px solid #f5921f;padding-left:calc(.875rem - 2px)}.ctf-terminal .terminal-suggestions::-webkit-scrollbar{width:4px}.ctf-terminal .terminal-suggestions::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.ctf-terminal .terminal-suggestions::-webkit-scrollbar-thumb{background:hsla(0,0,100%,.15);border-radius:2px}.ctf-terminal-fab{position:fixed;bottom:24px;left:24px;z-index:10020;width:48px;height:48px;border-radius:12px;border:0;background:hsla(0,0,100%,.5);color:#1e293b;font-family:"Anonymous Pro","SF Mono","Consolas",monospace;font-size:1.05rem;font-weight:500;box-shadow:0 2px 5px rgba(0,0,0,.26);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,box-shadow .15s ease,color .15s ease}.ctf-terminal-fab:hover{background:hsla(0,0,100%,.65);box-shadow:0 4px 10px rgba(0,0,0,.28)}.ctf-terminal-fab:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ctf-terminal-scrim{position:fixed;inset:0;z-index:10010;background:rgba(15,23,42,.5);opacity:0;pointer-events:none;transition:opacity .22s ease-out}.ctf-terminal-scrim.is-open{opacity:1;pointer-events:auto}.ctf-terminal-drawer{position:fixed;inset:0;z-index:10015;display:flex;align-items:center;justify-content:center;padding:16px;pointer-events:none;opacity:0;transition:opacity .2s ease-out}@media(max-height:520px){.ctf-terminal-drawer{padding:8px}}@media(max-width:400px){.ctf-terminal-drawer{padding:8px}}.ctf-terminal-drawer.is-open{opacity:1;pointer-events:auto}.ctf-terminal-drawer.is-open .ctf-terminal-drawer-panel{opacity:1;transform:scale(1)}.ctf-terminal-drawer-panel{width:min(720px,100vw - 32px);max-height:min(90vh,760px);min-height:0;border-radius:16px;overflow:hidden;background:rgba(30,41,59,.38);-webkit-backdrop-filter:saturate(1.4) blur(24px);backdrop-filter:saturate(1.4) blur(24px);border:1px solid hsla(0,0,100%,.14);box-shadow:inset 0 1px 0 hsla(0,0,100%,.12),0 24px 48px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.06);opacity:0;transform:scale(0.97);transition:opacity .22s cubic-bezier(0.16,1,0.3,1),transform .22s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column}@media(max-height:520px){.ctf-terminal-drawer-panel{max-height:94vh;min-height:0}}@media(max-height:420px){.ctf-terminal-drawer-panel{max-height:92vh}}@media(max-width:400px){.ctf-terminal-drawer-panel{width:calc(100vw - 16px)}}.ctf-terminal-drawer-inner{border-radius:16px;flex:1;min-height:0;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(30,41,59,0.52) 0%,rgba(15,23,42,0.65) 100%)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0,100%,.06)!important;box-shadow:inset 0 1px 0 hsla(0,0,100%,.08)!important}.ctf-terminal-drawer-inner .terminal-prompt,.ctf-terminal-drawer-inner .terminal-username,.ctf-terminal-drawer-inner .terminal-input-wrapper .terminal-prompt,.ctf-terminal-drawer-inner .terminal-input-wrapper .terminal-username{color:var(--terminal-prompt)!important}.ctf-terminal-drawer-inner .terminal-line .terminal-command{color:var(--terminal-command)!important}.ctf-terminal-drawer-inner .terminal-input{caret-color:var(--terminal-cursor);color:var(--terminal-input-text)}.ctf-terminal-drawer-inner .terminal-body{color:var(--terminal-output)}.ctf-terminal-drawer-inner .terminal-output{color:#fff!important}.ctf-terminal-drawer-inner .terminal-output .terminal-cmd-name{color:var(--terminal-command)!important}.ctf-terminal-drawer-inner .terminal-input-wrapper{border-top:1px solid hsla(0,0,100%,.08)}.ctf-terminal-popup-trigger{position:fixed;left:24px;bottom:24px;z-index:10020;width:48px;height:48px;border-radius:12px;border:0;background:hsla(0,0,100%,.5);color:#1e293b;font-family:"Anonymous Pro","SF Mono","Consolas",monospace;font-size:1.05rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(0,0,0,.26);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,color .15s ease}.ctf-terminal-popup-trigger:hover{background:hsla(0,0,100%,.65);box-shadow:0 4px 10px rgba(0,0,0,.28)}.ctf-terminal-popup-trigger:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ctf-terminal-popup-overlay{position:fixed;inset:0;z-index:10015;background:rgba(15,23,42,.52);opacity:0;pointer-events:none;transition:opacity .22s ease-out;display:flex;align-items:center;justify-content:center;padding:16px}@media(max-height:520px),(max-width:400px){.ctf-terminal-popup-overlay{padding:8px}}.ctf-terminal-popup-overlay.is-visible{opacity:1;pointer-events:auto}.ctf-terminal-popup-overlay.is-visible .ctf-terminal-popup-panel{opacity:1;transform:scale(1)}.ctf-terminal-popup-panel{width:min(720px,100vw - 32px);max-height:min(90vh,760px);min-height:0;border-radius:16px;overflow:hidden;background:rgba(30,41,59,.38);-webkit-backdrop-filter:saturate(1.4) blur(24px);backdrop-filter:saturate(1.4) blur(24px);border:1px solid hsla(0,0,100%,.14);box-shadow:inset 0 1px 0 hsla(0,0,100%,.12),0 24px 48px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.06);opacity:0;transform:scale(0.97);transition:opacity .22s cubic-bezier(0.16,1,0.3,1),transform .22s cubic-bezier(0.16,1,0.3,1),min-height .25s ease;display:flex;flex-direction:column}@media(max-height:520px){.ctf-terminal-popup-panel{max-height:94vh}}@media(max-height:420px){.ctf-terminal-popup-panel{max-height:92vh}}@media(max-width:400px){.ctf-terminal-popup-panel{width:calc(100vw - 16px)}}.ctf-terminal.ctf-terminal-popup{margin:0;border-radius:16px;flex:1;min-height:0;display:flex;flex-direction:column;font-family:"Anonymous Pro","SF Mono","Consolas",monospace;background:linear-gradient(180deg,rgba(30,41,59,0.52) 0%,rgba(15,23,42,0.65) 100%)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0,100%,.06)!important;box-shadow:inset 0 1px 0 hsla(0,0,100%,.08)!important}.ctf-terminal.ctf-terminal-popup .terminal-prompt,.ctf-terminal.ctf-terminal-popup .terminal-username,.ctf-terminal.ctf-terminal-popup .terminal-input-wrapper .terminal-prompt,.ctf-terminal.ctf-terminal-popup .terminal-input-wrapper .terminal-username{color:var(--terminal-prompt)!important}.ctf-terminal.ctf-terminal-popup .terminal-line .terminal-command{color:var(--terminal-command)!important}.ctf-terminal.ctf-terminal-popup .terminal-input{caret-color:var(--terminal-cursor);color:var(--terminal-input-text)}.ctf-terminal.ctf-terminal-popup .terminal-input::placeholder{color:var(--terminal-placeholder)!important;opacity:1!important;text-shadow:none!important;font-style:normal!important}.ctf-terminal.ctf-terminal-popup .terminal-body{color:var(--terminal-output)}.ctf-terminal.ctf-terminal-popup .terminal-output{color:#fff!important}.ctf-terminal.ctf-terminal-popup .terminal-output .terminal-cmd-name{color:var(--terminal-command)!important}.ctf-terminal.ctf-terminal-popup .terminal-input-wrapper{border-top:1px solid hsla(0,0,100%,.08)}.ctf-terminal.ctf-terminal-popup .terminal-suggestions{background:#1c2333;border-color:hsla(0,0,100%,.12);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.ctf-terminal-popup-panel:has(.has-suggestions),.ctf-terminal-drawer-panel:has(.has-suggestions){overflow:visible}.ctf-terminal-drawer-inner .terminal-suggestions{background:#1c2333;border-color:hsla(0,0,100%,.12);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.4)}.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body{flex:0 0 auto;max-height:0;min-height:0;overflow:hidden;transition:max-height .25s ease,min-height .25s ease,flex .25s ease}.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body.has-content{max-height:min(60vh,520px);flex:1 1 auto;min-height:200px;overflow-y:auto}.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body{font-size:clamp(10px,2.2vmin,14px);line-height:1.45}.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body.has-content{font-size:clamp(10px,2.2vmin,14px);line-height:1.4}@media(max-height:520px){.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body,.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body.has-content{font-size:clamp(9px,2vmin,12px);line-height:1.3}}@media(max-height:420px){.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body,.ctf-terminal-drawer-panel .ctf-terminal-drawer-inner .terminal-body.has-content{font-size:clamp(8px,1.8vmin,11px);line-height:1.25}}.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body{flex:0 0 auto;max-height:0;min-height:0;overflow:hidden;transition:max-height .25s ease,min-height .25s ease,flex .25s ease}.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body.has-content{max-height:min(60vh,520px);flex:1 1 auto;min-height:200px;overflow-y:auto}.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body{font-size:clamp(10px,2.2vmin,14px);line-height:1.45}.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body.has-content{font-size:clamp(10px,2.2vmin,14px);line-height:1.4}@media(max-height:520px){.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body,.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body.has-content{font-size:clamp(9px,2vmin,12px);line-height:1.3}}@media(max-height:420px){.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body,.ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup .terminal-body.has-content{font-size:clamp(8px,1.8vmin,11px);line-height:1.25}}html[data-theme=light] .ctf-terminal-drawer-panel,html[data-theme=light] .ctf-terminal-popup-panel{background:hsla(0,0,100%,.28);-webkit-backdrop-filter:saturate(1.5) blur(24px);backdrop-filter:saturate(1.5) blur(24px);border:1px solid hsla(0,0,100%,.65);box-shadow:inset 0 1px 0 hsla(0,0,100%,.85),0 24px 48px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.04)}html[data-theme=light] .ctf-terminal-drawer-panel .ctf-terminal-drawer-inner,html[data-theme=light] .ctf-terminal-popup-panel .ctf-terminal.ctf-terminal-popup{background:linear-gradient(180deg,rgba(248,250,252,0.55) 0%,rgba(241,245,249,0.7) 100%)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:hsla(0,0,100%,.4)!important;box-shadow:inset 0 1px 0 hsla(0,0,100%,.6)!important;color:#334155}html[data-theme=light] .ctf-terminal-drawer-panel .terminal-output,html[data-theme=light] .ctf-terminal-popup-panel .terminal-output{color:#0d1117!important}html[data-theme=light] .ctf-terminal .terminal-suggestions .terminal-suggestion-item.selected,html[data-theme=light] .ctf-terminal-drawer-panel .terminal-suggestions .terminal-suggestion-item.selected,html[data-theme=light] .ctf-terminal-popup-panel .terminal-suggestions .terminal-suggestion-item.selected{background:rgba(9,105,218,.15);color:#0969da;border-left-color:#0969da}html[data-theme=light] .ctf-terminal-drawer-panel .terminal-input-wrapper,html[data-theme=light] .ctf-terminal-popup-panel .terminal-input-wrapper{border-top-color:rgba(0,0,0,.06)}html[data-theme=light] .ctf-terminal-fab{background:rgba(0,0,0,.4);color:#fff}html[data-theme=light] .ctf-terminal-fab:hover{background:rgba(0,0,0,.52)}html[data-theme=light] .ctf-terminal-popup-trigger{background:rgba(0,0,0,.4);color:#fff}html[data-theme=light] .ctf-terminal-popup-trigger:hover{background:rgba(0,0,0,.52)}html[data-theme=light] .ctf-terminal-scrim{background:rgba(0,0,0,.2)}html[data-theme=light] .ctf-terminal-popup-overlay{background:rgba(0,0,0,.22)}html[data-theme=light] .ctf-terminal-drawer-panel .terminal-suggestions,html[data-theme=light] .ctf-terminal-popup-panel .terminal-suggestions{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}html[data-theme=light] .ctf-terminal-drawer-panel .terminal-suggestions .terminal-suggestion-item,html[data-theme=light] .ctf-terminal-popup-panel .terminal-suggestions .terminal-suggestion-item{color:#334155}html[data-theme=light] .ctf-terminal-drawer-panel .terminal-suggestions .terminal-suggestion-item.selected,html[data-theme=light] .ctf-terminal-popup-panel .terminal-suggestions .terminal-suggestion-item.selected{background:#0969da;color:#fff}@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-3px)}20%,40%,60%,80%{transform:translateX(3px)}}@media(max-width:400px){.ctf-terminal{margin:1rem .5rem;border-radius:4px}.terminal-body{padding:.75rem;font-size:.8rem;min-height:auto;max-height:none;height:auto}.terminal-body.has-content{overflow-y:visible}.terminal-input-wrapper{padding:.5rem .6rem;font-size:.8rem}.terminal-suggestions{font-size:.8rem;max-height:150px}}@supports(-webkit-backdrop-filter:blur(1px)){.ctf-terminal{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ctf-terminal .terminal-line{-webkit-box-align:flex-start;-webkit-align-items:flex-start;align-items:flex-start;word-break:break-word;-webkit-hyphens:none;hyphens:none}.ctf-terminal .terminal-output{-webkit-font-smoothing:antialiased;word-break:break-word;overflow-wrap:break-word}.ctf-terminal .terminal-input{-webkit-appearance:none;appearance:none;-webkit-font-smoothing:antialiased}}@media(min-width:1024px)and (max-width:1440px){.ctf-terminal .terminal-body{font-size:.88rem;line-height:1.65}.ctf-terminal .terminal-body.has-content{padding:1rem 1.25rem}.ctf-terminal .terminal-line{margin-bottom:.45rem;gap:.4rem}.ctf-terminal .terminal-input-wrapper{padding:.7rem 1rem}}@media(min-width:401px)and (max-width:768px){.ctf-terminal{margin:1.5rem 1rem}.terminal-body.has-content{max-height:none;height:auto;overflow-y:visible}.terminal-body{padding:1.25rem 1rem;min-height:300px;font-size:.85rem}.terminal-input-wrapper{padding:.6rem .75rem}.terminal-suggestions{font-size:.85rem;max-height:180px}.terminal-suggestions .terminal-suggestion-item{padding:.4rem .75rem}}@media(max-width:768px){.ctf-terminal{margin:1.5rem 0}.terminal-body.has-content{max-height:none;height:auto;overflow-y:visible}.terminal-body{padding:1.25rem 1rem;min-height:auto;max-height:none;height:auto;font-size:.85rem}.terminal-body.has-content{overflow-y:visible}.terminal-input-wrapper{padding:.6rem .75rem}.terminal-suggestions{font-size:.85rem;max-height:180px}.terminal-suggestions .terminal-suggestion-item{padding:.4rem .75rem}}html[data-theme=dark] body.ctf-layout .ctf-posts-title,html[data-theme=dark] .ctf-layout .ctf-posts-title{color:#fff!important;font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-weight:700!important;text-shadow:none!important;font-style:normal!important;opacity:1!important}html[data-theme=dark] body.ctf-layout .ctf-categories-title,html[data-theme=dark] .ctf-layout .ctf-categories-title{color:#fff!important}html[data-theme=dark] .ctf-category-block,html:not([data-theme=light]) .ctf-category-block{background:hsla(0,0,100%,.025);border-color:hsla(0,0,100%,.06);border-left-color:rgba(63,185,80,.6)}html[data-theme=dark] .ctf-category-block:hover,html:not([data-theme=light]) .ctf-category-block:hover{background:rgba(63,185,80,.05);border-left-color:#7ee787;box-shadow:none}html[data-theme=dark] .ctf-category-block:hover .ctf-category-block-icon,html:not([data-theme=light]) .ctf-category-block:hover .ctf-category-block-icon{opacity:.95;color:#7ee787}html[data-theme=dark] .ctf-category-block-heading,html:not([data-theme=light]) .ctf-category-block-heading{border-bottom-color:hsla(0,0,100%,.07)}html[data-theme=dark] .ctf-category-block-icon,html:not([data-theme=light]) .ctf-category-block-icon{color:#3fb950;opacity:.8}html[data-theme=dark] .ctf-category-block-name,html:not([data-theme=light]) .ctf-category-block-name{color:#e6edf3}html[data-theme=dark] .ctf-category-block-name:hover,html:not([data-theme=light]) .ctf-category-block-name:hover{color:#7ee787;text-decoration:none}html[data-theme=dark] .ctf-category-block-post::before,html:not([data-theme=light]) .ctf-category-block-post::before{color:rgba(63,185,80,.45)}html[data-theme=dark] .ctf-category-post-link,html:not([data-theme=light]) .ctf-category-post-link{color:rgba(230,237,243,.6)}html[data-theme=dark] .ctf-category-post-link:hover,html:not([data-theme=light]) .ctf-category-post-link:hover{color:#7ee787}html[data-theme=dark] .ctf-category-more,html:not([data-theme=light]) .ctf-category-more{color:rgba(63,185,80,.75);opacity:1}html[data-theme=dark] .ctf-category-more:hover,html:not([data-theme=light]) .ctf-category-more:hover{color:#7ee787;text-decoration:underline}body.ctf-layout .ctf-tags-page,.ctf-layout .ctf-tags-page{width:100%;max-width:100%;padding:0 1.5rem 2rem;font-family:"Anonymous Pro",monospace;--tag-accent:#cf222e;--tag-accent-bg:rgba(207,34,46,0.05);--tag-accent-bdr:rgba(207,34,46,0.35);--tag-accent-glow:rgba(207,34,46,0.08)}@media(max-width:900px){body.ctf-layout .ctf-tags-page,.ctf-layout .ctf-tags-page{padding:0 1rem 2rem}}body.ctf-layout .ctf-tags-title,.ctf-layout .ctf-tags-title{font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif;font-size:3.6rem!important;font-weight:700!important;letter-spacing:.12em!important;margin:0 0 2.2rem!important;text-transform:uppercase;color:#000;line-height:1.2!important}.ctf-tags-summary{margin-bottom:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem}.ctf-tags-chip{padding:.15rem .55rem;border-radius:4px;background:var(--tag-accent-bg);border:1px solid var(--tag-accent-bdr);color:#b91c1c;font-weight:500;font-size:.78rem;font-family:"Anonymous Pro",monospace}.ctf-tags-subtitle{margin:0 0 1.75rem;font-size:.9rem;color:#64748b;letter-spacing:.01em}.ctf-tags-list{display:flex;flex-wrap:wrap;gap:.5rem .55rem}.ctf-tag-pill{display:inline-flex;align-items:center;gap:.4rem;padding:6px 12px;border-radius:5px;border:1px solid #d1d5db;background:#f9fafb;text-decoration:none;font-size:.95rem;color:#1e293b;font-weight:500;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease}.ctf-tag-pill:hover{background:var(--tag-accent-bg);border-color:var(--tag-accent-bdr);color:#0f172a;transform:translateY(-1px);box-shadow:0 0 10px var(--tag-accent-glow)}.ctf-tag-pill:focus-visible{outline:2px solid var(--tag-accent);outline-offset:2px}.ctf-tag-name{white-space:nowrap}.ctf-tag-count{font-size:.9rem;color:#cf222e;font-weight:600;font-family:"Anonymous Pro",monospace}html[data-theme=dark] body.ctf-layout .ctf-tags-title,html[data-theme=dark] .ctf-layout .ctf-tags-title{color:#fff}html[data-theme=dark] body.ctf-layout .ctf-tags-page,html[data-theme=dark] .ctf-layout .ctf-tags-page,html:not([data-theme=light]) body.ctf-layout .ctf-tags-page,html:not([data-theme=light]) .ctf-layout .ctf-tags-page{--tag-accent:#7ee787;--tag-accent-bg:rgba(63,185,80,0.09);--tag-accent-bdr:rgba(63,185,80,0.5);--tag-accent-glow:rgba(63,185,80,0.08)}html[data-theme=dark] .ctf-tags-chip,html:not([data-theme=light]) .ctf-tags-chip{background:rgba(63,185,80,.07);border-color:rgba(63,185,80,.28);color:#3fb950}html[data-theme=dark] .ctf-tags-subtitle,html:not([data-theme=light]) .ctf-tags-subtitle{color:hsla(0,0,100%,.5)}html[data-theme=dark] .ctf-tag-pill,html:not([data-theme=light]) .ctf-tag-pill{border:1px solid hsla(0,0,100%,.1);background:hsla(0,0,100%,.04);color:rgba(230,237,243,.82)}html[data-theme=dark] .ctf-tag-pill:hover,html:not([data-theme=light]) .ctf-tag-pill:hover{background:var(--tag-accent-bg);border-color:var(--tag-accent-bdr);color:#e6edf3;box-shadow:0 0 10px var(--tag-accent-glow)}html[data-theme=dark] .ctf-tag-pill:focus-visible,html:not([data-theme=light]) .ctf-tag-pill:focus-visible{outline:2px solid var(--tag-accent);outline-offset:2px}html[data-theme=dark] .ctf-tag-count,html:not([data-theme=light]) .ctf-tag-count{color:#3fb950}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content{color:#e8e8e8!important;background-color:rgba(0,0,0,0)!important}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h1,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h2,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h3,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h4,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h5,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h6,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h1,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h2,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h3,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h4,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h5,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h6{color:#f0f0f0!important}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content h2,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content h2{border-bottom:1px solid rgba(148,163,184,.7)}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content p,html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content li,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content p,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content li{color:#e8e8e8!important}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content code,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content code{color:#e8e8e8!important}html[data-theme=dark] body.ctf-layout .ctf-section .ctf-content strong,html[data-theme=dark] .ctf-layout .ctf-section .ctf-content strong{color:#f0f0f0!important}html[data-theme=dark] body.ctf-layout .ctf-post-link,html[data-theme=dark] .ctf-layout .ctf-post-link{color:var(--global-theme-color)!important}html[data-theme=dark] body.ctf-layout .ctf-post-link:hover,html[data-theme=dark] .ctf-layout .ctf-post-link:hover{color:var(--global-theme-color)!important;text-decoration:underline!important;opacity:.8}html[data-theme=dark] body.ctf-layout .ctf-post-link:visited,html[data-theme=dark] .ctf-layout .ctf-post-link:visited{color:var(--global-theme-color)!important}html[data-theme=dark] body.ctf-layout .ctf-post-link .ctf-post-title-text,html[data-theme=dark] .ctf-layout .ctf-post-link .ctf-post-title-text{color:inherit!important}html[data-theme=dark] body.ctf-layout .ctf-post-link .ctf-post-date,html[data-theme=dark] .ctf-layout .ctf-post-link .ctf-post-date{color:#e8e8e8!important;opacity:.7!important}html[data-theme=dark] body.ctf-layout .container,html[data-theme=dark] .ctf-layout .container{background-color:rgba(0,0,0,0)!important}html[data-theme=dark] body.ctf-layout .post,html[data-theme=dark] .ctf-layout .post,html[data-theme=dark] body.ctf-layout main.post,html[data-theme=dark] .ctf-layout main.post{background-color:rgba(0,0,0,0)!important}html[data-theme=dark] body.ctf-layout .ctf-post-year,html[data-theme=dark] .ctf-layout .ctf-post-year{color:#e8e8e8!important;opacity:.7!important;font-weight:400!important}html[data-theme=dark] body.ctf-layout .ctf-post-item-list,html[data-theme=dark] .ctf-layout .ctf-post-item-list{border-bottom:1px dashed hsla(0,0,100%,.16)!important}html[data-theme=dark] body.ctf-layout .ctf-post-item-list:last-child,html[data-theme=dark] .ctf-layout .ctf-post-item-list:last-child{border-bottom:none!important}html[data-theme=dark] body.ctf-layout .ctf-posts-title,html[data-theme=dark] .ctf-layout .ctf-posts-title{color:#fff!important}html[data-theme=dark] main.post[data-ctf-post=true] .button{background:rgba(59,61,66,.85);border-color:rgba(148,163,184,.25)}html[data-theme=dark] main.post[data-ctf-post=true] .button:hover{background:#3b3d42;border-color:rgba(148,163,184,.4)}html[data-theme=light]{--ctf-bg-dark:#fff;--ctf-bg-darker:#f5f5f5;--ctf-text-color:#0d1117;--ctf-text-muted:#656d76;--ctf-border:#d0d7de}html[data-theme=light] .ctf-section{--ctf-bg-dark:#fff;--ctf-bg-darker:#f5f5f5;--ctf-text-primary:#0d1117;--ctf-text-secondary:#21262d;--ctf-text-muted:#656d76;--ctf-accent:#cf222e;--ctf-accent-alt:#0969da;--ctf-border:#d0d7de;--ctf-glow:rgba(207,34,46,0.3)}html[data-theme=light] .ctf-section .ctf-terminal{background:linear-gradient(135deg,#fff 0%,#f6f8fa 100%);border:2px solid #d0d7de;box-shadow:0 0 40px rgba(207,34,46,.1),0 0 80px rgba(0,0,0,.05),0 8px 32px rgba(0,0,0,.08),inset 0 0 30px rgba(207,34,46,.02)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body{background:rgba(246,248,250,.5);color:#0d1117;scrollbar-color:#656d76 #f6f8fa}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body::-webkit-scrollbar-thumb{background:#656d76}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body::-webkit-scrollbar-thumb:hover{background:#0d1117}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body .terminal-line .terminal-prompt{color:#cf222e;text-shadow:0 0 8px rgba(207,34,46,.2)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body .terminal-line .terminal-username{color:#cf222e!important}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body .terminal-line .terminal-command{color:#0969da!important;text-shadow:none}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body .terminal-line .terminal-output{color:#0d1117}html[data-theme=light] .ctf-section .ctf-terminal .terminal-body .terminal-line .terminal-output .terminal-cmd-name{color:#0969da!important}html[data-theme=light] .ctf-section .ctf-terminal .ctf-terminal-compact{background:linear-gradient(135deg,#fff 0%,#f6f8fa 100%);border:1px solid #d0d7de;box-shadow:0 0 20px rgba(207,34,46,.08),0 2px 8px rgba(0,0,0,.05)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper{background:linear-gradient(180deg,rgba(246,248,250,0.8) 0%,rgba(241,245,249,0.9) 100%);border-top:1px solid rgba(208,215,222,.6)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper .terminal-prompt{color:#cf222e!important;text-shadow:0 0 8px rgba(207,34,46,.2)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper .terminal-username{color:#cf222e!important}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper .terminal-input{color:#0d1117;text-shadow:none;font-weight:500;caret-color:rgba(0,0,0,0)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper .terminal-input::placeholder{color:#656d76;opacity:.7;font-style:italic}html[data-theme=light] .ctf-section .ctf-terminal .terminal-input-wrapper .terminal-cursor{background-color:#0d1117;box-shadow:0 0 8px rgba(13,17,23,.5)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-suggestions{background:rgba(246,248,250,.5);border:1px solid rgba(208,215,222,.6);box-shadow:0 4px 12px rgba(0,0,0,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-suggestions .terminal-suggestion-item{color:#0d1117;font-weight:500;text-shadow:0 1px 1px hsla(0,0,100%,.8)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-suggestions .terminal-suggestion-item:hover{background:rgba(9,105,218,.1)}html[data-theme=light] .ctf-section .ctf-terminal .terminal-suggestions .terminal-suggestion-item.selected{background:rgba(9,105,218,.2);border-left:3px solid #0969da;padding-left:calc(1rem - 3px);font-weight:700;color:#1f1f1f}html[data-theme=light] .ctf-section .ctf-content{background:rgba(0,0,0,0);border-left:0;max-width:100%;margin:0}html[data-theme=light] .ctf-section .ctf-content h1{color:#000!important;font-weight:700!important;border-bottom:none!important;font-size:3.6rem!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-family:"Nightrace","High Swift Regular",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-style:normal!important}html[data-theme=light] .ctf-section .ctf-content h2{color:#0d1117;border-bottom:1px solid #d0d7de}html[data-theme=light] .ctf-section .ctf-content h3,html[data-theme=light] .ctf-section .ctf-content h4,html[data-theme=light] .ctf-section .ctf-content h5,html[data-theme=light] .ctf-section .ctf-content h6{color:#0d1117}html[data-theme=light] .ctf-section .ctf-content p{color:#21262d}html[data-theme=light] .ctf-section .ctf-content ul,html[data-theme=light] .ctf-section .ctf-content ol{color:#21262d}html[data-theme=light] .ctf-section .ctf-content ul li::marker,html[data-theme=light] .ctf-section .ctf-content ol li::marker{color:#cf222e}html[data-theme=light] .ctf-section .ctf-content a{color:var(--global-theme-color)}html[data-theme=light] .ctf-section .ctf-content a:hover{color:var(--global-theme-color);border-bottom-color:var(--global-theme-color);text-shadow:none;opacity:.8}html[data-theme=light] .ctf-section .ctf-content code{background:rgba(208,215,222,.5);color:#0d1117;border:1px solid #d0d7de}html[data-theme=light] .ctf-section .ctf-content pre{background:rgba(246,248,250,.8);border:1px solid #d0d7de;border-left:3px solid #cf222e}html[data-theme=light] .ctf-section .ctf-content strong{color:#0d1117}html[data-theme=light] .ctf-section .ctf-content em{color:#21262d}html[data-theme=light] .ctf-section .ctf-content hr{border-top:1px solid #d0d7de}html[data-theme=light] .ctf-section .ctf-content blockquote{border-left:3px solid #cf222e;color:#21262d}html[data-theme=light] .ctf-section .ctf-content table th{background:rgba(208,215,222,.3);color:#0d1117}html[data-theme=light] .ctf-section .ctf-content table td{color:#21262d}html[data-theme=light] .ctf-section .ctf-content table th,html[data-theme=light] .ctf-section .ctf-content table td{border:1px solid #d0d7de}html[data-theme=light] .ctf-section .ctf-posts-pagination .ctf-pagination-link{background:rgba(208,215,222,.6);color:#0d1117;border-color:#d0d7de}html[data-theme=light] .ctf-section .ctf-posts-pagination .ctf-pagination-link:hover{color:#0d1117;border-color:#cf222e;box-shadow:0 0 12px rgba(207,34,46,.2)}html[data-theme=light] .ctf-section .ctf-post-item-list{border-bottom:1px dashed rgba(208,215,222,.6)!important}html[data-theme=light] .ctf-section .ctf-post-item-list:last-child{border-bottom:none!important}html[data-theme=light] .ctf-section .ctf-post-year{color:#656d76!important;opacity:.8!important}html[data-theme=light] body.ctf-layout .ctf-post-item-list,html[data-theme=light] .ctf-layout .ctf-post-item-list{border-bottom:1px dashed rgba(0,0,0,.14)!important}html[data-theme=light] body.ctf-layout .ctf-post-item-list:last-child,html[data-theme=light] .ctf-layout .ctf-post-item-list:last-child{border-bottom:none!important}.csp-overlay{position:fixed;inset:0;z-index:10020;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:csp-fade .12s ease}@media(max-width:576px){.csp-overlay{padding-top:4vh;padding-left:0;padding-right:0}}@keyframes csp-fade{from{opacity:0}to{opacity:1}}.csp-modal{--csp-bg:#0d1117;--csp-border:rgba(255,255,255,0.08);--csp-divider:rgba(255,255,255,0.05);--csp-text:#e6edf3;--csp-muted:#7d8590;--csp-prompt:#3fb950;--csp-accent:#3fb950;--csp-active-bg:rgba(63,185,80,0.08);--csp-active-bar:#3fb950;--csp-match-bg:rgba(63,185,80,0.18);--csp-match-fg:#7ee787;--csp-badge-bg:rgba(255,255,255,0.06);--csp-badge-fg:#7d8590;--csp-kbd-bg:rgba(255,255,255,0.06);--csp-kbd-fg:#7d8590;--csp-shadow:0 24px 64px rgba(0,0,0,0.7),0 0 0 1px rgba(255,255,255,0.06);width:92%;max-width:660px;max-height:72vh;display:flex;flex-direction:column;overflow:hidden;border-radius:10px;border:1px solid var(--csp-border);background:var(--csp-bg);box-shadow:var(--csp-shadow);font-family:var(--font-mono,"JetBrains Mono","Fira Code",monospace);animation:csp-slide .13s cubic-bezier(0.16,1,0.3,1)}@media(max-width:576px){.csp-modal{width:100%;max-width:100%;border-radius:0 0 10px 10px;max-height:82vh;border-left:0;border-right:0;border-top:0}}@keyframes csp-slide{from{transform:translateY(-8px);opacity:.6}to{transform:translateY(0);opacity:1}}.csp-header{display:flex;align-items:center;gap:10px;padding:13px 16px 12px;border-bottom:1px solid var(--csp-divider);flex-shrink:0;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.csp-header:focus-within{border-bottom-color:var(--global-focus-ring-color,var(--csp-accent));box-shadow:inset 0 0 0 2px var(--global-focus-ring-color,var(--csp-accent))}.csp-prompt{font-size:12px;color:var(--csp-prompt);font-weight:700;letter-spacing:-0.02em;flex-shrink:0;user-select:none}.csp-input{flex:1;background:rgba(0,0,0,0);border:0;outline:0;font-family:inherit;font-size:14px;color:var(--csp-text);caret-color:var(--csp-accent);padding:0;line-height:1.5;min-width:0}.csp-input::placeholder{color:var(--csp-muted);opacity:.7}.csp-input:focus-visible{outline:0;box-shadow:none}@media(max-width:480px){.csp-input{font-size:13px}}.csp-hints{display:flex;gap:4px;flex-shrink:0}.csp-hints kbd{display:inline-block;background:var(--csp-kbd-bg);color:var(--csp-kbd-fg);border:1px solid hsla(0,0,100%,.08);border-radius:4px;padding:1px 5px;font-family:inherit;font-size:10px;line-height:1.6}@media(max-width:480px){.csp-hints{display:none}}.csp-status{padding:5px 16px;font-size:10px;color:var(--csp-muted);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--csp-divider);flex-shrink:0;min-height:26px;display:flex;align-items:center}.csp-list{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:hsla(0,0,100%,.1) rgba(0,0,0,0)}.csp-list::-webkit-scrollbar{width:4px}.csp-list::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.csp-list::-webkit-scrollbar-thumb{background:hsla(0,0,100%,.12);border-radius:2px}.csp-group{display:flex;flex-direction:column}.csp-group-label{padding:8px 16px 3px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--csp-muted);opacity:.7;user-select:none;border-top:1px solid var(--csp-divider)}.csp-group:first-of-type .csp-group-label{border-top:0}.csp-group-body{display:flex;flex-direction:column}.csp-empty{padding:2.5rem 1rem;text-align:center;font-size:12px;color:var(--csp-muted);letter-spacing:.04em}.csp-item{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;border-left:2px solid rgba(0,0,0,0);border-bottom:1px solid var(--csp-divider);transition:background .08s ease;user-select:none}.csp-item:last-child{border-bottom:0}.csp-item[data-active]{background:var(--csp-active-bg);border-left-color:var(--csp-active-bar)}.csp-item[data-active] .csp-item__badge{background:hsla(0,0,100%,.1);color:var(--csp-text)}@media(max-width:480px){.csp-item{padding:9px 12px;gap:8px}}.csp-item__left{flex:1;min-width:0}.csp-item__title{font-size:13px;color:var(--csp-text);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}@media(max-width:480px){.csp-item__title{font-size:12px;white-space:normal;overflow:visible;text-overflow:unset}}.csp-item__meta{font-size:11px;color:var(--csp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;line-height:1.3}@media(max-width:480px){.csp-item__meta{font-size:10px;white-space:normal}}.csp-match{background:var(--csp-match-bg);color:var(--csp-match-fg);font-weight:700;border-radius:2px;padding:0 1px}.csp-item__badge{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:4px;flex-shrink:0;background:var(--csp-badge-bg);color:var(--csp-badge-fg);border:1px solid hsla(0,0,100%,.06);transition:background .08s,color .08s}.csp-item__badge[data-badge-type=post]{color:#79c0ff}.csp-item__badge[data-badge-type=tag]{color:#d2a8ff}.csp-item__badge[data-badge-type=category]{color:#ffa657}.csp-item__badge[data-badge-type=route]{color:var(--csp-accent)}.csp-item--grep .csp-item__meta{white-space:normal;overflow:visible;text-overflow:unset;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:10px;color:var(--csp-muted);margin-top:2px;font-family:var(--font-mono,"JetBrains Mono","Fira Code",monospace)}.csp-item__badge[data-badge-type=grep]{color:#f0883e}html[data-theme=light] .csp-modal .csp-item__badge[data-badge-type=grep]{color:#bc4c00}html[data-theme=light] .csp-modal{--csp-bg:#fff;--csp-border:rgba(0,0,0,0.1);--csp-divider:rgba(0,0,0,0.06);--csp-text:#1c2128;--csp-muted:#656d76;--csp-prompt:#cf222e;--csp-accent:#cf222e;--csp-active-bg:rgba(207,34,46,0.07);--csp-active-bar:#cf222e;--csp-match-bg:rgba(207,34,46,0.11);--csp-match-fg:#a8071a;--csp-badge-bg:rgba(0,0,0,0.05);--csp-badge-fg:#656d76;--csp-kbd-bg:rgba(0,0,0,0.05);--csp-kbd-fg:#656d76;--csp-shadow:0 16px 48px rgba(0,0,0,0.15),0 0 0 1px rgba(0,0,0,0.08)}html[data-theme=light] .csp-modal .csp-overlay{background:rgba(0,0,0,.45)}html[data-theme=light] .csp-modal .csp-item[data-active] .csp-item__badge{background:rgba(0,0,0,.08);color:var(--csp-text)}html[data-theme=light] .csp-modal .csp-item__badge{border-color:rgba(0,0,0,.07)}html[data-theme=light] .csp-modal .csp-item__badge[data-badge-type=post]{color:#0550ae}html[data-theme=light] .csp-modal .csp-item__badge[data-badge-type=tag]{color:#6e40c9}html[data-theme=light] .csp-modal .csp-item__badge[data-badge-type=category]{color:#bc4c00}html[data-theme=light] .csp-modal .csp-item__badge[data-badge-type=route]{color:#0969da}html[data-theme=light] .csp-modal .csp-hints kbd{border-color:rgba(0,0,0,.12)}html[data-theme=light] .csp-modal .csp-list{scrollbar-color:rgba(0,0,0,.12) rgba(0,0,0,0)}html[data-theme=light] .csp-modal .csp-list::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12)}@media(prefers-color-scheme:light){html:not([data-theme]) .csp-modal{--csp-bg:#fff;--csp-border:rgba(0,0,0,0.1);--csp-divider:rgba(0,0,0,0.06);--csp-text:#1c2128;--csp-muted:#656d76;--csp-prompt:#cf222e;--csp-accent:#cf222e;--csp-active-bg:rgba(207,34,46,0.07);--csp-active-bar:#cf222e;--csp-match-bg:rgba(207,34,46,0.11);--csp-match-fg:#a8071a;--csp-badge-bg:rgba(0,0,0,0.05);--csp-badge-fg:#656d76;--csp-kbd-bg:rgba(0,0,0,0.05);--csp-kbd-fg:#656d76;--csp-shadow:0 16px 48px rgba(0,0,0,0.15),0 0 0 1px rgba(0,0,0,0.08)}}.ctf-resources-list{margin:2rem 0;font-family:"Anonymous Pro","Courier New",monospace;font-size:1.1rem;line-height:1.8}.ctf-resource-item{display:block;padding:1rem 0;text-decoration:none;color:var(--global-theme-color);transition:all .2s ease}.ctf-resource-item:hover{color:var(--global-theme-color);opacity:.8;padding-left:.5rem}.ctf-resource-name{font-weight:700;color:var(--global-theme-color)}.ctf-resource-desc{color:var(--global-text-color);opacity:.7;margin-left:.5rem}.ctf-resource-divider{height:1px;background:var(--global-theme-color);margin:.5rem 0;opacity:.2}.post-metadata{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0 1.5rem 0;font-size:.9rem;color:var(--global-text-color-light);line-height:1.6}.metadata-item{display:inline-flex;align-items:center;gap:.35rem}.metadata-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}.metadata-separator{color:var(--global-text-color-light);margin:0 .15rem}.post-taxonomy-top{display:flex;flex-direction:column;gap:.5rem;margin:0 0 2rem 0}.post-tags-inline,.post-categories-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.post-tags-inline .taxonomy-icon,.post-categories-inline .taxonomy-icon{width:16px;height:16px;flex-shrink:0;opacity:.6;stroke:var(--global-theme-color)}.post-tag,.post-category{display:inline-block;padding:.25rem .75rem;background:rgba(148,163,184,.25);color:var(--global-text-color);border-radius:16px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .15s ease,color .15s ease,transform .15s ease}.post-tag:hover,.post-category:hover{background:var(--global-theme-color);color:var(--global-bg-color);transform:translateY(-1px);text-decoration:none}.post-tag:focus-visible,.post-category:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:2px}.post-tag:focus:not(:focus-visible),.post-category:focus:not(:focus-visible){outline:0}.widget-recently-updated-wrapper{position:relative;margin-bottom:.75rem}.widget-recently-updated-wrapper .widget-section{margin-top:0;padding-top:0;border-top:0}.widget-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--global-divider-color)}.widget-title{font-size:.8rem;font-weight:600;color:var(--global-text-color);margin-bottom:.65rem;text-transform:uppercase;letter-spacing:.5px;opacity:.75}.widget-recent-posts{padding:0}.widget-recent-posts .widget-title{font-family:"Nightrace",-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI",Helvetica,Arial,sans-serif!important;font-size:.875rem;font-weight:600;color:var(--global-text-color);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;padding-bottom:.5rem;opacity:1}.widget-recent-posts .widget-list{list-style:none;padding:0;margin:0 0 .3rem 0}.widget-recent-posts .widget-list-item{margin-bottom:.4rem}.widget-recent-posts .widget-list-item:last-child{margin-bottom:0}.widget-recent-posts .widget-post-link{display:block;padding:.2rem .55rem;border-left:3px solid rgba(0,0,0,0);padding-left:calc(.55rem - 3px);border-radius:6px;text-decoration:none;color:inherit;opacity:.9;transition:opacity .25s ease,background-color .25s ease,border-left-color .25s ease}.widget-recent-posts .widget-post-link:hover{opacity:1;background-color:rgba(148,163,184,.1);border-left-color:rgba(148,163,184,.3)}.widget-recent-posts .widget-post-title{font-size:.875rem;font-weight:normal;line-height:1.5}.widget-more-link{display:inline-block;font-size:.72rem;color:var(--global-theme-color);text-decoration:none;font-weight:500;padding:.15rem .35rem;margin-top:.05rem;border-radius:3px;transition:all .2s ease}.widget-more-link:hover{background-color:rgba(148,163,184,.08);transform:translateX(2px)}.share-buttons-container{margin:1.5rem 0;padding:0}.share-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.share-left{display:flex;flex-direction:row;align-items:center;gap:.75rem}.share-buttons-label{font-size:.95rem;font-weight:600;color:var(--global-text-color);white-space:nowrap}.share-buttons{display:flex;gap:1rem;align-items:center}.share-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--global-theme-color);color:var(--global-bg-color);text-decoration:none;border:0;cursor:pointer;transition:background .25s ease,color .25s ease,transform .2s ease,box-shadow .2s ease;font-size:1.1rem}.share-button:hover,.share-button:focus,.share-button:visited{text-decoration:none}.share-button:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.25);color:#fff}.share-button:active{transform:translateY(0) scale(0.98);box-shadow:none}.share-button:focus-visible{outline:2px solid var(--global-theme-color);outline-offset:3px}.share-button:focus:not(:focus-visible){outline:0}.share-button i{display:flex;align-items:center;justify-content:center;pointer-events:none}.share-twitter:hover{background:#000;color:#fff}.share-facebook:hover{background:#1877f2;color:#fff}.share-telegram:hover{background:#229ed9;color:#fff}.share-copy:hover{background:#6c757d;color:#fff}.ctf-sidenav{position:fixed;left:1rem;top:50%;transform:translateY(-50%);z-index:900;display:flex;flex-direction:column;background:rgba(11,13,20,.72);border:1px solid hsla(0,0,100%,.08);border-radius:8px;padding:.5rem 0;overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 24px rgba(0,0,0,.28),inset 0 1px 0 hsla(0,0,100%,.04);user-select:none}@media(max-width:1399px){.ctf-sidenav{display:none}}.ctf-sidenav::before{content:">_";display:block;font-family:"Anonymous Pro","Courier New",monospace;font-size:.48rem;color:var(--global-theme-color,#38bdf8);opacity:.38;text-align:center;padding:.1rem 0 .55rem;letter-spacing:.1em;pointer-events:none}.ctf-sidenav__item{position:relative;display:flex;align-items:center;gap:.52rem;padding:.46rem .95rem .46rem 1.05rem;color:rgba(190,205,225,.48);font-family:"Anonymous Pro",monospace;font-size:.7rem;letter-spacing:.05em;text-decoration:none;white-space:nowrap;transition:color .15s ease,background-color .15s ease}.ctf-sidenav__item i{font-size:.65rem;width:13px;text-align:center;flex-shrink:0;opacity:.52;transition:opacity .15s ease}.ctf-sidenav__item:hover,.ctf-sidenav__item:focus{color:rgba(220,232,248,.9);background-color:hsla(0,0,100%,.05);text-decoration:none}.ctf-sidenav__item:hover i,.ctf-sidenav__item:focus i{opacity:.88}.ctf-sidenav__item.active{color:var(--global-theme-color,#38bdf8);background-color:rgba(56,189,248,.08)}.ctf-sidenav__item.active i{opacity:1;color:inherit}.ctf-sidenav__item.active::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:2px;background:var(--global-theme-color,#38bdf8);border-radius:0 1px 1px 0}html[data-theme=dark] .ctf-sidenav__item.active,html:not([data-theme=light]) .ctf-sidenav__item.active{color:#f5921f;background-color:rgba(245,146,31,.08)}html[data-theme=dark] .ctf-sidenav__item.active::before,html:not([data-theme=light]) .ctf-sidenav__item.active::before{background:#f5921f}html[data-theme=light] .ctf-sidenav,html:not([data-theme=dark]) .ctf-sidenav{background:rgba(245,247,252,.92);border-color:rgba(0,0,0,.07);box-shadow:0 2px 16px rgba(0,0,0,.08),inset 0 -1px 0 rgba(0,0,0,.04)}html[data-theme=light] .ctf-sidenav::before,html:not([data-theme=dark]) .ctf-sidenav::before{color:var(--global-theme-color,#0284c7);opacity:.45}html[data-theme=light] .ctf-sidenav__item,html:not([data-theme=dark]) .ctf-sidenav__item{color:rgba(40,55,80,.48)}html[data-theme=light] .ctf-sidenav__item i,html:not([data-theme=dark]) .ctf-sidenav__item i{opacity:.42}html[data-theme=light] .ctf-sidenav__item:hover,html[data-theme=light] .ctf-sidenav__item:focus,html:not([data-theme=dark]) .ctf-sidenav__item:hover,html:not([data-theme=dark]) .ctf-sidenav__item:focus{color:rgba(20,30,55,.88);background-color:rgba(0,0,0,.045)}html[data-theme=light] .ctf-sidenav__item:hover i,html[data-theme=light] .ctf-sidenav__item:focus i,html:not([data-theme=dark]) .ctf-sidenav__item:hover i,html:not([data-theme=dark]) .ctf-sidenav__item:focus i{opacity:.82}html[data-theme=light] .ctf-sidenav__item.active,html:not([data-theme=dark]) .ctf-sidenav__item.active{color:var(--global-theme-color,#0284c7);background-color:rgba(2,132,199,.08)}html[data-theme=light] .ctf-sidenav__item.active i,html:not([data-theme=dark]) .ctf-sidenav__item.active i{opacity:1}html[data-theme=light] .ctf-sidenav__item.active::before,html:not([data-theme=dark]) .ctf-sidenav__item.active::before{background:var(--global-theme-color,#0284c7)}.ctf-mobile-nav{display:none}@media(max-width:1399px){.ctf-mobile-nav{display:flex}}.ctf-mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:900;background:rgba(11,13,20,.9);border-top:1px solid hsla(0,0,100%,.07);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -4px 20px rgba(0,0,0,.26);padding-bottom:env(safe-area-inset-bottom,0);user-select:none}@media(max-width:1399px){.ctf-layout .container[role=main]{padding-bottom:calc(56px + env(safe - area - inset - bottom, 0px)+16px)}.ctf-layout footer.sticky-bottom{padding-bottom:calc(96px + env(safe - area - inset - bottom, 0px))}}@media(max-width:576px){.ctf-layout footer.sticky-bottom{padding-bottom:calc(80px + env(safe - area - inset - bottom, 0px))}}.ctf-mobile-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px;min-height:56px;color:rgba(190,205,225,.42);font-family:"Anonymous Pro","Courier New",monospace;font-size:.595rem;letter-spacing:.05em;text-decoration:none;white-space:nowrap;position:relative;transition:color .15s ease,background-color .15s ease}.ctf-mobile-nav__item i{font-size:.875rem;opacity:.48;transition:opacity .15s ease}.ctf-mobile-nav__item:hover,.ctf-mobile-nav__item:focus{color:rgba(220,232,248,.9);background-color:hsla(0,0,100%,.05);text-decoration:none}.ctf-mobile-nav__item:hover i,.ctf-mobile-nav__item:focus i{opacity:.88}.ctf-mobile-nav__item.active{color:var(--global-theme-color,#38bdf8)}.ctf-mobile-nav__item.active i{opacity:1;color:inherit}.ctf-mobile-nav__item.active::before{content:"";position:absolute;top:0;left:16%;right:16%;height:2px;background:var(--global-theme-color,#38bdf8);border-radius:0 0 2px 2px}@media(max-width:360px){.ctf-mobile-nav__label{display:none}}html[data-theme=light] .ctf-mobile-nav,html:not([data-theme=dark]) .ctf-mobile-nav{background:rgba(245,247,252,.95);border-top-color:rgba(0,0,0,.08);box-shadow:0 -2px 12px rgba(0,0,0,.07)}html[data-theme=light] .ctf-mobile-nav__item,html:not([data-theme=dark]) .ctf-mobile-nav__item{color:rgba(40,55,80,.42)}html[data-theme=light] .ctf-mobile-nav__item i,html:not([data-theme=dark]) .ctf-mobile-nav__item i{opacity:.38}html[data-theme=light] .ctf-mobile-nav__item:hover,html[data-theme=light] .ctf-mobile-nav__item:focus,html:not([data-theme=dark]) .ctf-mobile-nav__item:hover,html:not([data-theme=dark]) .ctf-mobile-nav__item:focus{color:rgba(20,30,55,.88);background-color:rgba(0,0,0,.04)}html[data-theme=light] .ctf-mobile-nav__item:hover i,html[data-theme=light] .ctf-mobile-nav__item:focus i,html:not([data-theme=dark]) .ctf-mobile-nav__item:hover i,html:not([data-theme=dark]) .ctf-mobile-nav__item:focus i{opacity:.8}html[data-theme=light] .ctf-mobile-nav__item.active,html:not([data-theme=dark]) .ctf-mobile-nav__item.active{color:var(--global-theme-color,#0284c7)}html[data-theme=light] .ctf-mobile-nav__item.active i,html:not([data-theme=dark]) .ctf-mobile-nav__item.active i{opacity:1}html[data-theme=light] .ctf-mobile-nav__item.active::before,html:not([data-theme=dark]) .ctf-mobile-nav__item.active::before{background:var(--global-theme-color,#0284c7)}html[data-theme=dark] .ctf-mobile-nav__item.active,html:not([data-theme=light]) .ctf-mobile-nav__item.active{color:#f5921f}html[data-theme=dark] .ctf-mobile-nav__item.active::before,html:not([data-theme=light]) .ctf-mobile-nav__item.active::before{background:#f5921f}.copy-toast{position:fixed;bottom:2rem;right:2rem;padding:.75rem 1.5rem;background:var(--global-theme-color);color:var(--global-bg-color);border-radius:8px;font-size:.9rem;font-weight:500;opacity:0;transform:translateY(20px);transition:all .3s ease;pointer-events:none;z-index:9999;box-shadow:0 4px 12px rgba(0,0,0,.2)}.copy-toast.show{opacity:1;transform:translateY(0)}.reading-progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--global-theme-color);z-index:999;transition:width .1s ease-out}.post-footer-section{margin-top:2rem}.license-notice{display:flex;align-items:center;gap:.5rem;padding:1rem 1.5rem;background:rgba(148,163,184,.08);border-left:3px solid var(--global-theme-color);border-radius:6px;margin-bottom:2rem;font-size:.9rem;color:var(--global-text-color-light)}.license-notice .license-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}.license-notice a{color:var(--global-theme-color);text-decoration:none;font-weight:500}.license-notice a:hover{text-decoration:underline}.post-taxonomy-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--global-divider-color);display:flex;flex-direction:column;gap:1rem}.footer-tags-section,.footer-categories-section{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.footer-tags-section .taxonomy-icon,.footer-categories-section .taxonomy-icon{width:18px;height:18px;flex-shrink:0;opacity:.6;stroke:var(--global-theme-color)}.footer-tag,.footer-category{display:inline-block;padding:.25rem .75rem;background:rgba(148,163,184,.25);color:var(--global-text-color);border-radius:12px;font-size:.85rem;text-decoration:none;transition:all .2s ease}.footer-tag:hover,.footer-category:hover{background:var(--global-theme-color);color:var(--global-bg-color);transform:translateY(-1px)}@media(max-width:768px){.post-metadata{font-size:.85rem}.post-toc-sidebar{position:relative;top:0;max-height:none;align-self:auto;will-change:auto;z-index:auto}.widget-recently-updated-wrapper{margin-bottom:.5rem}.widget-recent-posts .widget-title{font-size:.65rem;margin-bottom:.3rem;letter-spacing:.2px}.widget-recent-posts .widget-list{margin-bottom:.25rem}.widget-recent-posts .widget-list-item{margin-bottom:.15rem}.widget-recent-posts .widget-post-link{padding:.12rem .2rem}.widget-recent-posts .widget-post-title{font-size:.65rem;line-height:1.25}.widget-more-link{font-size:.6rem;padding:.12rem .3rem;margin-top:.05rem}.share-buttons{justify-content:flex-start}.share-button{width:44px;height:44px;font-size:1.1rem}.copy-toast{bottom:1rem;right:1rem;left:1rem;text-align:center}.widget-section{margin-top:1.2rem;padding-top:.8rem}.widget-title{font-size:.75rem;margin-bottom:.5rem}.license-notice{padding:.75rem 1rem;font-size:.85rem}.post-taxonomy-top{gap:.75rem}.post-taxonomy-top .taxonomy-icon{width:14px;height:14px}.post-taxonomy-footer{gap:.75rem}.post-taxonomy-footer .taxonomy-icon{width:16px;height:16px}.footer-tags-section,.footer-categories-section{flex-direction:column;align-items:flex-start}}.ctf-about-avatar{display:flex;justify-content:center;padding:1.5rem 0 2rem}.ctf-avatar-img{width:220px;height:auto}@media(max-width:576px){.ctf-avatar-img{width:160px}}@media(prefers-reduced-motion:reduce){.ctf-terminal,.ctf-terminal *,.ctf-terminal-popup,.ctf-terminal-popup *,.ctf-about-avatar,.ctf-avatar-img{transition:none!important;animation:none!important}.terminal-cursor,[class*=cursor]{animation:none!important;opacity:1!important}}:root{--cmdp-bg:#fff;--cmdp-border:rgba(0,0,0,0.1);--cmdp-shadow:0 24px 64px rgba(0,0,0,0.18),0 4px 16px rgba(0,0,0,0.1);--cmdp-text:#111827;--cmdp-text-muted:#6b7280;--cmdp-input-bg:#f9fafb;--cmdp-input-border:rgba(0,0,0,0.09);--cmdp-group-label:#6b7280;--cmdp-item-hover:#f3f4f6;--cmdp-item-selected:#bfdbfe;--cmdp-item-border:transparent;--cmdp-chip-bg:#e5e7eb;--cmdp-chip-text:#374151;--cmdp-kbd-bg:#f3f4f6;--cmdp-kbd-border:rgba(0,0,0,0.14);--cmdp-kbd-text:#656d76;--cmdp-prefix-color:var(--global-theme-color,#4f46e5);--cmdp-badge-nav:#dbeafe;--cmdp-badge-nav-t:#1d4ed8;--cmdp-badge-content:#dcfce7;--cmdp-badge-cont-t:#15803d;--cmdp-badge-action:#fef9c3;--cmdp-badge-act-t:#a16207;--cmdp-badge-social:#ede9fe;--cmdp-badge-soc-t:#6d28d9;--cmdp-badge-grep:#ffedd5;--cmdp-badge-grep-t:#c2410c;--cmdp-footer-bg:#f9fafb;--cmdp-footer-border:rgba(0,0,0,0.07);--cmdp-accent:var(--global-theme-color,#4f46e5)}html[data-theme=dark],html:not([data-theme=light]){--cmdp-bg:#212529;--cmdp-border:rgba(255,255,255,0.1);--cmdp-shadow:0 24px 64px rgba(0,0,0,0.55),0 4px 16px rgba(0,0,0,0.35);--cmdp-text:#e6edf3;--cmdp-text-muted:#8b949e;--cmdp-input-bg:#191c20;--cmdp-input-border:rgba(255,255,255,0.09);--cmdp-group-label:#8b949e;--cmdp-item-hover:rgba(255,255,255,0.05);--cmdp-item-selected:rgba(249,115,22,0.2);--cmdp-item-border:transparent;--cmdp-chip-bg:rgba(255,255,255,0.08);--cmdp-chip-text:#a0aab4;--cmdp-kbd-bg:rgba(255,255,255,0.06);--cmdp-kbd-border:rgba(255,255,255,0.1);--cmdp-kbd-text:#a0aab4;--cmdp-prefix-color:var(--global-theme-color,#3fb950);--cmdp-badge-nav:rgba(56,139,253,0.15);--cmdp-badge-nav-t:#79c0ff;--cmdp-badge-content:rgba(63,185,80,0.12);--cmdp-badge-cont-t:#7ee787;--cmdp-badge-action:rgba(255,211,61,0.12);--cmdp-badge-act-t:#f0c45d;--cmdp-badge-social:rgba(188,140,255,0.12);--cmdp-badge-soc-t:#bc8cff;--cmdp-badge-grep:rgba(249,115,22,0.15);--cmdp-badge-grep-t:#fdba74;--cmdp-footer-bg:rgba(255,255,255,0.02);--cmdp-footer-border:rgba(255,255,255,0.06)}.cmdp-backdrop{position:fixed;inset:0;z-index:10029;background:rgba(0,0,0,0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);pointer-events:none;transition:background .18s ease,backdrop-filter .18s ease}.cmdp-backdrop.cmdp-backdrop--visible{background:rgba(0,0,0,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);pointer-events:auto}@keyframes cmdp-slide-in{from{opacity:0;transform:translate(-50%,-58%) scale(0.97)}to{opacity:1;transform:translate(-50%,-55%) scale(1)}}.cmdp-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-55%) scale(0.97);z-index:10030;width:clamp(600px,72vw,900px);height:clamp(440px,65vh,600px);border-radius:14px;background:var(--cmdp-bg);border:1px solid var(--cmdp-border);box-shadow:var(--cmdp-shadow);display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s cubic-bezier(0.4,0,0.2,1)}.cmdp-modal.cmdp-modal--open{opacity:1;transform:translate(-50%,-55%) scale(1);pointer-events:auto;animation:cmdp-slide-in .16s cubic-bezier(0.4,0,0.2,1) both}.cmdp-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--cmdp-input-border);background:var(--cmdp-bg);flex-shrink:0;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.cmdp-header:focus-within{border-bottom-color:var(--global-focus-ring-color,var(--cmdp-accent));box-shadow:inset 0 0 0 2px var(--global-focus-ring-color,var(--cmdp-accent))}.cmdp-prefix{font-size:1.15rem;color:var(--cmdp-prefix-color);flex-shrink:0;opacity:.8;line-height:1}.cmdp-input{flex:1;border:0;outline:0;background:rgba(0,0,0,0);color:var(--cmdp-text);font-size:1.05rem;font-family:inherit;line-height:1.4;min-width:0}.cmdp-input::placeholder{color:var(--cmdp-text-muted);opacity:1}.cmdp-input:focus-visible{outline:0;box-shadow:none}.cmdp-esc-hint{font-size:.7rem;font-family:inherit;padding:2px 6px;border-radius:4px;background:var(--cmdp-kbd-bg);border:1px solid var(--cmdp-kbd-border);color:var(--cmdp-kbd-text);flex-shrink:0;user-select:none;cursor:default}.cmdp-results{flex:1;min-height:0;overflow-y:auto;padding:.5rem 0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--cmdp-border) rgba(0,0,0,0)}.cmdp-results::-webkit-scrollbar{width:4px}.cmdp-results::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.cmdp-results::-webkit-scrollbar-thumb{background:var(--cmdp-border);border-radius:2px}.cmdp-group-label{padding:.55rem 1rem .25rem;font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--cmdp-group-label);user-select:none}.cmdp-group-label:first-child{padding-top:.3rem}.cmdp-item{display:flex;align-items:center;gap:.8rem;padding:.65rem 1.1rem;cursor:pointer;border-radius:8px;margin:0 .5rem;transition:background .08s ease;border:1px solid var(--cmdp-item-border)}.cmdp-item:hover,.cmdp-item.cmdp-item--selected{background:var(--cmdp-item-selected)}.cmdp-item-icon{font-size:.95rem;width:1.4rem;text-align:center;flex-shrink:0;color:var(--cmdp-text-muted);line-height:1}.cmdp-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.12rem}.cmdp-item-title{font-size:.95rem;font-weight:500;color:var(--cmdp-text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdp-item-desc{font-size:.78rem;color:var(--cmdp-text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdp-item-right{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.cmdp-chip{font-size:.65rem;padding:1px 6px;border-radius:20px;background:var(--cmdp-chip-bg);color:var(--cmdp-chip-text);white-space:nowrap}.cmdp-badge{font-size:.65rem;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.03em;text-transform:lowercase;white-space:nowrap}.cmdp-item-date{font-size:.65rem;color:var(--cmdp-text-muted);white-space:nowrap;opacity:.7;letter-spacing:.01em}.cmdp-item-snippet{font-size:.78rem;color:var(--cmdp-text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:"Anonymous Pro","Courier New",monospace;margin-top:.1rem}.cmdp-match{background:rgba(220,38,38,.1);color:#b91c1c;border-radius:2px;padding:0 1px;font-weight:600}html[data-theme=dark] .cmdp-match,html:not([data-theme=light]) .cmdp-match{background:rgba(63,185,80,.18);color:#7ee787}.cmdp-empty{padding:2rem 1rem;text-align:center;color:var(--cmdp-text-muted);font-size:.9rem}.cmdp-footer{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;border-top:1px solid var(--cmdp-footer-border);background:var(--cmdp-bg);flex-shrink:0}.cmdp-footer span{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--cmdp-text-muted)}.cmdp-footer kbd{font-size:.65rem;font-family:inherit;padding:1px 5px;border-radius:3px;background:var(--cmdp-kbd-bg);border:1px solid var(--cmdp-kbd-border);color:var(--cmdp-kbd-text);line-height:1.5}@media(max-width:1024px)and (min-width:641px){.cmdp-modal{width:min(700px,88vw)}}@media(max-width:640px){.cmdp-modal{top:0;left:0;right:0;bottom:auto;transform:translateY(-100%);width:100%;border-radius:0 0 14px 14px;height:min(82vh,560px)}.cmdp-modal.cmdp-modal--open{transform:translateY(0);animation:cmdp-mobile-in .18s cubic-bezier(0.4,0,0.2,1) both}.cmdp-footer{gap:.6rem}.cmdp-chip{display:none}}@keyframes cmdp-mobile-in{from{transform:translateY(-100%);opacity:.7}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.cmdp-backdrop,.cmdp-modal{transition:none!important;animation:none!important}}.courses{margin-top:30px}.year{margin-top:40px;margin-bottom:20px;border-bottom:1px solid var(--global-divider-color);padding-bottom:10px}.course-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.course-item{border:1px solid var(--global-divider-color);border-radius:5px;padding:15px;background-color:var(--global-bg-color);transition:transform .2s ease-in-out}.course-item:hover{transform:translateY(-5px);box-shadow:0 10px 20px rgba(0,0,0,.05)}.course-title{margin-top:0;margin-bottom:10px}.course-meta{font-size:.9rem;color:var(--global-text-color-light);margin-bottom:10px}.course-term,.course-instructor{margin-right:15px}.course-description{font-size:.9rem;margin-bottom:15px}.course-description p{margin-bottom:0}.course-info{margin-bottom:30px}.schedule-description p{margin-bottom:0}.schedule-materials{padding-left:18px;margin-bottom:0}.home-page{--texture-dot:rgba(40,40,40,0.062);--home-frame-max:var(--site-frame-max);--home-text-max:40rem;--home-panel-min:calc(100svh - 56px);--home-section-gap:clamp(2.5rem,3vw,4rem);--home-domain-gap:clamp(1.4rem,2vw,2.35rem);--home-hero-figure-width:clamp(18rem,26vw,22.5rem);--home-ai-figure-width:clamp(17rem,25vw,21.5rem);--home-systems-figure-width:clamp(16.75rem,24vw,20.5rem);--home-security-figure-width:clamp(22rem,32vw,28rem)}html[data-theme=dark] .home-page{--texture-dot:rgba(210,210,210,0.042)}.home-page{padding-bottom:0;background-image:radial-gradient(circle,var(--texture-dot) .75px,transparent .75px);background-size:22px 22px}body.home-layout .home-main{max-width:var(--site-frame-max)!important;margin-top:0!important;padding-inline:var(--site-gutter-x)}@media(min-width:992px){html:has(body.home-layout),body.home-layout{scroll-snap-type:y proximity;scroll-padding-top:56px}body.home-layout .home-page>section{scroll-snap-align:start}body.home-layout .home-page>[data-home-section-last]{scroll-snap-align:none}}@media(min-width:992px)and (max-height:900px){html:has(body.home-layout),body.home-layout{scroll-snap-type:none}}.home-hero{box-sizing:border-box;width:min(100%,var(--home-frame-max));margin-inline:auto;padding:clamp(2.25rem,3.6vh,3rem) 0;min-height:var(--home-panel-min);position:relative;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(18rem,22.5rem);gap:var(--home-section-gap);align-items:center;overflow:clip}.home-hero__left{min-width:0;max-width:42rem}.home-page .home-hero__name{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:300;line-height:1;letter-spacing:-0.03em;color:var(--global-text-color);margin:0 0 2rem}.home-page .home-hero__intro{font-size:1.125rem;line-height:1.7;color:var(--global-text-color);margin:1.5rem 0 0;max-width:39rem}.home-page .home-hero__intro--secondary{margin-top:.95rem}.home-hero__links{display:flex;flex-wrap:wrap;gap:.7rem 1.75rem;margin-top:1.1rem}.home-hero__figure{margin:0;padding:0;position:relative;width:min(100%,var(--home-hero-figure-width));justify-self:end}.home-hero__figure::before{content:"";position:absolute;inset:-1.25rem -1.5rem -1.25rem 0;background-image:radial-gradient(circle,var(--texture-dot) .75px,transparent .75px);background-size:17px 17px;opacity:.78;pointer-events:none;z-index:0}.home-hero__figure canvas{display:block;width:100%;aspect-ratio:3/4;position:relative;z-index:1}.home-toc{position:fixed;top:50%;right:clamp(1rem,2.4vw,2rem);transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:clamp(.7rem,1.25vw,1rem);color:var(--global-text-secondary,var(--global-text-color-light));z-index:20}.home-toc__link{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.55rem;min-width:0;color:var(--global-text-secondary,var(--global-text-color-light));text-decoration:none;opacity:.5;transition:opacity .18s ease,color .18s ease,transform .18s ease}.home-toc__link:hover{opacity:.85;color:var(--global-text-color);text-decoration:none;transform:translateX(-0.08rem)}.home-toc__link.is-active{opacity:.98;color:var(--global-text-color)}.home-toc__link.is-active .home-toc__line{transform:scaleX(1.45);opacity:1}.home-toc__line{order:2;width:1.05rem;height:1px;background:currentColor;opacity:.68;transform-origin:right center;transition:transform .18s ease,opacity .18s ease}.home-toc__label{order:1;font-family:"Courier New",Courier,monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-align:right}.home-section-indicator{position:fixed;right:30px;bottom:30px;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color);cursor:pointer;outline:0;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease;user-select:none;z-index:15}.home-section-indicator:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.home-section-indicator:focus-visible{outline:2px solid var(--global-text-color);outline-offset:3px}.home-section-indicator svg{display:block;width:14px;height:14px;fill:currentColor;transition:transform .22s ease}.home-section-indicator[data-direction=down] svg{transform:rotate(180deg)}.home-domain{box-sizing:border-box;min-height:var(--home-panel-min);padding:clamp(2.25rem,3.5vh,3rem) 0;border-top:1px solid var(--global-border-default,var(--global-divider-color));display:flex;flex-direction:column;justify-content:center;overflow:clip}.home-domain__header{width:min(100%,var(--home-frame-max));margin-inline:auto;margin-bottom:clamp(1.15rem,1.8vh,1.8rem)}.home-domain .home-domain__title{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:1rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--global-text-secondary,var(--global-text-color-light));margin:0}.home-domain__body{width:min(100%,var(--home-frame-max));margin-inline:auto;display:grid;grid-template-columns:minmax(0,var(--home-domain-text-max,var(--home-text-max))) fit-content(var(--home-domain-figure-width));align-items:center;justify-content:start;gap:var(--home-domain-gap)}.home-domain__text{min-width:0;width:min(100%,var(--home-domain-text-max,var(--home-text-max)));max-width:none;justify-self:start}.home-domain__figure{position:relative;max-width:var(--home-domain-figure-width);width:min(100%,var(--home-domain-figure-width));justify-self:end}.home-domain__figure::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,var(--texture-dot) .75px,transparent .75px);background-size:15px 15px;opacity:.82;pointer-events:none;z-index:0}.home-domain__figure canvas{display:block;width:100%;position:relative;z-index:1}.home-domain__links{width:min(100%,var(--home-frame-max));margin-inline:auto;display:flex;flex-wrap:wrap;gap:.7rem 1.75rem;margin-top:clamp(1.15rem,1.8vh,1.75rem)}.home-domain__links--inline{width:auto;margin-inline:0}.home-hero__link,.home-domain__link{display:inline-block;font-family:"Courier New",Courier,monospace;font-size:.875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--global-text-secondary,var(--global-text-color-light));text-decoration:none;margin-right:0;transition:color .15s ease}.home-hero__link::after,.home-domain__link::after{content:" →"}.home-hero__link:hover,.home-domain__link:hover{color:var(--global-text-color);text-decoration:none}.home-domain--ai .home-domain__intro,.home-domain--systems .home-domain__intro,.home-domain--security .home-domain__intro{font-size:1.0625rem;font-weight:400;line-height:1.72;color:var(--global-text-color);opacity:1;margin:0 0 2rem}.home-domain--ai .home-domain__areas,.home-domain--systems .home-domain__areas,.home-domain--security .home-domain__areas{list-style:none;display:grid;gap:.7rem;padding:0;margin:0}.home-domain--ai .home-domain__areas li,.home-domain--systems .home-domain__areas li,.home-domain--security .home-domain__areas li{font-family:"Courier New",Courier,monospace;font-size:.875rem;letter-spacing:.04em;color:var(--global-text-secondary,var(--global-text-color-light));line-height:1.1;padding:0}.home-domain--ai{--home-domain-figure-width:var(--home-ai-figure-width)}.home-domain--ai .home-domain__links--inline{margin-top:clamp(1.15rem,2vh,1.6rem)}.home-domain--ai .home-domain__figure canvas{aspect-ratio:4/3}.home-domain--systems{--home-domain-figure-width:var(--home-systems-figure-width)}.home-domain--systems .home-domain__body{grid-template-columns:fit-content(var(--home-domain-figure-width)) minmax(0,var(--home-text-max))}.home-domain--systems .home-domain__figure canvas{aspect-ratio:4/5}.home-domain--systems .home-domain__figure{order:1;justify-self:start}.home-domain--systems .home-domain__text{order:2;justify-self:start}.home-domain--systems .home-domain__areas li::before{content:"> ";opacity:.5}.home-domain--security{--home-domain-figure-width:var(--home-security-figure-width)}.home-domain--security .home-domain__figure canvas{aspect-ratio:3/2}.home-domain--security .home-domain__areas{display:flex;flex-wrap:wrap;gap:.45rem .55rem}.home-domain--security .home-domain__areas li{padding:.32rem .8rem;border:1px solid var(--global-border-default,var(--global-divider-color));border-bottom:1px solid var(--global-border-default,var(--global-divider-color));letter-spacing:.05em}@media(max-width:991px){.home-hero{width:min(100%,43rem);min-height:auto;grid-template-columns:1fr;gap:clamp(1.5rem,4vw,2.5rem);padding:3.25rem 0 3.75rem}.home-hero__left,.home-page .home-hero__intro,.home-domain__text{max-width:none}.home-hero__figure{width:min(100%,19.5rem);justify-self:center}.home-hero__figure::before{inset:-1.25rem -1.5rem}.home-toc{display:none}.home-section-indicator{right:20px;width:38px;height:38px}.home-domain{min-height:auto;padding:clamp(2.25rem,6vw,3rem) 0 clamp(2.75rem,6vw,3.75rem)}.home-domain__header,.home-domain__body,.home-domain__links{width:min(100%,43rem)}.home-domain--ai .home-domain__body,.home-domain--systems .home-domain__body,.home-domain--security .home-domain__body{grid-template-columns:1fr;gap:clamp(1.5rem,4vw,2.25rem)}.home-domain__figure,.home-domain--systems .home-domain__figure{width:min(100%,20rem);justify-self:center}.home-domain--systems .home-domain__figure,.home-domain--systems .home-domain__text{order:unset;justify-self:stretch}}@media(max-width:767px){.home-hero{padding:3.5rem 0 3.75rem;gap:0}.home-hero__figure{display:none}.home-page .home-hero__name{font-size:clamp(1.5rem,7vw,2rem);padding-bottom:1.25rem;margin-bottom:1.25rem}.home-domain{min-height:auto;padding:2rem 0 3rem}.home-domain__header{margin-bottom:1.85rem}.home-domain__links{margin-top:1.75rem}.home-domain--ai .home-domain__body,.home-domain--systems .home-domain__body,.home-domain--security .home-domain__body{gap:0}.home-domain__figure{display:none}.home-domain--systems .home-domain__figure,.home-domain--systems .home-domain__text{order:unset}.home-section-indicator{right:16px;width:36px;height:36px}.home-section-indicator svg{width:13px;height:13px}}@media(prefers-reduced-motion:reduce){.home-section-indicator,.home-section-indicator svg,.home-toc__link,.home-toc__line{animation:none;transition:none}}@media(min-width:992px)and (max-width:1220px){.home-toc__label{display:none}.home-toc{right:clamp(.8rem,2vw,1.25rem)}}.cv-pdf-selector{position:relative;display:inline-block}.cv-pdf-btn{background:0;border:0;cursor:pointer;color:var(--global-theme-color);font-size:2.5rem;padding:.25rem .5rem;transition:opacity .2s ease}.cv-pdf-btn:hover{opacity:.7}.cv-pdf-dropdown{display:none;position:absolute;right:0;top:100%;min-width:220px;background:var(--global-bg-color);border:1px solid var(--global-divider-color,#dee2e6);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:100;overflow:hidden;margin-top:.25rem}.cv-pdf-dropdown.show{display:block}.cv-pdf-option{display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;color:var(--global-text-color);text-decoration:none;font-size:.9rem;font-weight:400;transition:background .15s ease;border-bottom:1px solid var(--global-divider-color,#f0f0f0)}.cv-pdf-option:last-child{border-bottom:0}.cv-pdf-option:hover{background:var(--global-theme-color);color:#fff;text-decoration:none}.cv-pdf-option i{font-size:.85rem;opacity:.7}:root,html[data-theme=dark]{--cbe-bg:#282828;--cbe-header-bg:#1d2021;--cbe-border:#3c3836;--cbe-text:#ebdbb2;--cbe-text-muted:#7c6f64;--cbe-label:#928374;--cbe-shadow:0 2px 12px rgba(0,0,0,0.5);--cbe-copy-color:#7c6f64;--cbe-copy-hover-bg:rgba(235,219,178,0.07);--cbe-copy-hover-color:#d5c4a1;--cbe-copy-success:#b8bb26;--cbe-copy-fail:#fb4934;--cbe-c:#665c54;--cbe-k:#fb4934;--cbe-s:#b8bb26;--cbe-m:#d3869b;--cbe-nf:#8ec07c;--cbe-nb:#8ec07c;--cbe-nc:#fabd2f;--cbe-no:#d3869b;--cbe-nv:#83a598;--cbe-o:#fe8019;--cbe-nt:#fb4934;--cbe-na:#83a598;--cbe-se:#fe8019;--cbe-p:#928374}html:not([data-theme=dark]){--cbe-bg:#f4f3ee;--cbe-header-bg:#e7e5e0;--cbe-border:#c8c6bf;--cbe-text:#3c3836;--cbe-text-muted:#5a6470;--cbe-label:#665c54;--cbe-shadow:0 1px 8px rgba(40,40,40,0.11);--cbe-copy-color:#5a6470;--cbe-copy-hover-bg:rgba(60,56,54,0.07);--cbe-copy-hover-color:#3c3836;--cbe-copy-success:#1a7028;--cbe-copy-fail:#c01010;--cbe-c:#5a6470;--cbe-k:#0044c8;--cbe-s:#067d17;--cbe-m:#b84800;--cbe-nf:#006fa0;--cbe-nb:#006fa0;--cbe-nc:#8a6200;--cbe-no:#b84800;--cbe-nv:#3c3836;--cbe-o:#333;--cbe-nt:#c01010;--cbe-na:#b57614;--cbe-se:#b84800;--cbe-p:#607080}.ctf-layout{--cbe-bg:#282828;--cbe-header-bg:#1d2021;--cbe-border:#3c3836;--cbe-text:#ebdbb2;--cbe-text-muted:#7c6f64;--cbe-label:#928374;--cbe-shadow:0 2px 12px rgba(0,0,0,0.5);--cbe-copy-color:#7c6f64;--cbe-copy-hover-bg:rgba(235,219,178,0.07);--cbe-copy-hover-color:#d5c4a1;--cbe-copy-success:#b8bb26;--cbe-copy-fail:#fb4934;--cbe-c:#665c54;--cbe-k:#fb4934;--cbe-s:#b8bb26;--cbe-m:#d3869b;--cbe-nf:#8ec07c;--cbe-nb:#8ec07c;--cbe-nc:#fabd2f;--cbe-no:#d3869b;--cbe-nv:#83a598;--cbe-o:#fe8019;--cbe-nt:#fb4934;--cbe-na:#83a598;--cbe-se:#fe8019;--cbe-p:#928374}.cbe-wrapper{position:relative;margin:1.5rem 0;border-radius:8px;border:1px solid var(--cbe-border);box-shadow:var(--cbe-shadow);overflow:hidden;background:var(--cbe-bg)}.cbe-wrapper .highlighter-rouge,.cbe-wrapper .highlight,.cbe-wrapper pre,.cbe-wrapper pre.highlight{margin:0!important;border:none!important;border-left:none!important;border-radius:0!important;box-shadow:none!important;background:var(--cbe-bg)!important}.cbe-wrapper pre,.cbe-wrapper pre.highlight{padding:.75rem 1.1rem!important;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--cbe-border) rgba(0,0,0,0)}.cbe-wrapper pre::-webkit-scrollbar,.cbe-wrapper pre.highlight::-webkit-scrollbar{height:5px}.cbe-wrapper pre::-webkit-scrollbar-track,.cbe-wrapper pre.highlight::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.cbe-wrapper pre::-webkit-scrollbar-thumb,.cbe-wrapper pre.highlight::-webkit-scrollbar-thumb{background:var(--cbe-border);border-radius:99px}.cbe-wrapper code{background:rgba(0,0,0,0)!important;border:none!important;padding:0!important;color:var(--cbe-text);font-family:var(--font-mono);font-size:.845rem;line-height:1.55;-webkit-font-smoothing:antialiased}.cbe-wrapper.cbe-collapsed>.highlighter-rouge,.cbe-wrapper.cbe-collapsed>pre{display:none}.cbe-wrapper.cbe-lines-ready code{display:block;counter-reset:cbe-lineno;position:relative}.cbe-wrapper.cbe-lines-ready code::before{content:"";position:absolute;top:0;bottom:0;left:2.4rem;width:1px;background:var(--cbe-border);pointer-events:none;opacity:0;transition:opacity .16s ease}.cbe-wrapper.cbe-lines-ready .cbe-line{display:block;white-space:pre}.cbe-wrapper.cbe-lines-ready .cbe-line::before{display:inline-block;vertical-align:top;counter-increment:cbe-lineno;content:counter(cbe-lineno);width:0;overflow:hidden;font-size:.775rem;font-family:inherit;line-height:inherit;text-align:right;white-space:nowrap;color:var(--cbe-text-muted);user-select:none;padding-right:0;margin-right:0;opacity:0;transition:width .22s cubic-bezier(0.4,0,0.2,1),opacity .16s ease,padding-right .22s cubic-bezier(0.4,0,0.2,1),margin-right .22s cubic-bezier(0.4,0,0.2,1)}.cbe-wrapper.cbe-lines-ready.cbe-linenos pre,.cbe-wrapper.cbe-lines-ready.cbe-linenos pre.highlight{padding-left:.3rem!important}.cbe-wrapper.cbe-lines-ready.cbe-linenos .cbe-line::before{width:2.4rem;opacity:1;padding-right:.55rem;margin-right:.55rem}.cbe-wrapper.cbe-lines-ready.cbe-linenos code::before{opacity:1}.cbe-header{display:flex;align-items:center;gap:8px;padding:0 10px;height:32px;background:var(--cbe-header-bg);border-bottom:1px solid var(--cbe-border);user-select:none}.cbe-dots{display:flex;align-items:center;gap:6px;flex-shrink:0}.cbe-dot{appearance:none;-webkit-appearance:none;border:0;padding:0;margin:0;background:0;display:inline-flex;width:11px;height:11px;border-radius:50%;cursor:pointer;transition:opacity .15s,filter .15s;opacity:.7;flex-shrink:0}.cbe-dot.cbe-dot-blue{background:#4c9de8}.cbe-dot.cbe-dot-yellow{background:#febc2e}.cbe-dot.cbe-dot-green{background:#28c840}.cbe-dot.cbe-dot-active{opacity:1;filter:brightness(1.12)}.cbe-dot.cbe-dot-blue.cbe-dot-active{box-shadow:0 0 0 2px rgba(76,157,232,.38)}.cbe-dot:hover{opacity:1;filter:brightness(1.15)}.cbe-dot:focus-visible{outline:2px solid var(--cbe-text-muted);outline-offset:1px}.cbe-lang{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-mono);font-size:.67rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cbe-label)}.cbe-lang .cbe-lang-icon{width:14px;height:14px;flex-shrink:0;opacity:.75}.cbe-copy-btn{appearance:none;-webkit-appearance:none;margin:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;flex-shrink:0;padding:3px 9px;min-width:82px;height:22px;border-radius:4px;border:1px solid var(--cbe-border);font-family:var(--font-mono);font-size:.67rem;font-weight:600;letter-spacing:.03em;white-space:nowrap;background:rgba(0,0,0,0);color:var(--cbe-copy-color);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cbe-copy-btn .cbe-icon{width:12px;height:12px;flex-shrink:0;vertical-align:middle}.cbe-copy-btn:hover{background:var(--cbe-copy-hover-bg);color:var(--cbe-copy-hover-color);border-color:var(--cbe-text-muted)}.cbe-copy-btn:focus-visible{outline:2px solid var(--cbe-text-muted);outline-offset:1px}.cbe-copy-btn.cbe-copy-success{color:var(--cbe-copy-success);border-color:var(--cbe-copy-success);background:rgba(0,0,0,0)}.cbe-copy-btn.cbe-copy-fail{color:var(--cbe-copy-fail);border-color:var(--cbe-copy-fail);background:rgba(0,0,0,0)}.cbe-wrapper .c,.cbe-wrapper .cm,.cbe-wrapper .c1,.cbe-wrapper .cs,.cbe-wrapper .cp{color:var(--cbe-c)!important;font-style:italic}.cbe-wrapper .k,.cbe-wrapper .kd,.cbe-wrapper .kn,.cbe-wrapper .kc{color:var(--cbe-k)!important;font-weight:700}.cbe-wrapper .kr,.cbe-wrapper .kt{color:var(--cbe-nc)!important;font-weight:700}.cbe-wrapper .s,.cbe-wrapper .s1,.cbe-wrapper .s2,.cbe-wrapper .sc,.cbe-wrapper .sd,.cbe-wrapper .sh,.cbe-wrapper .si,.cbe-wrapper .sx,.cbe-wrapper .sr,.cbe-wrapper .ss,.cbe-wrapper .dl{color:var(--cbe-s)!important}.cbe-wrapper .se{color:var(--cbe-se)!important}.cbe-wrapper .m,.cbe-wrapper .mi,.cbe-wrapper .mf,.cbe-wrapper .mh,.cbe-wrapper .mo,.cbe-wrapper .mb,.cbe-wrapper .mx,.cbe-wrapper .il{color:var(--cbe-m)!important}.cbe-wrapper .nf{color:var(--cbe-nf)!important;font-weight:700}.cbe-wrapper .nb{color:var(--cbe-nb)!important}.cbe-wrapper .nc,.cbe-wrapper .bp{color:var(--cbe-nc)!important;font-weight:700}.cbe-wrapper .nd{color:var(--cbe-na)!important;font-weight:700}.cbe-wrapper .ni{color:var(--cbe-nc)!important}.cbe-wrapper .ne{color:var(--cbe-nt)!important;font-weight:700}.cbe-wrapper .no,.cbe-wrapper .nl{color:var(--cbe-no)!important}.cbe-wrapper .nv,.cbe-wrapper .vi,.cbe-wrapper .vc{color:var(--cbe-nv)!important}.cbe-wrapper .nn,.cbe-wrapper .na{color:var(--cbe-na)!important}.cbe-wrapper .o,.cbe-wrapper .ow{color:var(--cbe-o)!important;font-weight:700}.cbe-wrapper .nt{color:var(--cbe-nt)!important}.cbe-wrapper .p{color:var(--cbe-p)!important}.cbe-wrapper .n,.cbe-wrapper .nx{color:var(--cbe-text)!important}.cbe-wrapper .gi{color:var(--cbe-s)!important}.cbe-wrapper .gd{color:var(--cbe-k)!important}.cbe-wrapper .err{color:var(--cbe-text)!important;background:none!important;border:none!important}.cbe-modal-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:cbe-fade-in .15s ease}@keyframes cbe-fade-in{from{opacity:0}to{opacity:1}}.cbe-modal-dialog{position:relative;width:100%;max-width:860px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;border-radius:10px;border:1px solid var(--cbe-border);background:var(--cbe-bg);box-shadow:0 24px 64px rgba(0,0,0,.6);overflow:hidden;animation:cbe-slide-up .15s ease}@keyframes cbe-slide-up{from{transform:translateY(8px);opacity:.7}to{transform:translateY(0);opacity:1}}.cbe-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0 14px;height:38px;background:var(--cbe-header-bg);border-bottom:1px solid var(--cbe-border);flex-shrink:0}.cbe-modal-title{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cbe-label)}.cbe-modal-actions{display:flex;align-items:center;gap:8px}.cbe-modal-close{appearance:none;-webkit-appearance:none;border:0;background:0;margin:0;padding:4px;cursor:pointer;color:var(--cbe-text-muted);display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:color .12s,background .12s;width:22px;height:22px}.cbe-modal-close svg{width:14px;height:14px}.cbe-modal-close:hover{color:var(--cbe-text);background:var(--cbe-copy-hover-bg)}.cbe-modal-close:focus-visible{outline:2px solid var(--cbe-text-muted);outline-offset:1px}.cbe-modal-body{overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--cbe-border) rgba(0,0,0,0)}.cbe-modal-body::-webkit-scrollbar{width:6px;height:6px}.cbe-modal-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.cbe-modal-body::-webkit-scrollbar-thumb{background:var(--cbe-border);border-radius:99px}.cbe-modal-body .highlighter-rouge,.cbe-modal-body .highlight,.cbe-modal-body pre,.cbe-modal-body pre.highlight{margin:0!important;border:none!important;border-left:none!important;border-radius:0!important;box-shadow:none!important;background:var(--cbe-bg)!important}.cbe-modal-body pre,.cbe-modal-body pre.highlight{padding:1.1rem 1.25rem!important;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--cbe-border) rgba(0,0,0,0)}.cbe-modal-body pre::-webkit-scrollbar,.cbe-modal-body pre.highlight::-webkit-scrollbar{height:5px}.cbe-modal-body pre::-webkit-scrollbar-track,.cbe-modal-body pre.highlight::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.cbe-modal-body pre::-webkit-scrollbar-thumb,.cbe-modal-body pre.highlight::-webkit-scrollbar-thumb{background:var(--cbe-border);border-radius:99px}.cbe-modal-body pre,.cbe-modal-body pre.highlight{font-family:var(--font-mono)!important}.cbe-modal-body code{background:rgba(0,0,0,0)!important;border:none!important;padding:0!important;color:var(--cbe-text);font-family:var(--font-mono)!important;font-size:.875rem;line-height:1.7}.cbe-modal-body code *{font-family:var(--font-mono)!important}.cbe-modal-body .cbe-line{display:block;white-space:pre}.cbe-modal-body .cbe-line::before{display:none}.cbe-modal-body .c,.cbe-modal-body .cm,.cbe-modal-body .c1,.cbe-modal-body .cs,.cbe-modal-body .cp{color:var(--cbe-c)!important;font-style:italic}.cbe-modal-body .k,.cbe-modal-body .kd,.cbe-modal-body .kn,.cbe-modal-body .kc{color:var(--cbe-k)!important;font-weight:700}.cbe-modal-body .kr,.cbe-modal-body .kt{color:var(--cbe-nc)!important;font-weight:700}.cbe-modal-body .s,.cbe-modal-body .s1,.cbe-modal-body .s2,.cbe-modal-body .sc,.cbe-modal-body .sd,.cbe-modal-body .sh,.cbe-modal-body .si,.cbe-modal-body .sx,.cbe-modal-body .sr,.cbe-modal-body .ss,.cbe-modal-body .dl{color:var(--cbe-s)!important}.cbe-modal-body .se{color:var(--cbe-se)!important}.cbe-modal-body .m,.cbe-modal-body .mi,.cbe-modal-body .mf,.cbe-modal-body .mh,.cbe-modal-body .mo,.cbe-modal-body .mb,.cbe-modal-body .mx,.cbe-modal-body .il{color:var(--cbe-m)!important}.cbe-modal-body .nf{color:var(--cbe-nf)!important;font-weight:700}.cbe-modal-body .nb{color:var(--cbe-nb)!important}.cbe-modal-body .nc,.cbe-modal-body .bp{color:var(--cbe-nc)!important;font-weight:700}.cbe-modal-body .nd{color:var(--cbe-na)!important;font-weight:700}.cbe-modal-body .ni{color:var(--cbe-nc)!important}.cbe-modal-body .ne{color:var(--cbe-nt)!important;font-weight:700}.cbe-modal-body .no,.cbe-modal-body .nl{color:var(--cbe-no)!important}.cbe-modal-body .nv,.cbe-modal-body .vi,.cbe-modal-body .vc{color:var(--cbe-nv)!important}.cbe-modal-body .nn,.cbe-modal-body .na{color:var(--cbe-na)!important}.cbe-modal-body .o,.cbe-modal-body .ow{color:var(--cbe-o)!important;font-weight:700}.cbe-modal-body .nt{color:var(--cbe-nt)!important}.cbe-modal-body .p{color:var(--cbe-p)!important}.cbe-modal-body .n,.cbe-modal-body .nx{color:var(--cbe-text)!important}.cbe-modal-body .err{color:var(--cbe-text)!important;background:none!important;border:none!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .c,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .cm,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .c1,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .cs,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .cp{color:#5a6470!important;font-style:italic}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .k,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .kd,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .kn,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .kc{color:#0044c8!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .kr,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .kt{color:#8a6200!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .s,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .s1,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .s2,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .sc,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .sd,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .sh,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .si,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .sx,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .dl{color:#067d17!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .ss{color:#8a6200!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .sr{color:#006fa0!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .se{color:#b84800!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .m,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mi,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mf,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mh,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mo,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mb,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .mx,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .il{color:#b84800!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nf{color:#006fa0!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nb{color:#006fa0!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nc,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .bp{color:#8a6200!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nd{color:#b57614!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .ni{color:#8a6200!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .ne{color:#c01010!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .no,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nl{color:#b84800!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .na,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nn{color:#b57614!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nv,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .vi,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .vc{color:#3c3836!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .o,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .ow{color:#333!important;font-weight:700!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nt{color:#c01010!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .p{color:#607080!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .n,html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .nx{color:#3c3836!important}html:not([data-theme=dark]) body:not(.ctf-layout) .highlight .err{color:#3c3836!important;background:none!important;border:none!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .c,html[data-theme=dark] body:not(.ctf-layout) .highlight .cm,html[data-theme=dark] body:not(.ctf-layout) .highlight .c1,html[data-theme=dark] body:not(.ctf-layout) .highlight .cs,html[data-theme=dark] body:not(.ctf-layout) .highlight .cp{color:#665c54!important;font-style:italic}html[data-theme=dark] body:not(.ctf-layout) .highlight .k,html[data-theme=dark] body:not(.ctf-layout) .highlight .kd,html[data-theme=dark] body:not(.ctf-layout) .highlight .kn,html[data-theme=dark] body:not(.ctf-layout) .highlight .kc{color:#fb4934!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .kr,html[data-theme=dark] body:not(.ctf-layout) .highlight .kt{color:#fabd2f!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .s,html[data-theme=dark] body:not(.ctf-layout) .highlight .s1,html[data-theme=dark] body:not(.ctf-layout) .highlight .s2,html[data-theme=dark] body:not(.ctf-layout) .highlight .sc,html[data-theme=dark] body:not(.ctf-layout) .highlight .sd,html[data-theme=dark] body:not(.ctf-layout) .highlight .sh,html[data-theme=dark] body:not(.ctf-layout) .highlight .si,html[data-theme=dark] body:not(.ctf-layout) .highlight .sx,html[data-theme=dark] body:not(.ctf-layout) .highlight .dl{color:#b8bb26!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .ss{color:#fabd2f!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .sr{color:#8ec07c!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .se{color:#fe8019!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .m,html[data-theme=dark] body:not(.ctf-layout) .highlight .mi,html[data-theme=dark] body:not(.ctf-layout) .highlight .mf,html[data-theme=dark] body:not(.ctf-layout) .highlight .mh,html[data-theme=dark] body:not(.ctf-layout) .highlight .mo,html[data-theme=dark] body:not(.ctf-layout) .highlight .mb,html[data-theme=dark] body:not(.ctf-layout) .highlight .mx,html[data-theme=dark] body:not(.ctf-layout) .highlight .il{color:#d3869b!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nf{color:#8ec07c!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nb{color:#8ec07c!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nc,html[data-theme=dark] body:not(.ctf-layout) .highlight .bp{color:#fabd2f!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nd{color:#83a598!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .ni{color:#fabd2f!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .ne{color:#fb4934!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .no,html[data-theme=dark] body:not(.ctf-layout) .highlight .nl{color:#d3869b!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .na,html[data-theme=dark] body:not(.ctf-layout) .highlight .nn{color:#83a598!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nv,html[data-theme=dark] body:not(.ctf-layout) .highlight .vi,html[data-theme=dark] body:not(.ctf-layout) .highlight .vc{color:#83a598!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .o,html[data-theme=dark] body:not(.ctf-layout) .highlight .ow{color:#fe8019!important;font-weight:700!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .nt{color:#fb4934!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .p{color:#928374!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .n,html[data-theme=dark] body:not(.ctf-layout) .highlight .nx{color:#ebdbb2!important}html[data-theme=dark] body:not(.ctf-layout) .highlight .err{color:#ebdbb2!important;background:none!important;border:none!important}.ctf-layout .post-content .cbe-wrapper code{background:rgba(0,0,0,0)!important;border:none!important;padding:0!important;font-family:var(--font-mono);font-size:.845rem}.ctf-layout .post-content .cbe-wrapper pre{border-left:none!important}@media(max-width:576px){body:not(.ctf-layout){font-size:1rem;line-height:1.6}body:not(.ctf-layout) p{font-size:1rem;line-height:1.6;margin-bottom:1rem}body:not(.ctf-layout) .post-content{overflow-x:hidden}body:not(.ctf-layout) .post-content img{max-width:100%;height:auto}body:not(.ctf-layout) .post-content pre,body:not(.ctf-layout) .post-content .highlighter-rouge{overflow-x:auto}}.about-page-title{font-size:clamp(2.1rem,4.5vw,3.4rem);font-weight:600;letter-spacing:-0.02em;line-height:1.1;margin:0 0 1.75rem;padding-bottom:.6rem;border-bottom:1px solid var(--global-divider-color);color:var(--global-text-color)}@media(max-width:768px){.about-page-title{font-size:clamp(1.6rem,5vw,2.2rem)}}@media(max-width:576px){.about-page-title{font-size:clamp(1.35rem,6vw,1.7rem)}}.about-name{font-size:1.9rem;font-weight:600;letter-spacing:-0.02em;line-height:1.3;margin:0 0 .3rem;color:var(--global-text-color)}.about-identity{display:flex;align-items:center;gap:2.5rem}@media(max-width:575px){.about-identity{flex-direction:column-reverse;align-items:center;gap:1rem}}.about-identity-text{flex:1;min-width:0}.about-identity-portrait{flex-shrink:0;float:none;width:auto;margin:0}.about-identity-portrait figure{margin:0}.about-identity-portrait img{display:block;height:8rem;width:auto;max-width:unset}@media(max-width:575px){.about-identity-portrait{width:55%}.about-identity-portrait img{height:auto;width:100%;max-width:100%}}.about-page article h2:not(.about-col-heading){overflow:hidden;margin-top:2.75rem;padding-bottom:.45rem;border-bottom:1px solid var(--global-divider-color)}.about-academic-links{display:flex;align-items:center;gap:.9rem;margin-top:1.2rem}.about-academic-links a{font-size:1.2rem;line-height:1;color:var(--global-text-secondary,var(--global-text-color-light));text-decoration:none;transition:color .18s ease}.about-academic-links a:hover{color:var(--global-theme-color)}.about-academic-links .about-or-icon{width:1.2rem;height:1.2rem;display:inline-block;vertical-align:-0.1em}#about-wave-divider{display:block;width:100%;height:72px;margin:1rem 0}@media(max-width:576px){#about-wave-divider{height:48px;margin:.75rem 0}}.about-grid{clear:both;display:grid;grid-template-columns:1fr 1fr;column-gap:3rem;margin-top:2.25rem;margin-bottom:0}@media(max-width:576px){.about-grid{grid-template-columns:1fr;column-gap:0;margin-top:1.5rem}}.about-col-heading{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--global-text-secondary,var(--global-text-color-light));border-bottom:1px solid var(--global-border-default,var(--global-divider-color));padding-bottom:.35rem;margin-top:1.5rem;margin-bottom:.75rem}.about-col-heading:first-child{margin-top:0}.about-col ul{padding-left:1rem;margin-bottom:0}.about-col ul li{margin-bottom:.3rem;line-height:1.55}.about-col p{margin-bottom:.6rem;line-height:1.6}