@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-cyrillic-wght-normal.CiQTuMoU.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-ext-wght-normal.0BME-IPC.woff2)format("woff2-variations");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-wght-normal.DJzCSW5i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html[data-portfolio-page]{--folio-bg:#eeede7;--folio-surface:#e6e4dc;--folio-raised:#dedcd4;--folio-text:#20201f;--folio-secondary:#4f504b;--folio-muted:#606159;--folio-accent:#a60068;--folio-onaccent:#fff;--folio-line:#cdcdc3;--folio-mono:ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;--folio-text-meta:clamp(.75rem, .7rem + .15vw, .875rem);--folio-text-support:clamp(.875rem, .825rem + .15vw, 1rem);--folio-text-body:clamp(1rem, .95rem + .15vw, 1.125rem);--folio-text-subtitle:clamp(1.125rem, 1.025rem + .3vw, 1.375rem);--folio-text-project:clamp(1.5rem, 1.3rem + .6vw, 1.875rem);--folio-text-section:clamp(2rem, 1.75rem + .8vw, 2.75rem);--folio-text-hero:clamp(3.25rem, 1.6rem + 5vw, 6rem);--folio-text-contact:clamp(2.5rem, 1.5rem + 3vw, 4.5rem);--folio-leading-body:1.65;--folio-leading-heading:1.15;--folio-leading-display:.98;--folio-tracking-heading:-.035em;--folio-tracking-display:-.065em;--folio-space-1:.25rem;--folio-space-2:.5rem;--folio-space-3:.75rem;--folio-space-4:1rem;--folio-space-5:1.25rem;--folio-space-6:1.5rem;--folio-space-7:2rem;--folio-space-8:clamp(2rem, 3.5vw, 3rem);--folio-space-section:clamp(3.5rem, 5vw, 5rem);--folio-width:80rem;--folio-gutter:clamp(1.25rem, 4vw, 4rem)}html.dark[data-portfolio-page]{--folio-bg:#111210;--folio-surface:#191a17;--folio-raised:#252620;--folio-text:#eeeee5;--folio-secondary:#bfc1b5;--folio-muted:#a2a597;--folio-accent:#f68abc;--folio-onaccent:#170b13;--folio-line:#32352b}html[data-portfolio-page] body{background:var(--folio-bg);color:var(--folio-text);font-size:var(--folio-text-body);line-height:var(--folio-leading-body)}html[data-portfolio-page] body>div.absolute{display:none}html[data-portfolio-page] body:before{content:"";pointer-events:none;background-image:linear-gradient(var(--folio-line) 1px, transparent 1px), linear-gradient(90deg, var(--folio-line) 1px, transparent 1px);opacity:.15;background-size:96px 96px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 1050px);mask-image:linear-gradient(#000,#0000 1050px)}html[data-portfolio-page] ::-moz-selection{background:var(--folio-accent);color:var(--folio-onaccent)}html[data-portfolio-page] ::selection{background:var(--folio-accent);color:var(--folio-onaccent)}html[data-portfolio-page] .portfolio-main{padding-inline:var(--folio-gutter);position:relative}html[data-portfolio-page] .section{max-width:var(--folio-width);scroll-margin-top:120px}html[data-portfolio-page] .portfolio-hero-section{padding-top:128px;padding-bottom:var(--folio-space-section)}html[data-portfolio-page] .portfolio-sections{gap:var(--folio-space-section);padding-bottom:var(--folio-space-section);display:grid}html[data-portfolio-page] .portfolio-sections>section{border-top:1px solid var(--folio-line);padding-top:var(--folio-space-8);position:relative}html[data-portfolio-page] .section-kicker{margin-bottom:var(--folio-space-5);font:var(--folio-text-meta)/1.5 var(--folio-mono);letter-spacing:.06em;color:var(--folio-muted)}html[data-portfolio-page] .section-kicker>span{color:var(--folio-accent);margin-right:var(--folio-space-3)}html[data-portfolio-page] .section-title,html[data-portfolio-page] #writing h2{align-items:center;gap:var(--folio-space-3);margin-bottom:var(--folio-space-5);font-size:var(--folio-text-section);letter-spacing:var(--folio-tracking-heading);font-weight:550;line-height:var(--folio-leading-heading);color:var(--folio-text);text-wrap:balance;display:flex}html[data-portfolio-page] .section-title>svg,html[data-portfolio-page] #writing h2>svg{display:none}html[data-portfolio-page] #projects>p:not(.section-kicker),html[data-portfolio-page] #lab>p:not(.section-kicker),html[data-portfolio-page] #writing .writing-header p{max-width:70ch;font-size:var(--folio-text-body);line-height:var(--folio-leading-body);color:var(--folio-secondary)}html[data-portfolio-page] #projects>p:not(.section-kicker){margin-bottom:var(--folio-space-8)}html[data-portfolio-page] .expertise-card{padding:var(--folio-space-7);border:1px solid var(--folio-line);background:var(--folio-surface);transition:border-color .2s;position:relative}html[data-portfolio-page] .expertise-card:hover{border-color:var(--folio-accent)}html[data-portfolio-page] .expertise-index{color:var(--folio-accent);font:var(--folio-text-meta)/1.5 var(--folio-mono);margin-bottom:var(--folio-space-6);display:block}html[data-portfolio-page] .expertise-card h3{font-size:var(--folio-text-subtitle);letter-spacing:var(--folio-tracking-heading);color:var(--folio-text);font-weight:550;line-height:1.35}html[data-portfolio-page] .expertise-card p{max-width:60ch;color:var(--folio-secondary);font-size:var(--folio-text-body);line-height:var(--folio-leading-body)}html[data-portfolio-page] #experience .experience-intro{max-width:70ch;color:var(--folio-secondary);font-size:var(--folio-text-body);line-height:var(--folio-leading-body)}html[data-portfolio-page] .experience-group{margin-top:var(--folio-space-8)}html[data-portfolio-page] .experience-group-title{margin-bottom:var(--folio-space-6);color:var(--folio-text);font-size:var(--folio-text-subtitle);letter-spacing:var(--folio-tracking-heading);font-weight:600;line-height:1.35}html[data-portfolio-page] .experience-entry{gap:var(--folio-space-5);padding-block:var(--folio-space-7);border-top:1px solid var(--folio-line);display:grid}html[data-portfolio-page] .experience-identity,html[data-portfolio-page] .experience-contribution{min-width:0}html[data-portfolio-page] .experience-role{color:var(--folio-text);font-size:var(--folio-text-subtitle);letter-spacing:var(--folio-tracking-heading);font-weight:550;line-height:1.35}html[data-portfolio-page] .experience-company{margin-top:var(--folio-space-2);color:var(--folio-text);font-size:var(--folio-text-body);font-weight:550}html[data-portfolio-page] .experience-context{margin-top:var(--folio-space-2);color:var(--folio-secondary);font-size:var(--folio-text-support);line-height:var(--folio-leading-body)}html[data-portfolio-page] .experience-date{margin-top:var(--folio-space-3);color:var(--folio-accent);font-size:var(--folio-text-support)}html[data-portfolio-page] .experience-contribution>p{max-width:70ch;color:var(--folio-secondary);font-size:var(--folio-text-body);line-height:var(--folio-leading-body)}html[data-portfolio-page] .experience-link{align-items:center;gap:var(--folio-space-3);min-height:44px;margin-top:var(--folio-space-2);color:var(--folio-accent);font-size:var(--folio-text-support);text-underline-offset:.3em;overflow-wrap:anywhere;text-decoration:underline;display:inline-flex}html[data-portfolio-page] .experience-link:hover{color:var(--folio-text)}html[data-portfolio-page] .experience-current{padding:var(--folio-space-7);border:1px solid var(--folio-line);border-left:3px solid var(--folio-accent);background:var(--folio-surface)}html[data-portfolio-page] .experience-status{margin-bottom:var(--folio-space-4);color:var(--folio-accent);font:var(--folio-text-meta)/1.5 var(--folio-mono)}html[data-portfolio-page] .experience-current .experience-role{font-size:var(--folio-text-project)}html[data-portfolio-page] .experience-earlier .experience-entry{padding-block:var(--folio-space-5)}html[data-portfolio-page] .profile-link{align-items:center;gap:var(--folio-space-4);min-height:44px;margin-top:var(--folio-space-6);color:var(--folio-accent);font-size:var(--folio-text-support);font-weight:600;display:inline-flex}html[data-portfolio-page] a:hover{text-underline-offset:.3em}html[data-portfolio-page] .profile-link:hover{text-decoration:underline}html[data-portfolio-page] a:focus-visible,html[data-portfolio-page] button:focus-visible,html[data-portfolio-page] input:focus-visible{outline:2px solid var(--folio-accent);outline-offset:4px}html[data-portfolio-page] #lab .experiment,html[data-portfolio-page] #writing .writing-card{background:var(--folio-surface);border-color:var(--folio-line);border-radius:3px}html[data-portfolio-page] #lab .experiment-copy h3,html[data-portfolio-page] #writing .writing-card h3{font-size:var(--folio-text-subtitle);color:var(--folio-text);font-weight:600;line-height:1.35}html[data-portfolio-page] #lab .experiment-copy p,html[data-portfolio-page] #writing .writing-card p{font-size:var(--folio-text-body);line-height:var(--folio-leading-body);color:var(--folio-secondary)}html[data-portfolio-page] #lab .status,html[data-portfolio-page] #lab .source,html[data-portfolio-page] #writing .metadata{font-size:var(--folio-text-meta);letter-spacing:.02em;color:var(--folio-muted);line-height:1.5}html[data-portfolio-page] #lab .status,html[data-portfolio-page] #writing .category{color:var(--folio-accent)}html[data-portfolio-page] #lab .tags li{font-size:var(--folio-text-meta);color:var(--folio-secondary);border-color:var(--folio-line);background:0 0;border-radius:0;font-weight:500;line-height:1.5}html[data-portfolio-page] #lab .action,html[data-portfolio-page] #lab .live-link,html[data-portfolio-page] #writing .read-link,html[data-portfolio-page] #writing .all-posts{min-height:44px;font-size:var(--folio-text-support);color:var(--folio-accent)}html[data-portfolio-page] #lab .range{font-size:var(--folio-text-support);color:var(--folio-secondary)}html[data-portfolio-page] #lab .carousel-buttons button{color:var(--folio-accent);border-color:var(--folio-line)}html[data-portfolio-page] #writing .writing-header{margin-bottom:var(--folio-space-7)}html[data-portfolio-page] #writing .post-link{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr)}html[data-portfolio-page] #writing .post-copy{padding:var(--folio-space-6)}html[data-portfolio-page] #contact .section-title{max-width:16ch;font-size:var(--folio-text-contact);letter-spacing:var(--folio-tracking-display);margin-bottom:var(--folio-space-8)}html[data-portfolio-page] #contact article{justify-content:space-between;align-items:flex-start;gap:var(--folio-space-8)}html[data-portfolio-page] #contact article>div{max-width:70ch;font-size:var(--folio-text-body);line-height:var(--folio-leading-body);color:var(--folio-secondary)}html[data-portfolio-page] #contact article>img{-o-object-fit:cover;object-fit:cover;filter:saturate(.55);border-radius:0;width:12rem;height:14rem;padding:0;transform:rotate(3deg)}html[data-portfolio-page] #contact article strong{color:var(--folio-accent)}html[data-portfolio-page] #contact>div a{font-size:var(--folio-text-support);min-height:44px;color:var(--folio-text);border-color:var(--folio-line);padding:var(--folio-space-3) var(--folio-space-4);background:0 0;border-radius:0}html[data-portfolio-page] #contact>div a:hover{border-color:var(--folio-accent)}html[data-portfolio-page] body>footer{max-width:var(--folio-width);width:calc(100% - 2 * var(--folio-gutter));border-top:1px solid var(--folio-line);box-shadow:none;backdrop-filter:none;padding:var(--folio-space-6) 0;background:0 0;border-radius:0}html[data-portfolio-page] body>footer span{color:var(--folio-muted);font-size:var(--folio-text-meta)}html[data-portfolio-page] body>header{justify-content:space-between;gap:var(--folio-space-4);padding:var(--folio-space-3) max(var(--folio-gutter), calc((100% - var(--folio-width)) / 2));background:var(--folio-bg);border-bottom:1px solid var(--folio-line);margin-top:0}html[data-portfolio-page] .portfolio-wordmark{font:700 var(--folio-text-subtitle)/1.5 var(--folio-mono);letter-spacing:-.07em}html[data-portfolio-page] .portfolio-wordmark span{color:var(--folio-accent)}html[data-portfolio-page] #nav-menu{gap:var(--folio-space-1);backdrop-filter:none;max-width:none;color:var(--folio-secondary);background:0 0;border-radius:0;padding:0;animation:none}html[data-portfolio-page] #nav-menu>a{min-height:44px;font-size:var(--folio-text-support);padding:var(--folio-space-2) var(--folio-space-3);align-items:center;transition:color .18s,background .18s;display:flex}html[data-portfolio-page] #nav-menu>a:hover{color:var(--folio-text);background:var(--folio-raised);transform:none}html[data-portfolio-page] #nav-menu>a[aria-current]{color:var(--folio-accent);text-underline-offset:.4em;background:0 0;border-radius:0;text-decoration:underline}html[data-portfolio-page] #nav-menu .dropdown>button{justify-content:center;align-items:center;min-width:44px;min-height:44px}html[data-portfolio-page] #nav-menu a:focus-visible{outline-color:var(--folio-accent);border-radius:0}html[data-portfolio-page] #nav-menu .dropdown-menu{font-size:var(--folio-text-support);color:var(--folio-text);background:var(--folio-surface);border-color:var(--folio-line);left:auto;right:0}html[data-portfolio-page] #nav-menu .dropdown-menu label{align-items:center;min-height:44px}html[data-portfolio-page] #nav-menu .dropdown-menu label:has(input:focus-visible){outline:2px solid var(--folio-accent);outline-offset:3px}@media (width>=900px){html[data-portfolio-page] .experience-entry{gap:var(--folio-space-8);grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}}@media (width<=999px){html[data-portfolio-page] body>header{padding-block:var(--folio-space-2);flex-wrap:wrap;gap:0}html[data-portfolio-page] #nav-menu{flex:1 0 100%;justify-content:space-between}html[data-portfolio-page] #nav-menu>a{padding-inline:var(--folio-space-2)}html[data-portfolio-page] .portfolio-hero-section{padding-top:144px}}@media (width<=699px){html[data-portfolio-page] .portfolio-hero-section{padding-top:128px}html[data-portfolio-page] #nav-menu{grid-template-columns:repeat(6,auto);gap:0;width:100%;display:grid}html[data-portfolio-page] #nav-menu>a{padding-inline:var(--folio-space-1);justify-content:center}html[data-portfolio-page] #nav-menu .dropdown{top:var(--folio-space-1);right:var(--folio-gutter);position:absolute}html[data-portfolio-page] .expertise-card{padding:var(--folio-space-6)}html[data-portfolio-page] #contact article>img{width:10rem;height:11rem;margin:0 0 var(--folio-space-2) auto}html[data-portfolio-page] #writing .writing-card .post-link{flex-direction:column;display:flex}html[data-portfolio-page] #writing .post-image{aspect-ratio:16/9}}@media (prefers-reduced-motion:reduce){html[data-portfolio-page] .expertise-card,html[data-portfolio-page] #nav-menu>a{transition:none}}.journal-main{padding-block:calc(128px + var(--folio-space-7)) var(--folio-space-section);flex:1}.journal-container{max-width:var(--folio-width);min-width:0;margin-inline:auto}.journal-heading{padding-bottom:var(--folio-space-8);margin-bottom:var(--folio-space-8);border-bottom:1px solid var(--folio-line)}.journal-heading h1,.journal-article-header h1{font-size:var(--folio-text-hero);font-weight:550;line-height:var(--folio-leading-display);letter-spacing:var(--folio-tracking-display);color:var(--folio-text);text-wrap:balance;overflow-wrap:anywhere}.journal-heading h1{margin-bottom:var(--folio-space-6)}.journal-intro{max-width:65ch;margin-top:var(--folio-space-6);color:var(--folio-secondary);font-size:var(--folio-text-subtitle);line-height:var(--folio-leading-body)}.journal-grid{gap:var(--folio-space-8);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.journal-card{border-top:1px solid var(--folio-line);min-width:0;padding-top:var(--folio-space-5)}.journal-image{aspect-ratio:16/9;background:var(--folio-surface);display:block;overflow:hidden}.journal-image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .2s}.journal-card:hover .journal-image img{transform:scale(1.025)}.journal-card-copy{padding-top:var(--folio-space-5);min-width:0}.journal-card .journal-card-title{font-size:var(--folio-text-subtitle);letter-spacing:var(--folio-tracking-heading);margin-block:var(--folio-space-4);overflow-wrap:anywhere;font-weight:600;line-height:1.35}.journal-card .journal-card-title a:hover{color:var(--folio-accent);text-decoration:underline 1px}.journal-excerpt{color:var(--folio-secondary);font-size:var(--folio-text-body);line-height:var(--folio-leading-body);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.journal-link{align-items:center;gap:var(--folio-space-3);min-height:44px;color:var(--folio-accent);font-size:var(--folio-text-support);text-underline-offset:.3em;font-weight:550;display:inline-flex}.journal-link:hover{text-decoration:underline}.journal-card .journal-link{margin-top:var(--folio-space-4)}.journal-metadata{gap:var(--folio-space-2) var(--folio-space-4);color:var(--folio-muted);font:var(--folio-text-support)/1.5 var(--folio-mono);overflow-wrap:anywhere;flex-wrap:wrap;display:flex}.journal-category{color:var(--folio-accent)}.journal-featured{gap:var(--folio-space-8);margin-bottom:var(--folio-space-section);border-top:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;padding-top:0;display:grid}.journal-featured .journal-card-copy{padding-top:0}.journal-featured .journal-card-title{font-size:var(--folio-text-section);line-height:var(--folio-leading-heading);font-weight:550}.journal-text-only{grid-template-columns:minmax(0,1fr)}.journal-pagination{justify-content:space-between;align-items:center;gap:var(--folio-space-4);border-top:1px solid var(--folio-line);margin-top:var(--folio-space-8);padding-top:var(--folio-space-6);font:var(--folio-text-support)/1.5 var(--folio-mono);color:var(--folio-muted);flex-wrap:wrap;display:flex}.journal-empty{color:var(--folio-secondary);padding-block:var(--folio-space-8)}.journal-article-header{max-width:64rem;margin-bottom:var(--folio-space-8)}.journal-back{margin-bottom:var(--folio-space-7)}.journal-article-header .journal-metadata{margin-top:var(--folio-space-7)}.journal-hero{margin-bottom:var(--folio-space-section);background:var(--folio-surface)}.journal-hero img{-o-object-fit:contain;object-fit:contain;width:100%;height:auto;max-height:42rem;display:block}.journal-prose{min-width:0;max-width:70ch;font-size:var(--folio-text-body);overflow-wrap:anywhere;--tw-prose-body:var(--folio-secondary);--tw-prose-headings:var(--folio-text);--tw-prose-links:var(--folio-accent);--tw-prose-bold:var(--folio-text);--tw-prose-counters:var(--folio-muted);--tw-prose-bullets:var(--folio-accent);--tw-prose-hr:var(--folio-line);--tw-prose-quotes:var(--folio-text);--tw-prose-quote-borders:var(--folio-accent);--tw-prose-code:var(--folio-text);--tw-prose-pre-code:var(--folio-text);--tw-prose-pre-bg:var(--folio-surface);--tw-prose-th-borders:var(--folio-line);--tw-prose-td-borders:var(--folio-line);margin-inline:auto;line-height:1.8}html.dark .journal-prose{--tw-prose-body:var(--folio-secondary);--tw-prose-headings:var(--folio-text);--tw-prose-links:var(--folio-accent);--tw-prose-bold:var(--folio-text);--tw-prose-counters:var(--folio-muted);--tw-prose-bullets:var(--folio-accent);--tw-prose-hr:var(--folio-line);--tw-prose-quotes:var(--folio-text);--tw-prose-quote-borders:var(--folio-accent);--tw-prose-code:var(--folio-text);--tw-prose-pre-code:var(--folio-text);--tw-prose-pre-bg:var(--folio-surface);--tw-prose-th-borders:var(--folio-line);--tw-prose-td-borders:var(--folio-line)}.journal-prose>:first-child{margin-top:0}.journal-prose h2{font-size:var(--folio-text-section);line-height:var(--folio-leading-heading);letter-spacing:var(--folio-tracking-heading);margin-top:var(--folio-space-8)}.journal-prose h3:not(.survey-chart h3){font-size:var(--folio-text-project);letter-spacing:var(--folio-tracking-heading);margin-block:var(--folio-space-7) var(--folio-space-4);line-height:1.35}.journal-prose a{text-underline-offset:.2em;text-decoration:underline}.journal-prose blockquote{border-left:2px solid var(--folio-accent);color:var(--folio-text);font-weight:400}.journal-prose pre{border:1px solid var(--folio-line);max-width:100%;padding:var(--folio-space-6);font-size:var(--folio-text-support);border-radius:0;line-height:1.7;overflow-x:auto}.journal-prose code{font-family:var(--folio-mono)}.journal-prose :not(pre)>code{background:var(--folio-surface);border:1px solid var(--folio-line);padding:.15em .35em;font-weight:400}.journal-prose code:before,.journal-prose code:after{content:none}.journal-prose table{max-width:100%;font-size:var(--folio-text-support);display:block;overflow-x:auto}.journal-prose th,.journal-prose td{padding:var(--folio-space-3) var(--folio-space-4);min-width:8rem}.journal-prose img{border-radius:0}.journal-prose details{border-block:1px solid var(--folio-line);padding-block:var(--folio-space-4);margin-block:var(--folio-space-7)}.journal-prose summary{cursor:pointer;min-height:44px;color:var(--folio-text)}.journal-prose :is(pre,table):focus-visible,.journal-prose summary:focus-visible{outline:2px solid var(--folio-accent);outline-offset:4px}.journal-prose .hljs-keyword,.journal-prose .hljs-selector-tag,.journal-prose .hljs-literal{color:var(--folio-accent)}.journal-prose .hljs-string,.journal-prose .hljs-title,.journal-prose .hljs-number,.journal-prose .hljs-attr{color:var(--folio-text);font-weight:650}.journal-prose .hljs-comment{color:var(--folio-muted);font-style:italic}html[data-portfolio-page] .journal-prose .survey-chart{--track:var(--folio-raised);--ink:var(--folio-text);--muted:var(--folio-secondary);--surface:var(--folio-surface);--border:var(--folio-line);--bar:var(--folio-accent);border-radius:0}html[data-portfolio-page] .journal-prose .workplace-charts{background:var(--folio-surface);border-color:var(--folio-line);border-radius:0}.journal-prose .survey-chart :is(.sample,.axis,dt,dd,.chart-note,.chart-tooltip,.row-heading){font-size:var(--folio-text-support)}.journal-article-footer{max-width:70ch;margin:var(--folio-space-8) auto 0;border-top:1px solid var(--folio-line);padding-top:var(--folio-space-6)}.journal-related{border-top:1px solid var(--folio-line);margin-top:var(--folio-space-section);padding-top:var(--folio-space-8)}.journal-related .journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width<=1099px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=899px){.journal-featured{gap:var(--folio-space-6);grid-template-columns:minmax(0,1fr)}}@media (width<=699px){.journal-grid,.journal-related .journal-grid{grid-template-columns:minmax(0,1fr)}.journal-main{padding-top:calc(128px + var(--folio-space-4))}}@media (prefers-reduced-motion:reduce){.journal-image img{transition:none}.journal-card:hover .journal-image img{transform:none}}nav[data-astro-cid-nen7h5rs]{backdrop-filter:blur(12px);max-width:calc(100% - 1rem)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:focus-visible{outline-offset:-2px;border-radius:9999px;outline:2px solid #f800ae}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current]{background:#f800ae1a;border-radius:9999px}@media (width<=639px){nav[data-astro-cid-nen7h5rs]{padding:.25rem;font-size:.75rem}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:.5rem}}@media (prefers-reduced-motion:reduce){nav[data-astro-cid-nen7h5rs]{animation:none!important}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{transition:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{transform:none}}nav[data-astro-cid-nen7h5rs]{animation:1s linear both nav-shadown scroll();animation-range:0 100px}@keyframes nav-shadown{to{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000);--tw-ring-color:#ffffff1a;--tw-backdrop-blur:blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{color-scheme:light}:root.dark{color-scheme:dark}html{scroll-behavior:smooth;font-family:Onest Variable,system-ui,sans-serif}body{color:#111111e6;overscroll-behavior:none;flex-direction:column;min-height:100vh;display:flex}.skip-link{z-index:50;color:#111;background:#fff;border-radius:.5rem;padding:.75rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{outline:2px solid #a60075;transform:translateY(0)}.dropdown:hover .dropdown-menu{display:block}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media (prefers-color-scheme:dark){body{color:#ffffffe6}}#header-nav{animation:.5s linear both blur scroll();animation-range:0 500px}@keyframes blur{to{backdrop-filter:blur(20px);background-color:#e5e5e5;border-width:1px;border-color:#000;border-radius:9999px;flex-direction:row;align-items:center;padding:.25rem .75rem;display:flex}}@media (prefers-color-scheme:dark){@keyframes blur{0%{border:0}to{backdrop-filter:blur(20px);background:#0000004d;border-width:1px;border-color:#000;border-radius:9999px;flex-direction:row;align-items:center;padding:.25rem .75rem;display:flex;box-shadow:0 5px 50px -5px #0000001a,0 0 0 1px #0000004d}}}
