:root{--paper:#fcfbf7;--float:#f4f1e8;--ink:#1b1a16;--ink-soft:#57544c;--ink-faint:#7e7a6c;--rule:#dad5c8;--cite:#9e2b25;--measure:34rem;--measure-wide:52rem;--fs-body:1.0625rem;--lh-body:1.62;--serif:"STIX Two Text", "Times New Roman", Times, serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#16150f;--float:#201e17;--ink:#eae6db;--ink-soft:#a6a092;--ink-faint:#787264;--rule:#35322a;--cite:#e58a80}}:root[data-theme=dark]{--paper:#16150f;--float:#201e17;--ink:#eae6db;--ink-soft:#a6a092;--ink-faint:#787264;--rule:#35322a;--cite:#e58a80}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:clamp(1.5rem,4vw,3rem) 1.25rem 3rem}.sheet{max-width:var(--measure);flex-direction:column;gap:1.55rem;margin:0 auto;display:flex}.sheet.wide{max-width:var(--measure-wide)}a{color:var(--cite);text-underline-offset:.16em;text-decoration-thickness:.06em}a:focus-visible{outline:2px solid var(--cite);outline-offset:3px;border-radius:2px}.toc{max-width:var(--measure-wide);width:100%;margin:0 auto clamp(2rem,5vw,3.25rem)}.toc-head{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .65rem;font-size:.66rem}.toc ol{flex-direction:column;gap:.16rem;margin:0;padding:0;list-style:none;display:flex}.toc li{align-items:baseline;gap:.5rem;display:flex}.toc .n{font-variant-numeric:tabular-nums;color:var(--ink-faint);flex:none;min-width:1.1em;font-size:.9rem}.toc a{color:var(--ink);flex:none;font-size:.96rem;text-decoration:none}.toc a:hover{text-decoration:underline}.toc .dots{border-bottom:1px dotted var(--rule);flex:1;min-width:1.5rem;transform:translateY(-.22em)}.toc .pg{font-family:var(--mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;flex:none;font-size:.72rem}.toc li[aria-current=page] a{color:var(--cite);font-weight:600}.toc li[aria-current=page] .n{color:var(--cite)}.toc-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.langs{align-items:baseline;gap:.15rem;display:flex}.langs a{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);border:1px solid #0000;padding:.15rem .35rem;font-size:.7rem;text-decoration:none}.langs a:hover{color:var(--ink)}.langs a[aria-current=true]{color:var(--ink);border-color:var(--rule);background:var(--float)}.titleblock{text-align:center;flex-direction:column;gap:.85rem;margin-bottom:.5rem;display:flex}.doc-class{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.7rem}h1{letter-spacing:-.012em;text-wrap:balance;margin:0;font-size:clamp(1.65rem,5vw,2.3rem);font-weight:600;line-height:1.22}.authorline{margin:0;font-size:1.02rem}.affil{color:var(--ink-soft);margin:0;font-size:.9rem;font-style:italic;line-height:1.5}.datestamp{font-family:var(--mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:.74rem}.abstract{flex-direction:column;gap:.6rem;max-width:30rem;margin:.4rem auto 0;padding:0 clamp(0rem,4vw,2.1rem);display:flex}.abstract h2{letter-spacing:.06em;text-transform:uppercase;text-align:center;color:var(--ink-soft);margin:0;font-size:.82rem;font-weight:600}.abstract p{text-align:justify;hyphens:auto;margin:0;font-size:.945rem;line-height:1.58}.keywords{margin:0;font-size:.9rem}.keywords b{font-weight:600}.keywords i{color:var(--ink-soft)}hr.rule{border:0;border-top:1px solid var(--rule);width:100%;margin:.5rem 0}section{flex-direction:column;gap:.85rem;display:flex}h2.sec,h3.subsec,h4.subsec{text-wrap:balance;gap:.62em;margin:.9rem 0 0;scroll-margin-top:1.5rem;line-height:1.3;display:flex}h2.sec{font-size:1.2rem;font-weight:700}h3.subsec{font-size:1.03rem;font-weight:600}h4.subsec{color:var(--ink-soft);font-size:.93rem;font-weight:600}.num{font-variant-numeric:tabular-nums;color:var(--ink-soft);flex:none}p.body{text-align:justify;hyphens:auto;margin:0}p.body+p.body{text-indent:1.4em}.cite{font-variant-numeric:tabular-nums;white-space:nowrap;text-decoration:none}.cite:hover{text-decoration:underline}.float{background:var(--float);border-top:1.6px solid var(--ink);border-bottom:1.6px solid var(--ink);margin:.35rem 0;padding:.75rem .9rem .85rem;overflow-x:auto}.float table{border-collapse:collapse;width:100%;font-size:.87rem}.float caption{caption-side:top;text-align:left;color:var(--ink-soft);padding-bottom:.5rem;font-size:.82rem;line-height:1.45}.float caption b{color:var(--ink);font-weight:600}.float th{text-align:left;color:var(--ink-soft);white-space:nowrap;vertical-align:top;border-bottom:1px solid var(--rule);padding:.3rem 1rem .3rem 0;font-style:italic;font-weight:400}.float td{vertical-align:top;border-bottom:1px solid var(--rule);padding:.3rem 0}.float tr:last-child th,.float tr:last-child td{border-bottom:0}.mono{font-family:var(--mono);font-size:.88em}figure{flex-direction:column;gap:.6rem;margin:0;display:flex}figure img{width:100%;height:auto;display:block}figcaption{color:var(--ink-soft);text-align:justify;hyphens:auto;font-size:.85rem;line-height:1.5}figcaption b{color:var(--ink);font-weight:600}.grid{grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:2rem 1.75rem;margin:0;padding:0;list-style:none;display:grid}.card{flex-direction:column;gap:.55rem;margin:0;display:flex}.card-frame{border:1px solid var(--rule);background:var(--float);aspect-ratio:16/9;place-items:center;display:grid;overflow:hidden}.card-frame img{object-fit:cover;width:100%;height:100%}.card h3{margin:0;font-size:1.02rem;font-weight:600;line-height:1.32}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--cite);text-decoration:underline}.card .meta{font-family:var(--mono);letter-spacing:.05em;color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.7rem}.card p{color:var(--ink-soft);margin:0;font-size:.88rem;line-height:1.5}.card .tags{color:var(--ink-soft);font-size:.8rem;font-style:italic}ol.refs{flex-direction:column;gap:.75rem;margin:0;padding:0;font-size:.885rem;line-height:1.5;list-style:none;display:flex}ol.refs li{color:var(--ink-soft);grid-template-columns:2.3rem 1fr;display:grid}ol.refs .tag{font-variant-numeric:tabular-nums;color:var(--ink-faint)}ol.refs i{color:var(--ink);font-style:italic}ol.refs .kind{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--rule);white-space:nowrap;margin-left:.4rem;padding:.05rem .3rem;font-size:.64rem}.cv-entry{border-bottom:1px solid var(--rule);grid-template-columns:8.5rem 1fr;gap:.35rem 1.25rem;padding:.8rem 0;display:grid}.cv-entry:last-child{border-bottom:0}.cv-when{font-family:var(--mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:.22rem;font-size:.74rem;line-height:1.5}.cv-what{flex-direction:column;gap:.3rem;display:flex}.cv-what h3{margin:0;font-size:1rem;font-weight:600;line-height:1.35}.cv-where{color:var(--ink-soft);font-size:.9rem;font-style:italic}.cv-what p{text-align:justify;hyphens:auto;margin:0;font-size:.9rem;line-height:1.55}.itemize{flex-direction:column;gap:.45rem;margin:.15rem 0 0;padding:0;list-style:none;display:flex}.itemize li{grid-template-columns:1rem 1fr;font-size:.88rem;line-height:1.5;display:grid}.itemize li:before{content:"—";color:var(--ink-faint)}.itemize b{font-weight:600}.itemize .when{font-family:var(--mono);color:var(--ink-faint);font-size:.72rem}.cols{columns:2;color:var(--ink-soft);column-gap:2rem;margin:0;padding:0;font-size:.88rem;line-height:1.55;list-style:none}.cols li{break-inside:avoid;margin-bottom:.35rem}.foot{max-width:var(--measure-wide);border-top:1px solid var(--rule);width:100%;font-family:var(--mono);letter-spacing:.05em;color:var(--ink-faint);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:1rem;margin:2.75rem auto 0;padding-top:.7rem;font-size:.7rem;display:flex}.foot a{color:var(--ink-faint);text-decoration:none}.foot a:hover{color:var(--ink);text-decoration:underline}.foot .links{flex-wrap:wrap;gap:.9rem;display:flex}@media (width<=640px){p.body,.abstract p,figcaption,.cv-what p{text-align:left}p.body+p.body{text-indent:0}.abstract{padding:0}.cv-entry{grid-template-columns:1fr;gap:.3rem}.cv-when{padding-top:0}.cols{columns:1}.toc-bar{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
