﻿:root{color-scheme:light;--global-bg-color: #fdfbf7;--global-code-bg-color: #f3f0e6;--global-text-color: #433422;--global-text-color-light: #8c7866;--global-theme-color: #c2410c;--global-hover-color: #9a3412;--global-hover-text-color: #ffffff;--global-footer-bg-color: #f3f0e6;--global-footer-text-color: #786452;--global-footer-link-color: #c2410c;--global-distill-app-color: #8c7866;--global-divider-color: rgba(67, 52, 34, 0.08);--global-card-bg-color: #ffffff;--global-highlight-color: #b88b2a;--global-back-to-top-bg-color: rgba( 67, 52, 34, 0.4 );--global-back-to-top-text-color: #fdfbf7;--global-newsletter-bg-color: #f3f0e6;--global-newsletter-text-color: #433422;--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}: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: #1c1917;--global-code-bg-color: #292524;--global-text-color: #e7e5e4;--global-text-color-light: #a8a29e;--global-theme-color: #f59e6b;--global-hover-color: #fed7aa;--global-hover-text-color: #1c1917;--global-footer-bg-color: #292524;--global-footer-text-color: #a8a29e;--global-footer-link-color: #e7e5e4;--global-distill-app-color: #a8a29e;--global-divider-color: rgba(231, 229, 228, 0.1);--global-card-bg-color: #292524;--global-highlight-color: #fcd34d;--global-back-to-top-bg-color: rgba( 231, 229, 228, 0.4 );--global-back-to-top-text-color: #e7e5e4;--global-newsletter-bg-color: #292524;--global-newsletter-text-color: #e7e5e4;--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}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{--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--type-hero-wordmark: clamp(3.5rem, 8vw, 7.5rem);--type-drop-numeral: clamp(7rem, 12vw, 20rem);--type-h1: clamp(2.2rem, calc(1.5rem + 2.2vw), 3.6rem);--type-h2: clamp(1.6rem, calc(1.2rem + 1vw), 2.2rem);--type-dek: clamp(1.05rem, calc(0.95rem + 0.4vw), 1.3rem);--type-body: clamp(1rem, calc(0.95rem + 0.2vw), 1.125rem);--type-meta: 0.8125rem;--measure: 68ch;--rail-width: 220px;--rule-color: #433422;--rail-bg-color: #fdfbf7;--rail-border-color: rgba(67, 52, 34, 0.14);--mono-label-color: #8c7866;--footnote-rail-color: #8c7866;--motion-duration-fast: 225ms;--motion-duration-normal: 375ms;--motion-duration-page-turn: 750ms;--motion-duration-letter: 525ms;--motion-duration-axis: 750ms;--motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1);--motion-ease-page-turn: cubic-bezier(0.76, 0, 0.24, 1);--motion-ease-stamp: cubic-bezier(0.16, 1.1, 0.3, 1)}html[data-theme=dark]{--rule-color: #e7e5e4;--rail-bg-color: #1c1917;--rail-border-color: rgba(231, 229, 228, 0.12);--mono-label-color: #a8a29e;--footnote-rail-color: #a8a29e}@media(prefers-reduced-motion: reduce){:root{--motion-duration-fast: 0ms;--motion-duration-normal: 0ms;--motion-duration-page-turn: 0ms;--motion-duration-letter: 0ms;--motion-duration-axis: 0ms}}@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-roman-var.woff2") format("woff2-variations"),url("../fonts/fraunces-roman-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;font-stretch:100%}@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-italic-var.woff2") format("woff2-variations"),url("../fonts/fraunces-italic-var.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap;font-stretch:100%}body{padding-bottom:70px;color:var(--global-text-color);background-color:var(--global-bg-color)}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:66px}.container{max-width:930px}.profile img{width:100%}body{font-family:var(--font-serif)}h1,h2,h3,h4,h5,.title,strong,b{font-family:var(--font-serif);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1}.badge,.post-tags a,.small-caps{font-family:var(--font-serif);font-variant:small-caps;font-weight:500;letter-spacing:.05em;text-transform:none !important}.mono,.mono-link{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.01em}.data-highlight{color:var(--global-highlight-color);font-variation-settings:"opsz" 36,"WONK" 1;font-weight:600}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 td,table th{font-size:1rem;padding:1px 1rem 1px 0}table th{font-weight:bold}a,table.table a{color:var(--global-theme-color)}a:hover,table.table a:hover{color:var(--global-theme-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}ul.task-list{list-style-type:none}ul.task-list>li ul{padding-inline-start:1.5rem}ul.task-list input[type=checkbox]{margin:.275rem .5rem .5rem -1rem;vertical-align:middle}.equation{margin-bottom:1rem;text-align:center}.caption{font-size:.875rem;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)}.card .card-body{padding:1.25rem 1.25rem 1.25rem 1.25rem}.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}.profile.float-left{margin-right:1rem}@media(min-width: 576px){.profile{width:24%}.profile .address p{display:block}}.post-description{margin-bottom:2rem;font-size:.875rem}.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-divider-color);background-color:var(--global-bg-color);opacity:.95}.navbar .dropdown-menu{background-color:var(--global-bg-color);border:1px solid 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)}.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)}.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)}.social{text-align:center}.social .contact-icons{font-size:4rem}.social .contact-icons a img{width:3.2rem;height:3.2rem;margin-bottom:1rem}.social .contact-icons a svg{width:3.5rem;height:4rem;margin-bottom:.5rem}.social .contact-icons a svg image{width:3.5rem;height:3.5rem}.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)}footer.fixed-bottom{background-color:var(--global-footer-bg-color);font-size:.75rem}footer.fixed-bottom .container{color:var(--global-footer-text-color);padding-top:9px;padding-bottom:8px;text-align:center}footer.fixed-bottom a{color:var(--global-footer-link-color)}footer.fixed-bottom a:hover{color:var(--global-theme-color);text-decoration:none}footer.sticky-bottom{border-top:1px solid var(--global-divider-color);padding-top:40px;padding-bottom:40px;font-size:.9rem}footer.sticky-bottom .container{text-align:center}.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}.table-cv-map{background-color:rgba(0,0,0,0);border:none;color:var(--global-text-color)}.date-column{width:75px;transform:translateX(-15px) translateY(-5px)}@media(min-width: 768px){.repo{max-width:50%}}.post-title mjx-container[jax=CHTML][display=true]{display:unset}.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}.post-list li .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post-list li .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:0}.post-list li a{color:var(--global-text-color);text-decoration:none}.post-list li a:hover{color:var(--global-theme-color)}.post-list li mjx-container[jax=CHTML][display=true]{display:unset}.distill a:hover{border-bottom-color:var(--global-theme-color);text-decoration:none}.projects a{text-decoration:none}.projects a:hover .card-title{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-divider-color);border-bottom:1px solid var(--global-divider-color);padding-top:.5rem;margin-top:2rem;margin-bottom:1rem;text-align:right}.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-divider-color);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:0px;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}pre pre,pre code{background-color:rgba(0,0,0,0);border-radius:0;margin-bottom:0;padding:0}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 .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:1rem}.post .post-tags a{color:var(--global-text-color-light);text-decoration:none}.post .post-tags a:hover{color:var(--global-theme-color)}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;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}.code-display-wrapper{position:relative}.code-display-wrapper .copy{background:var(--global-card-bg-color);border-color:var(--global-bg-color);border-radius:.3rem;border-style:none;color:var(--global-text-color);font-size:medium;opacity:0;position:absolute;right:.2rem;top:.2rem}.code-display-wrapper:active .copy,.code-display-wrapper:focus .copy,.code-display-wrapper:hover .copy{color:var(--global-hover-color);opacity:1}nav[data-toggle=toc]{top:5rem}nav[data-toggle=toc] .nav .nav>li>a{font-size:.75rem}nav[data-toggle=toc] .nav>li>a{color:var(--global-text-color);font-size:.75rem}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-link.active{color:var(--global-theme-color);border-left-color:var(--global-theme-color);font-size:.75rem}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%}.ps-root .ps-algorithm.with-caption>.ps-line:first-child{border-bottom:2px solid var(--global-text-color)}ninja-keys{--ninja-accent-color: var(--global-theme-color);--ninja-icon-size: 0px;--ninja-modal-background: var(--global-bg-color);--ninja-z-index: 1031}ninja-keys::part(ninja-input){color:var(--ninja-selected-text-color)}ninja-keys::part(ninja-input-wrapper){background:var(--global-bg-color)}.newsletter-form-container{margin-bottom:20px}.newsletter-form{display:flex;flex-direction:row;align-items:center;width:100%}.newsletter-form-input{color:var(--global-newsletter-text-color);background:var(--global-newsletter-bg-color);border:1px solid var(--global-newsletter-text-color);outline:none;margin:0px 10px 0px 0px;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}.newsletter-form-input:focus{border-color:var(--global-theme-color) !important}.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:none;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:none;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:none;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)}.bs-popover-top .arrow::after{border-top-color:var(--global-bg-color)}.bs-popover-bottom .arrow::after{border-bottom-color:var(--global-bg-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.finished{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#62c462}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}figure.cover a.cover-link:hover{color:#23212d !important}.site-grid{display:block}@media(min-width: 900px){.site-grid{display:grid;grid-template-columns:[rail] var(--rail-width) [content] minmax(0, 1fr);min-height:100vh}.site-grid>.site-rail{grid-column:rail}.site-grid>.site-content{grid-column:content;min-width:0}}.page-head{position:relative;padding:clamp(2rem,5vw,5rem) 0 clamp(1.5rem,3vw,3rem)}.page-head .drop-numeral{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;font-weight:700;font-size:var(--type-drop-numeral);line-height:.85;color:var(--global-theme-color);letter-spacing:-0.04em;user-select:none}.page-head .page-head-title{font-family:var(--font-serif);font-weight:700;font-size:var(--type-h1);margin:0;letter-spacing:-0.015em}.page-head .page-head-supertitle{font-family:var(--font-mono);font-size:var(--type-meta);color:var(--mono-label-color);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem}.page-head .page-head-dek{font-family:var(--font-serif);font-style:italic;font-size:var(--type-dek);color:var(--global-text-color-light);max-width:var(--measure);margin:.5rem 0 0}@media(min-width: 900px){.page-head{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 2.2fr);align-items:start;column-gap:clamp(1rem,2vw,2.5rem)}.page-head .drop-numeral{grid-column:1;justify-self:start}.page-head .page-head-body{grid-column:2}}.brutalist-article{padding:0 clamp(1rem,3vw,2.5rem) clamp(2rem,5vw,5rem);max-width:min(100%,72rem);margin:0 auto}html.js-motion .reveal-on-scroll{opacity:0;transform:translateY(12px);transition:opacity var(--motion-duration-normal) var(--motion-ease-out),transform var(--motion-duration-normal) var(--motion-ease-out)}html.js-motion .reveal-on-scroll.is-visible{opacity:1;transform:none}.u-underline{text-decoration:none;background-image:linear-gradient(var(--global-theme-color), var(--global-theme-color));background-repeat:no-repeat;background-size:0 1px;background-position:0 100%;transition:background-size var(--motion-duration-normal) var(--motion-ease-out)}.u-underline:hover,.u-underline:focus-visible{background-size:100% 1px;color:var(--global-theme-color)}@media(prefers-reduced-motion: reduce){.u-underline{transition:none;background-size:100% 1px}}.site-rail{display:none}@media(min-width: 900px){.site-rail{display:block;position:fixed;top:0;left:0;width:var(--rail-width);height:100vh;background-color:var(--rail-bg-color);border-right:1px solid var(--rail-border-color);padding:clamp(1.25rem,2vw,2rem) 1.5rem;z-index:20}.rail-inner{display:flex;flex-direction:column;height:100%}.rail-wordmark{display:inline-flex;text-decoration:none;transition:transform var(--motion-duration-fast) var(--motion-ease-out),opacity var(--motion-duration-fast) var(--motion-ease-out)}.rail-wordmark .sfr-logo{width:56px;height:56px;display:block}.rail-wordmark:hover .sfr-logo,.rail-wordmark:focus-visible .sfr-logo{transform:translateY(-1px);opacity:.88}.rail-list{list-style:none;padding:0;margin:clamp(2.5rem,5vw,4rem) 0 0}.rail-item{margin:0 0 .5rem}.rail-item a{display:grid;grid-template-columns:2rem 1fr;gap:.75rem;align-items:baseline;padding:.35rem 0;text-decoration:none;color:var(--global-text-color);border-left:2px solid rgba(0,0,0,0);padding-left:.75rem;margin-left:-0.75rem;transition:border-color var(--motion-duration-fast) var(--motion-ease-out),color var(--motion-duration-fast) var(--motion-ease-out)}.rail-item a:hover,.rail-item a:focus-visible{color:var(--global-theme-color);border-left-color:var(--global-theme-color)}.rail-item.is-current a{color:var(--global-theme-color);border-left-color:var(--global-theme-color)}.rail-numeral{font-family:var(--font-serif);font-variation-settings:"opsz" 36,"WONK" 1;font-weight:600;font-size:1rem;line-height:1;color:var(--mono-label-color);text-align:right}.rail-item.is-current .rail-numeral,.rail-item a:hover .rail-numeral{color:var(--global-theme-color)}.rail-label{font-family:var(--font-mono);font-size:.875rem;letter-spacing:.06em;text-transform:lowercase}.rail-footer{margin-top:auto;padding-top:1.5rem;border-top:1px solid var(--rail-border-color)}.rail-toggle{background:none;border:none;padding:.25rem 0;cursor:pointer;font-size:.875rem;color:var(--mono-label-color);font-family:var(--font-mono)}.rail-toggle:hover{color:var(--global-theme-color)}.rail-meta{color:var(--mono-label-color);font-size:.6875rem;letter-spacing:.12em;margin:.75rem 0 0;word-spacing:.2em}}.drawer-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;background:rgba(0,0,0,0);border:1px solid var(--rail-border-color);cursor:pointer;padding:0 10px}.drawer-toggle-bar{display:block;width:18px;height:1.5px;background:var(--global-text-color)}.mobile-drawer{position:fixed;inset:0;z-index:50;background-color:var(--global-bg-color);overflow-y:auto}.mobile-drawer[hidden]{display:none}.drawer-inner{padding:clamp(1.25rem,5vw,2.5rem);display:flex;flex-direction:column;min-height:100%}.drawer-close{align-self:flex-end;background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--global-text-color);font-family:var(--font-serif)}.drawer-list{list-style:none;padding:0;margin:clamp(1.5rem,5vw,3rem) 0 0}.drawer-item{border-bottom:1px solid var(--rail-border-color)}.drawer-item a{display:grid;grid-template-columns:3rem 1fr;align-items:baseline;gap:.75rem;padding:.9rem 0;text-decoration:none;color:var(--global-text-color)}.drawer-item a:hover,.drawer-item a:focus-visible{color:var(--global-theme-color)}.drawer-numeral{font-family:var(--font-serif);font-variation-settings:"opsz" 48,"WONK" 1;font-weight:600;font-size:1.25rem;color:var(--mono-label-color)}.drawer-label{font-family:var(--font-serif);font-size:clamp(1.5rem,6vw,2.2rem);font-weight:500;letter-spacing:-0.01em}.drawer-secondary{margin-top:clamp(2rem,6vw,3rem)}.drawer-secondary-label{color:var(--mono-label-color);letter-spacing:.1em;margin:0 0 .75rem;text-transform:uppercase}.drawer-secondary-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:1rem 1.5rem}.drawer-secondary-list a{color:var(--global-text-color);text-decoration:none;font-family:var(--font-mono);font-size:.9rem}.drawer-secondary-list a:hover{color:var(--global-theme-color)}@media(min-width: 900px){.drawer-toggle,.mobile-drawer{display:none !important}}html.drawer-open body{overflow:hidden}.site-header-mobile{display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1rem,4vw,1.5rem);border-bottom:1px solid var(--rail-border-color);background-color:var(--global-bg-color);position:sticky;top:0;z-index:15}.header-wordmark{display:inline-flex;text-decoration:none}.header-wordmark .sfr-logo{width:40px;height:40px;display:block}.header-actions{display:inline-flex;align-items:center;gap:.5rem}.header-theme-toggle{background:rgba(0,0,0,0);border:1px solid var(--rail-border-color);width:40px;height:40px;cursor:pointer;color:var(--global-text-color);font-family:var(--font-mono);font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}.header-theme-toggle:hover{color:var(--global-theme-color)}.header-theme-toggle .light-toggle-system,.header-theme-toggle .light-toggle-dark,.header-theme-toggle .light-toggle-light{padding:0 !important}.sfr-logo .sfr-logo-disk{fill:#6b1410}html[data-theme=dark] .sfr-logo .sfr-logo-disk{fill:#f59e6b}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}@media(min-width: 900px){.site-header-mobile{display:none !important}}.site-footer{margin-top:clamp(4rem,8vw,8rem);padding:clamp(2rem,4vw,4rem) clamp(1rem,3vw,2.5rem) clamp(1.5rem,3vw,3rem);border-top:1px solid var(--rail-border-color);background-color:var(--global-bg-color)}.footer-inner{max-width:min(100%,72rem);margin:0 auto;display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:1fr}@media(min-width: 700px){.footer-inner{grid-template-columns:1fr 1fr}.footer-colophon{grid-column:1/-1}}.footer-secondary-label{color:var(--mono-label-color);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .75rem;font-size:var(--type-meta)}.footer-secondary-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}.footer-secondary-list a{color:var(--global-text-color);font-family:var(--font-serif);font-size:1rem;font-style:italic}.footer-colophon{color:var(--mono-label-color);font-size:.75rem;letter-spacing:.04em;margin:0;padding-top:1.25rem;border-top:1px solid var(--rail-border-color)}.research-page .page-head-dek{font-family:var(--font-serif);font-style:italic;font-size:var(--type-dek);color:var(--global-text-color-light);max-width:var(--measure);margin:.5rem 0 0}.section-rule{border:0;border-top:1px solid var(--rule-color);margin:clamp(3rem,5vw,5rem) 0 clamp(1.25rem,2vw,2rem);opacity:.65}.section-supertitle{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.12em;text-transform:uppercase;color:var(--mono-label-color);margin:0 0 1.5rem}.research-body .publications{margin:0}.research-body .publications ol.bibliography{list-style:none;padding:0;margin:0}.research-body .publications ol.bibliography>li{padding:clamp(1.5rem,2.5vw,2.5rem) 0;border-bottom:1px solid var(--global-divider-color)}.research-body .publications ol.bibliography>li:last-child{border-bottom:0}.research-body .publications ol.bibliography>li>.row{display:block;margin:0}.research-body .publications ol.bibliography>li>.row>.col-sm-2,.research-body .publications ol.bibliography>li>.row>.col-sm-8,.research-body .publications ol.bibliography>li>.row>.col-sm-9,.research-body .publications ol.bibliography>li>.row>.col-sm-10{padding:0;flex:initial;max-width:none;width:auto}.research-body .publications ol.bibliography .col-sm-2.abbr{float:none;margin:0 0 .75rem}.research-body .publications ol.bibliography .col-sm-2.abbr .preview{max-width:160px}.research-body .publications ol.bibliography .col-sm-2.abbr .badge{display:inline-block;width:auto !important;background:rgba(0,0,0,0) !important;color:var(--global-theme-color) !important;border:1px solid var(--global-theme-color);padding:.2rem .65rem;font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.06em;text-transform:uppercase;border-radius:0}.research-body .publications ol.bibliography .title{font-family:var(--font-serif);font-style:italic;font-weight:600;font-variation-settings:"opsz" 72,"SOFT" 50;font-size:clamp(1.5rem,1.1rem + 1.2vw,2.4rem);line-height:1.15;color:var(--global-text-color);letter-spacing:-0.01em;margin:0 0 .5rem}.research-body .publications ol.bibliography .author{font-family:var(--font-serif);font-variant:small-caps;letter-spacing:.04em;font-size:1rem;color:var(--global-text-color-light);margin:0 0 .35rem}.research-body .publications ol.bibliography .author em{color:var(--global-theme-color);font-style:italic}.research-body .publications ol.bibliography .author a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0)}.research-body .publications ol.bibliography .author a:hover{border-bottom-color:var(--global-theme-color);color:var(--global-theme-color)}.research-body .publications ol.bibliography .periodical{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.06em;color:var(--mono-label-color);margin:0 0 .35rem}.research-body .publications ol.bibliography .periodical em{color:var(--mono-label-color);font-style:italic}.research-body .publications ol.bibliography .links{margin:.9rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem .75rem}.research-body .publications ol.bibliography .links .btn,.research-body .publications ol.bibliography .links a.btn{display:inline-flex;align-items:center;background:rgba(0,0,0,0);border:1px solid var(--global-text-color);color:var(--global-text-color);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;border-radius:0;padding:.35rem .75rem;box-shadow:none !important}.research-body .publications ol.bibliography .links .btn:hover,.research-body .publications ol.bibliography .links .btn:focus-visible,.research-body .publications ol.bibliography .links a.btn:hover,.research-body .publications ol.bibliography .links a.btn:focus-visible{background:var(--global-theme-color);border-color:var(--global-theme-color);color:var(--global-hover-text-color)}.research-body .publications ol.bibliography .links .award{background:var(--global-highlight-color);border-color:var(--global-highlight-color);color:#1c1917;font-weight:600}.research-body .publications ol.bibliography .links .award:hover{opacity:.9}.research-body .publications ol.bibliography .badges{margin-top:.75rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.research-body .publications ol.bibliography .abstract.hidden,.research-body .publications ol.bibliography .bibtex.hidden,.research-body .publications ol.bibliography .award.hidden{max-height:0;overflow:hidden;transition:max-height 200ms var(--motion-ease-out),padding 200ms var(--motion-ease-out),margin 200ms var(--motion-ease-out);margin-top:0;padding:0 1rem;background:var(--global-code-bg-color);border-left:2px solid rgba(0,0,0,0);font-family:var(--font-serif);font-size:.95rem;line-height:1.6}.research-body .publications ol.bibliography .abstract.hidden.open,.research-body .publications ol.bibliography .bibtex.hidden.open,.research-body .publications ol.bibliography .award.hidden.open{max-height:200em;margin-top:.75rem;padding:.9rem 1rem;border-left-color:var(--global-theme-color)}.research-body .publications ol.bibliography .bibtex.hidden pre{background:rgba(0,0,0,0);margin:0;font-family:var(--font-mono);font-size:.8125rem;white-space:pre-wrap;word-break:break-word}.research-body .publications .badge.fact-check,.research-body .publications .badge.analysis{color:#fdfbf7 !important;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;border-radius:0;padding:.25rem .6rem}.research-body .publications .badge.fact-check{background-color:var(--global-theme-color) !important}.research-body .publications .badge.analysis{background-color:#1c1917 !important}.research-projects{margin-top:clamp(3rem,5vw,5rem)}.research-project-list{list-style:none;padding:0;margin:0}.research-project{padding:clamp(1.25rem,2vw,2rem) 0;border-bottom:1px solid var(--global-divider-color)}.research-project:last-child{border-bottom:0}.research-project-meta{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.08em;color:var(--mono-label-color);margin:0 0 .35rem}.research-project-title{font-family:var(--font-serif);font-style:italic;font-weight:600;font-variation-settings:"opsz" 72,"SOFT" 50;font-size:clamp(1.25rem,1rem + .9vw,1.8rem);line-height:1.2;margin:0}.research-project-title a{color:inherit}.research-project-dek{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--global-text-color);max-width:var(--measure);margin:.5rem 0 0}.home-page{padding:0 clamp(1rem,3vw,2.5rem) clamp(3rem,6vw,6rem);max-width:min(100%,78rem);margin:0 auto}html.js-motion body.home main.page-turn--enter{clip-path:inset(0 100% 0 0);animation:page-turn var(--motion-duration-page-turn) var(--motion-ease-page-turn) forwards}@keyframes page-turn{to{clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion: reduce){html.js-motion body.home main.page-turn--enter{animation:none;clip-path:none}}.home-page .section-heading{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:1.5rem}.home-page .section-link{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.08em;text-transform:uppercase;color:var(--global-text-color)}.hero--wordmark{padding:clamp(1.5rem,4vw,4rem) 0 clamp(.75rem,1.5vw,1.5rem);display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,3vw,2.5rem)}@media(min-width: 900px){.hero--wordmark{grid-template-columns:minmax(0, 5fr) minmax(0, 3fr);align-items:end}}.hero-wordmark-inner{min-width:0}.hero-supertitle{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.12em;color:var(--mono-label-color);margin:0 0 .75rem;text-transform:uppercase}.hero-wordmark-name{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;font-weight:800;font-size:var(--type-hero-wordmark);line-height:.88;letter-spacing:-0.035em;margin:0;color:var(--global-text-color);display:block}.hero-wordmark-first,.hero-wordmark-last{display:block}.hero-wordmark-last{color:var(--global-theme-color);font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1}.hero-rule{border:0;border-top:2px solid var(--rule-color);margin:clamp(1rem,2vw,1.75rem) 0 1rem;width:clamp(60px,15vw,140px)}.hero-wordmark-role{font-family:var(--font-mono);font-size:.95rem;letter-spacing:.04em;color:var(--global-text-color-light);margin:0;max-width:48ch}.hero-wordmark-photo{margin:0;max-width:clamp(280px,32vw,440px);justify-self:start}@media(min-width: 900px){.hero-wordmark-photo{justify-self:end}}.hero-wordmark-caption,.hero-masthead-caption{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--mono-label-color);text-transform:uppercase;margin:.5rem 0 0}.hero-photo-img{width:100%;height:auto;display:block}.hero--masthead{padding:clamp(1.5rem,4vw,3.5rem) 0 clamp(2rem,4vw,4rem)}.hero-masthead-rule-top,.hero-masthead-rule-bottom{border-top:1px solid var(--rule-color)}.hero-masthead-rule-bottom{border-top-width:2px}.hero-masthead-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:var(--type-meta);color:var(--mono-label-color);letter-spacing:.08em}.hero-masthead-row p{margin:0}.hero-masthead-title{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;font-weight:700;font-size:clamp(3rem,5vw + 2rem,7.5rem);text-align:center;line-height:1;margin:.35rem 0;letter-spacing:-0.02em;color:var(--global-text-color);text-transform:uppercase;font-variant:small-caps}.hero-masthead-body{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,3vw,2.5rem);padding-top:clamp(1.5rem,3vw,2.5rem)}@media(min-width: 900px){.hero-masthead-body{grid-template-columns:minmax(0, 2fr) minmax(0, 1fr)}}.hero-masthead-thesis{font-family:var(--font-serif);font-style:italic;font-weight:500;font-variation-settings:"opsz" 144,"SOFT" 30;font-size:clamp(2rem,1.5rem + 1.8vw,3.5rem);line-height:1.1;margin:0;max-width:var(--measure);color:var(--global-text-color)}.hero-masthead-photo{margin:0}.hero-masthead-caption{text-transform:none;letter-spacing:.04em;max-width:32ch}.home-bio{padding:clamp(1rem,2vw,2rem) 0;max-width:var(--measure)}.bio .section-supertitle{margin:0 0 .75rem;letter-spacing:.12em}.bio-body{font-family:var(--font-serif);font-size:1.08rem;line-height:1.7;color:var(--global-text-color)}.bio-body p{margin:0 0 1.15rem}.bio-body p:first-of-type::first-letter{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;font-size:5.5em;float:left;line-height:.85;padding:.12em .12em 0 0;color:var(--global-theme-color);font-weight:700}.bio-body>figure:first-child+p::first-letter,.bio-body>img:first-child~p::first-letter{all:unset}.flar-feature{padding:clamp(1rem,2vw,2rem) 0;max-width:var(--measure)}.flar-title{font-family:var(--font-serif);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 50;font-size:clamp(1.8rem,1.4rem + 1.5vw,3rem);line-height:1.15;margin:.5rem 0;letter-spacing:-0.015em}.flar-title em{font-style:italic;color:var(--global-theme-color);font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1}.flar-dek{font-family:var(--font-serif);font-size:1.08rem;line-height:1.6;color:var(--global-text-color);margin:0 0 1rem}.flar-cta{font-family:var(--font-mono);font-size:.9rem;letter-spacing:.06em;margin:0}.home-dispatches{padding:clamp(.75rem,1.5vw,1.5rem) 0}.dispatch-list{list-style:none;padding:0;margin:0}.dispatch-item{padding:.9rem 0;border-bottom:1px solid var(--global-divider-color);display:grid;grid-template-columns:1fr;gap:.25rem}@media(min-width: 600px){.dispatch-item{grid-template-columns:110px 1fr;gap:1.25rem;align-items:baseline}}.dispatch-date{color:var(--mono-label-color);font-size:.8rem;letter-spacing:.06em;margin:0}.dispatch-body p{margin:0}.dispatch-body{font-family:var(--font-serif);line-height:1.5}.home-latest-notes{padding:clamp(.75rem,1.5vw,1.5rem) 0}.home-notes-list{list-style:none;padding:0;margin:0}.home-note-item{padding:1rem 0;border-bottom:1px solid var(--global-divider-color);display:grid;grid-template-columns:1fr;gap:.35rem}@media(min-width: 600px){.home-note-item{grid-template-columns:120px 1fr;gap:1.5rem;align-items:baseline}}.home-note-date{font-size:.82rem;color:var(--mono-label-color);letter-spacing:.06em;margin:0}.home-note-title{font-family:var(--font-serif);font-weight:600;font-variation-settings:"opsz" 72,"SOFT" 50;font-size:clamp(1.25rem,1.05rem + .6vw,1.6rem);line-height:1.2;margin:0 0 .25rem}.home-note-dek{font-family:var(--font-serif);font-style:italic;font-size:1rem;line-height:1.5;color:var(--global-text-color-light);margin:0}.home-latest-research{padding:clamp(.75rem,1.5vw,1.5rem) 0}.home-latest-research .publications ol.bibliography>li{padding:clamp(.9rem,2vw,1.5rem) 0}.home-social{padding:clamp(1rem,2vw,2rem) 0 0}.home-social .contact-note{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.04em;color:var(--global-text-color-light);text-transform:uppercase;margin:.75rem 0 0;text-align:center}html.js-motion .anim-letter-mask .anim-char{display:inline-block;clip-path:inset(0 0 100% 0);transform:translateY(0.12em);animation:letter-reveal var(--motion-duration-letter) var(--motion-ease-stamp) both;animation-delay:calc(var(--i, 0)*40ms + 375ms);will-change:clip-path,transform}html.js-motion .anim-letter-mask .anim-char.is-space{animation:none;clip-path:none;transform:none;white-space:pre}@keyframes letter-reveal{to{clip-path:inset(0 0 0 0);transform:none}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-letter-mask .anim-char{clip-path:none;transform:none;animation:none}}html.js-motion .anim-axis-morph{opacity:0;transform:translateY(0.25em);animation:axis-morph-base var(--motion-duration-axis) var(--motion-ease-out) 600ms both}@keyframes axis-morph-base{to{opacity:1;transform:none}}html.js-motion .anim-axis-morph[data-fvs-ok="1"]{font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 0;animation:axis-morph-base var(--motion-duration-axis) var(--motion-ease-out) 600ms both,axis-morph-fvs var(--motion-duration-axis) var(--motion-ease-out) 600ms both}@keyframes axis-morph-fvs{to{font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-axis-morph,html.js-motion .anim-axis-morph[data-fvs-ok="1"]{opacity:1;transform:none;animation:none;font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1}}html.js-motion .anim-clip-reveal{clip-path:inset(0 100% 0 0);animation:clip-reveal var(--motion-duration-axis) var(--motion-ease-out) 375ms both}@keyframes clip-reveal{to{clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-clip-reveal{clip-path:none;animation:none}}html.js-motion .anim-fade-rise{opacity:0;transform:translateY(0.4em);animation:fade-rise var(--motion-duration-axis) var(--motion-ease-out) 375ms both}@keyframes fade-rise{to{opacity:1;transform:none}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-fade-rise{opacity:1;transform:none;animation:none}}html.js-motion .anim-content-sweep{clip-path:inset(0 100% 0 0);animation:content-sweep var(--motion-duration-page-turn) var(--motion-ease-page-turn) forwards}@keyframes content-sweep{to{clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-content-sweep{clip-path:none;animation:none}}html.js-motion .anim-stamp{opacity:0;transform:translateY(-10px) scale(1.4) rotate(-6deg);transform-origin:50% 60%;animation:numeral-stamp 350ms cubic-bezier(0.2, 0.85, 0.2, 1) both;will-change:transform,opacity}@keyframes numeral-stamp{to{opacity:1;transform:translateY(0) scale(1) rotate(0deg)}}@media(prefers-reduced-motion: reduce){html.js-motion .anim-stamp{opacity:1;transform:none;animation:none}}.notes-page .page-head-dek{font-family:var(--font-serif);font-style:italic;font-size:var(--type-dek);color:var(--global-text-color-light);max-width:var(--measure);margin:.5rem 0 0}.notes-body{padding-top:clamp(1rem,2vw,2rem)}.notes-list{list-style:none;padding:0;margin:0}.notes-row{display:grid;grid-template-columns:1fr;gap:.35rem;padding:clamp(1.1rem,2vw,1.75rem) 0;border-bottom:1px solid var(--global-divider-color)}@media(min-width: 600px){.notes-row{grid-template-columns:120px 1fr;gap:1.5rem;align-items:baseline}}.notes-row-date{font-size:.8rem;color:var(--mono-label-color);letter-spacing:.06em;margin:0}.notes-row-title{font-family:var(--font-serif);font-weight:600;font-variation-settings:"opsz" 96,"SOFT" 50;font-size:clamp(1.4rem,1.1rem + 1vw,2.2rem);line-height:1.18;margin:0 0 .3rem;letter-spacing:-0.012em}.notes-row-title a{color:inherit}.notes-row-dek{font-family:var(--font-serif);font-style:italic;font-size:1.05rem;line-height:1.5;color:var(--global-text-color);max-width:var(--measure);margin:0 0 .4rem}.notes-row-meta{font-size:.75rem;letter-spacing:.08em;color:var(--mono-label-color);margin:0}.course-home .page-head-title{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);line-height:1.05}.course-home .page-head-dek em{font-style:italic}.course-meta{display:grid;grid-template-columns:1fr;gap:.4rem;margin:1.5rem 0 2rem;padding:1rem 0;border-top:1px solid var(--global-divider-color);border-bottom:1px solid var(--global-divider-color)}@media(min-width: 720px){.course-meta{grid-template-columns:repeat(2, minmax(0, 1fr));gap:.6rem 2rem}}.course-meta-row{display:grid;grid-template-columns:8.5rem 1fr;align-items:baseline;gap:.75rem;margin:0}.course-meta-row dt{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-label-color);font-weight:500;margin:0}.course-meta-row dd{font-family:var(--font-serif);font-size:1rem;line-height:1.4;margin:0;color:var(--global-text-color)}.course-description{font-family:var(--font-serif);font-size:1.05rem;line-height:1.6;max-width:var(--measure);margin:0 0 2.5rem;color:var(--global-text-color)}.course-description p{margin:0 0 1rem}.course-description>p:first-of-type::first-letter{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;font-size:5.5em;float:left;line-height:.85;padding:.12em .14em 0 0;color:var(--global-theme-color);font-weight:700}.course-toc{list-style:none;padding:0;margin:1rem 0 2rem;counter-reset:none}.course-toc-row{display:grid;grid-template-columns:3rem 1fr;gap:1rem;align-items:baseline;padding:.75rem 0;border-bottom:1px solid var(--global-divider-color)}.course-toc-num{font-size:.85rem;color:var(--mono-label-color);letter-spacing:.06em}.course-toc-title{font-family:var(--font-serif);font-weight:600;font-variation-settings:"opsz" 72,"SOFT" 50;font-size:clamp(1.1rem,.95rem + .5vw,1.4rem);line-height:1.3;color:inherit}.course-disclaimer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--global-divider-color);font-size:.72rem;letter-spacing:.08em;color:var(--mono-label-color)}.chapter-breadcrumb{margin:0 0 1.5rem;font-size:.72rem;letter-spacing:.06em;color:var(--mono-label-color)}.chapter-breadcrumb ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}.chapter-breadcrumb a{color:inherit;text-decoration:none}.chapter-breadcrumb a:hover{color:var(--global-theme-color);text-decoration:underline}.chapter-breadcrumb [aria-current=page]{color:var(--global-text-color)}.chapter-article .post-head{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--global-divider-color)}.chapter-article .post-article-title{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50;font-weight:700;font-size:clamp(2rem,1.4rem + 2vw,3.2rem);line-height:1.05;letter-spacing:-0.015em;margin:0}.chapter-body{font-family:var(--font-serif);font-size:1.05rem;line-height:1.65}.chapter-body img{max-width:100%;height:auto;display:block;margin:1.25rem auto}.chapter-body mjx-container[display=true]{display:block;max-width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:.25rem}html[data-theme=dark] .chapter-body img[src$=".svg"]{filter:invert(0.92) hue-rotate(180deg)}.chapter-body p{margin:0 0 1.1rem}.chapter-body h2,.chapter-body h3,.chapter-body h4{font-family:var(--font-serif);font-weight:700;letter-spacing:-0.01em;line-height:1.2;margin:2rem 0 .75rem}.chapter-body h2{font-size:1.7rem}.chapter-body h3{font-size:1.3rem;font-weight:600}.chapter-body h4{font-size:1.1rem;font-weight:600;font-style:italic}.chapter-body ol,.chapter-body ul{margin:0 0 1.1rem 1.4rem}.chapter-body li{margin:.2rem 0}.chapter-body hr{border:0;border-top:1px solid var(--global-divider-color);margin:1.75rem 0}.chapter-pager{display:grid;grid-template-columns:1fr;gap:.75rem;margin:3rem 0 1rem;padding:1.25rem 0 0;border-top:1px solid var(--global-divider-color)}@media(min-width: 720px){.chapter-pager{grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:start}}.chapter-pager-prev,.chapter-pager-up,.chapter-pager-next{min-height:2.5rem}.chapter-pager-next{text-align:right}.chapter-pager-up{text-align:center}.chapter-pager a{display:inline-flex;flex-direction:column;gap:.2rem;color:inherit;text-decoration:none}.chapter-pager a:hover .chapter-pager-title{color:var(--global-theme-color);text-decoration:underline}.chapter-pager-label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-label-color)}.chapter-pager-title{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--global-text-color)}@media(max-width: 767.98px){body.layout-chapter main.container .row>.col-sm-3{display:none}body.layout-chapter main.container .row>.col-sm-9{flex:0 0 100%;max-width:100%}}@media(min-width: 768px){body.layout-chapter main.container .row>.col-sm-9{flex:0 0 100%;max-width:100%}body.layout-chapter main.container .row>.col-sm-3{position:static;width:0;height:0;padding:0;margin:0;overflow:visible}body.layout-chapter #toc-sidebar{position:fixed;top:25vh;right:0;width:300px;max-height:70vh;overflow:visible;padding:1rem 1rem 1rem 1.25rem;background:var(--global-bg-color);border-left:1px solid var(--rule-color);transform:translateX(calc(100% - 36px));transition:transform 280ms cubic-bezier(0.16, 1, 0.3, 1),box-shadow 220ms ease;z-index:50}body.layout-chapter #toc-sidebar::before{content:"CONTENTS";position:absolute;top:1rem;right:100%;margin-right:.4rem;writing-mode:vertical-rl;transform:rotate(180deg);transform-origin:center;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;color:var(--mono-label-color);pointer-events:none;white-space:nowrap;transition:opacity 180ms ease}body.layout-chapter #toc-sidebar:hover,body.layout-chapter #toc-sidebar:focus-within{transform:translateX(0);box-shadow:-10px 0 30px rgba(0,0,0,.08)}body.layout-chapter #toc-sidebar:hover::before,body.layout-chapter #toc-sidebar:focus-within::before{opacity:0}body.layout-chapter #toc-sidebar nav[data-toggle=toc] ul{padding-left:0}body.layout-chapter #toc-sidebar nav[data-toggle=toc] ul ul{padding-left:.85rem}}.course-index .notes-row-date{font-weight:600;letter-spacing:.1em}.lang-switch{display:inline-flex;align-items:center;gap:.6rem;flex:0 0 auto}.lang-switch-label{font-family:var(--font-mono);font-size:var(--type-meta);letter-spacing:.12em;text-transform:uppercase;color:var(--mono-label-color);white-space:nowrap}@media(max-width: 599.98px){.lang-switch-label{display:none}}.lang-switch-opt{font-family:var(--font-mono);font-size:var(--type-meta);font-weight:500;letter-spacing:.1em;line-height:1;padding:.35em .6em;border:1px solid var(--rule-color);color:var(--mono-label-color);text-decoration:none;background:rgba(0,0,0,0);transition:background-color var(--motion-duration-fast) var(--motion-ease-out),color var(--motion-duration-fast) var(--motion-ease-out),border-color var(--motion-duration-fast) var(--motion-ease-out)}.lang-switch-opt+.lang-switch-opt{margin-left:-1px}a.lang-switch-opt:hover,a.lang-switch-opt:focus-visible{color:var(--global-bg-color);background:var(--global-theme-color);border-color:var(--global-theme-color);text-decoration:none;position:relative;z-index:1}.lang-switch-opt.is-current{color:var(--global-bg-color);background:var(--global-text-color);border-color:var(--global-text-color);cursor:default;position:relative;z-index:1}.page-head-meta,.post-head-meta{display:flex;align-items:baseline;justify-content:space-between;gap:1rem clamp(1rem,3vw,2.5rem);flex-wrap:wrap}.page-head-meta>.page-head-supertitle,.post-head-meta>.section-supertitle{margin-bottom:0;flex:1 1 auto;min-width:0}.page-head-meta{margin-bottom:.75rem}.post-head-meta{margin-bottom:1rem}.post-article{padding:clamp(2rem,4vw,4rem) clamp(1rem,3vw,2.5rem);max-width:min(100%,70rem);margin:0 auto}.post-head{margin-bottom:clamp(2rem,3vw,3rem);max-width:var(--measure)}.post-head .post-meta{color:var(--mono-label-color);font-size:var(--type-meta);letter-spacing:.08em;margin:0 0 .5rem}.post-article-title{font-family:var(--font-serif);font-weight:700;font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;font-size:var(--type-h1);line-height:1.08;letter-spacing:-0.015em;margin:0 0 .5rem;color:var(--global-text-color)}.post-article-dek{font-family:var(--font-serif);font-style:italic;font-size:var(--type-dek);color:var(--global-text-color-light);margin:0;line-height:1.45;max-width:var(--measure)}.post-grid{display:grid;grid-template-columns:minmax(0, 1fr);gap:0}@media(min-width: 900px){.post-grid{grid-template-columns:minmax(0, var(--measure)) minmax(0, 1fr);column-gap:clamp(1.5rem,3vw,3rem)}}.post-body{font-family:var(--font-serif);font-size:1.08rem;line-height:1.7;color:var(--global-text-color);max-width:var(--measure)}.post-body p{margin:0 0 1.2rem}.post-body>p:first-of-type::first-letter{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50,"WONK" 1;font-size:5.5em;float:left;line-height:.85;padding:.12em .14em 0 0;color:var(--global-theme-color);font-weight:700}.post-body.no-drop-cap>p:first-of-type::first-letter,.post-body>p.no-drop-cap::first-letter{all:unset}.post-body h2,.post-body h3{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 50;letter-spacing:-0.01em;margin-top:2.25rem;margin-bottom:.75rem;line-height:1.2}.post-body h2{font-size:var(--type-h2);font-weight:700}.post-body h3{font-size:1.4rem;font-weight:600}.post-body blockquote{border-left:3px solid var(--global-theme-color);padding:.25rem 0 .25rem 1.25rem;margin:1.5rem 0;font-family:var(--font-serif);font-style:italic;font-size:1.15rem;color:var(--global-text-color)}.post-body pre,.post-body code{font-family:var(--font-mono)}.post-margin{position:relative;display:none;min-width:0}@media(min-width: 900px){.post-margin{display:block}}.margin-note{position:absolute;left:0;right:0;font-family:var(--font-serif);font-size:.85rem;line-height:1.4;color:var(--footnote-rail-color);padding:.25rem 0 .25rem .9rem;border-left:1px solid var(--rail-border-color)}.margin-note .margin-note-index{font-family:var(--font-mono);font-size:.7rem;color:var(--global-theme-color);letter-spacing:.08em;margin-right:.4rem;vertical-align:top}.margin-note p{margin:0}@media(min-width: 900px){.post-body .footnotes{display:none}}.post-body sup[id^=fnref] a{color:var(--global-theme-color);text-decoration:none;font-weight:600;font-family:var(--font-mono);font-size:.7em}.post-body sup[id^=fnref] a:hover{text-decoration:underline}.post-references{margin-top:clamp(2.5rem,4vw,4rem)}.post.brutalist-page .brutalist-article table{width:100%;border-collapse:collapse;font-family:var(--font-serif)}.post.brutalist-page .brutalist-article table th{font-family:var(--font-mono);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-label-color);border-bottom:1px solid var(--rule-color);padding:.6rem .75rem .6rem 0;text-align:left}.post.brutalist-page .brutalist-article table td{padding:.8rem .75rem .8rem 0;border-bottom:1px solid var(--global-divider-color);vertical-align:top}.post.brutalist-page .brutalist-article table tr:last-child td{border-bottom:0}.teaching-list{list-style:none;padding:0;margin:0}.teaching-row{padding:.85rem 0;border-bottom:1px solid var(--global-divider-color);display:grid;grid-template-columns:1fr;gap:.25rem}@media(min-width: 600px){.teaching-row{grid-template-columns:110px 1fr 180px;gap:1.25rem;align-items:baseline}}.teaching-term{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em;color:var(--mono-label-color)}.teaching-title{font-family:var(--font-serif);font-size:1.05rem}.teaching-role{font-family:var(--font-mono);font-size:.75rem;color:var(--mono-label-color);letter-spacing:.08em;text-transform:uppercase}.teaching-year{margin:0 0 3rem}.teaching-year+.teaching-year{margin-top:3.5rem}.teaching-year-head{display:grid;grid-template-columns:1fr;gap:.4rem;align-items:baseline;margin:0 0 1rem;padding:0 0 .85rem;border-bottom:1px solid var(--rule-color)}@media(min-width: 720px){.teaching-year-head{grid-template-columns:auto 1fr;gap:1.5rem}}.teaching-year-num{font-family:var(--font-mono);font-size:clamp(2rem,1.4rem + 1.5vw,2.6rem);font-weight:600;letter-spacing:.02em;color:var(--global-text-color);margin:0;line-height:1}.teaching-year-meta{font-size:.72rem;letter-spacing:.1em;color:var(--mono-label-color);margin:0;text-transform:uppercase}.teaching-courses{list-style:none;padding:0;margin:0;counter-reset:none}.teaching-course{display:grid;grid-template-columns:1fr;gap:.6rem;padding:1.5rem 0;border-bottom:1px solid var(--global-divider-color)}.teaching-course:last-child{border-bottom:0}@media(min-width: 720px){.teaching-course{grid-template-columns:110px 1fr;gap:1.5rem;align-items:start}}.teaching-course-code{font-size:.85rem;font-weight:600;letter-spacing:.06em;color:var(--global-theme-color);margin:0;padding-top:.25rem}.teaching-course-body{display:flex;flex-direction:column;gap:.4rem}.teaching-course-title{font-family:var(--font-serif);font-weight:700;font-variation-settings:"opsz" 96,"SOFT" 50;font-size:clamp(1.2rem,1rem + .5vw,1.5rem);line-height:1.2;letter-spacing:-0.01em;margin:0;color:var(--global-text-color)}.teaching-course-subtitle{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--global-text-color-light);margin:0}.teaching-course-role{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mono-label-color);margin:.3rem 0 0}.teaching-course-desc{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--global-text-color);max-width:var(--measure);margin:.4rem 0 0}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.iconlocation{color:var(--global-theme-color);font-size:.8rem}div.list-groups{display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:row;align-content:center}div.list-group{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;margin-bottom:2rem}td.list-group-category{color:var(--global-theme-color);margin-bottom:.5rem}td.list-group-category-icon{font-size:.8rem;color:var(--global-theme-color);width:1.4rem;padding-right:.4rem}td.list-group-name{font-size:.8rem}a.anchor{display:block;position:relative;top:-50px;visibility:hidden}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}.cv-page .page-head-dek{font-family:var(--font-serif);font-style:italic;font-size:var(--type-dek);color:var(--global-text-color-light);max-width:var(--measure);margin:.25rem 0 .75rem}.cv-page .cv-pdf-link{margin:1rem 0 0}.cv-page .cv-pdf-link .mono-link{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.08em;color:var(--global-text-color);text-transform:uppercase}.cv-page .cv{margin:0}.cv-page .cv-section{padding:clamp(1.5rem,3vw,2.5rem) 0;border-top:1px solid var(--rule-color)}.cv-page .cv-section:first-child{border-top:0;padding-top:clamp(1rem,2vw,1.5rem)}.cv-page .cv-section .section-supertitle{margin:0 0 1.25rem}.cv-page .card{background:rgba(0,0,0,0) !important;border:0 !important;box-shadow:none !important;padding:0 !important;margin:0 !important;border-radius:0 !important}.cv-page .card-title{display:none}.cv-page .list-group-item{background:rgba(0,0,0,0) !important;border:0 !important;box-shadow:none !important;padding-left:0 !important;padding-right:0 !important}.cv-page .list-group{border:0 !important}.cv-page .time-table,.cv-page .cv-time-table,.cv-page table{width:100%;border-collapse:collapse}.cv-page .time-table td,.cv-page .time-table th,.cv-page .cv-time-table td,.cv-page .cv-time-table th,.cv-page table td,.cv-page table th{padding:.35rem 0;vertical-align:top}.cv-page .time-table td:first-child,.cv-page .time-table th:first-child,.cv-page .cv-time-table td:first-child,.cv-page .cv-time-table th:first-child,.cv-page table td:first-child,.cv-page table th:first-child{font-family:var(--font-mono);font-size:.85rem;color:var(--mono-label-color);letter-spacing:.04em;white-space:nowrap;padding-right:1.25rem;width:10rem}.cv-page .time-table td:last-child,.cv-page .cv-time-table td:last-child,.cv-page table td:last-child{font-family:var(--font-serif)}.cv-page .cv-section-body ul{list-style:none;padding:0;margin:0}.cv-page .cv-section-body ul li{padding:.25rem 0;font-family:var(--font-serif)}.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 .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)}.fas,.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}.fas::before,.far::before,.fab::before,.fa-solid::before,.fa-regular::before,.fa-brands::before,.fa::before{content:var(--fa)}.fas,.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}.fa-fw{text-align:center;width:1.25em}@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(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.fa-bars{--fa:"";--fa--fa:""}.fa-star{--fa:"";--fa--fa:""}.fa-clipboard{--fa:"";--fa--fa:""}.fa-check-circle{--fa:"";--fa--fa:""}.fa-arrow-alt-circle-right{--fa:"";--fa--fa:""}.fa-circle{--fa:"";--fa--fa:""}.fa-clipboard-check{--fa:"";--fa--fa:""}.fa-tag{--fa:"";--fa--fa:""}.fa-envelope{--fa:"";--fa--fa:""}.fa-gear{--fa:"";--fa--fa:""}.fa-cart-shopping{--fa:"";--fa--fa:""}.fa-images{--fa:"";--fa--fa:""}.fa-stop{--fa:"";--fa--fa:""}.fa-location-dot{--fa:"";--fa--fa:""}.fa-play{--fa:"";--fa--fa:""}.fa-adjust{--fa:"";--fa--fa:""}.fa-times{--fa:"";--fa--fa:""}.fa-robot{--fa:"";--fa--fa:""}.fa-hashtag{--fa:"\#";--fa--fa:"\#\#"}.fa-calendar{--fa:"";--fa--fa:""}.fa-sticky-note{--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-amazon{--fa:""}.fa-linkedin{--fa:""}.fa-goodreads-g{--fa:""}.fa-github{--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")}.fas,.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-search:before{content:"\eb1c"}/*!
 * 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}/*!
 * 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-search:before{content:"\eb1c"}