:root{--paper: #FFFFFF;--paper-2: #F4F0F6;--ink: #333333;--ink-2: #666666;--rule: #E5DFE8;--robot: #CC33FF;--robot-ink: #8F1FB8;--code-bg: #F6F3F8;--plum: #47183B;--sans: "Noto Sans", Helvetica, Arial, sans-serif;--head: "Roboto Slab", Helvetica, Arial, serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--measure: 40rem;--gutter: clamp(1rem, 4vw, 3rem)}@media(prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #1B1320;--paper-2: #26192D;--ink: #E8E3EB;--ink-2: #A99FAE;--rule: #3A2C42;--robot-ink: #E08BFF;--code-bg: #26192D;color-scheme:dark}}:root[data-theme=dark]{--paper: #1B1320;--paper-2: #26192D;--ink: #E8E3EB;--ink-2: #A99FAE;--rule: #3A2C42;--robot-ink: #E08BFF;--code-bg: #26192D;color-scheme:dark}:root[data-theme=light]{color-scheme:light}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.7 var(--sans)}img,video,iframe,canvas{max-width:100%}img,video{height:auto}a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--robot);text-decoration-thickness:.18em;text-underline-offset:.2em;text-decoration-skip-ink:none}a:hover{text-decoration-thickness:.4em}:focus-visible{outline:3px solid var(--robot);outline-offset:3px;border-radius:2px}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;top:.5rem;left:.5rem;z-index:2;background:var(--paper);padding:.5rem 1rem}.bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 2rem;padding:1.25rem var(--gutter);font-family:var(--sans)}.bar{color:#fff;background:var(--plum) center/cover no-repeat;background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.3)),url(/assets/img/triangle_bg-min_l.webp)}.bar a,.bar p{text-shadow:rgba(0,0,0,.25) .1rem .1rem .15rem}.bar-name{display:flex;align-items:center;gap:.6rem;font:700 1.25rem var(--head);text-decoration:none}.bar-logo{width:2.25rem;height:2.25rem;border-radius:50%;background:#fff}.bar-tagline{display:none;margin:0}.bar-social{display:none;margin:0}.bar-social a{display:grid;place-items:center;flex:0 1 2.25rem;min-width:0;height:2.25rem}.bar-social svg{width:1.35rem;height:1.35rem;fill:currentColor;filter:drop-shadow(rgba(0, 0, 0, 0.25) 0.1rem 0.1rem 0.15rem)}.bar-social a:hover svg{opacity:.75}.bar nav{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;margin-left:auto}.bar nav a{text-decoration:none;font-size:1rem;padding:.25rem 0}.theme-toggle{align-self:center;display:grid;place-items:center;width:2.25rem;height:2.25rem;margin:-0.5rem -0.5rem -0.5rem 0;padding:0;border:0;background:none;color:inherit;cursor:pointer}.theme-toggle svg{width:1.25rem;height:1.25rem}.menu-toggle{display:none}@media(max-width: 40rem){.bar{align-items:center;gap:0 .75rem;padding-top:.75rem;padding-bottom:.75rem}.theme-toggle{margin:0 0 0 auto}.menu-toggle{display:grid;place-items:center;width:2.75rem;height:2.75rem;margin-right:-0.6rem;padding:0;border:0;background:none;color:inherit;cursor:pointer}.menu-toggle svg{width:1.4rem;height:1.4rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.menu-toggle .cross,.menu-toggle[aria-expanded=true] .bars{display:none}.menu-toggle[aria-expanded=true] .cross{display:inline}.bar nav{order:5;flex-basis:100%;flex-direction:column;gap:0;margin:.5rem 0 0}.js .bar nav{display:none}.js .bar.open nav{display:flex}.bar nav a{font-size:1.125rem;padding:.8rem 0;border-top:1px solid rgba(255,255,255,.3)}}@media(min-width: 40.01rem){.theme-toggle{margin-left:.5rem}}.theme-toggle:hover svg{opacity:.75}.bar nav a:hover,.bar nav a[aria-current]{text-decoration:underline;text-decoration-color:#fff;text-decoration-thickness:.12em;text-underline-offset:.35em}@media(min-width: 64rem){body{padding-left:21rem}.bar{position:fixed;inset:0 auto 0 0;width:21rem;overflow-y:auto;flex-direction:column;flex-wrap:nowrap;align-items:center;justify-content:center;text-align:center;gap:1.25rem;padding:3rem;background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.3)),url(/assets/img/triangle_bg-min.webp)}.bar-name{flex-direction:column;align-items:center;gap:1.25rem;font-size:2rem;line-height:1.1}.bar-logo{width:7rem;height:7rem}.bar-tagline{display:block;font-size:1.0625rem;opacity:.9}.bar-social{display:flex;align-self:stretch;justify-content:center}.bar nav{flex-direction:column;align-items:center;gap:.35rem;margin:0}.bar nav a{font-size:1.125rem}.theme-toggle{position:fixed;top:1rem;right:1rem;z-index:1;margin:0;width:3rem;height:3rem;color:var(--ink)}.theme-toggle svg{width:1.9rem;height:1.9rem}}main{padding:0 var(--gutter)}h1,h2,h3,h4{font-family:var(--head);line-height:1.12;text-wrap:balance}.hero{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);align-items:end;gap:2rem;max-width:76rem;margin:0 auto;padding:clamp(1rem,6vh,4rem) 0 1rem}.hero h1{font-size:clamp(3rem,8.5vw,6.5rem);font-weight:800;line-height:.92;letter-spacing:-0.02em;margin:0 0 1.5rem}.hero-lead{font:600 clamp(1.6rem, 3vw, 2.3rem)/1.3 var(--head);max-width:20em;margin:0 0 1.5rem}.about-head .meta a{padding-block:.6rem;margin-block:-0.6rem}.arm-wrap{margin:0}#arm{display:block;width:100%;aspect-ratio:16/10;touch-action:pan-y}.latest{max-width:76rem;margin:3rem auto 5rem;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr));gap:2.5rem 4rem}.latest h2{font-size:1.5rem;font-weight:700;margin:0;padding-bottom:.75rem;border-bottom:1px solid var(--rule)}.latest-list{list-style:none;margin:0;padding:0}.latest-list li{padding:1rem 0;border-bottom:1px solid var(--rule)}.latest-list a{font-family:var(--sans);font-weight:600;font-size:1.125rem;line-height:1.3;text-decoration-color:rgba(0,0,0,0)}.latest-list a:hover{text-decoration-color:var(--robot)}.latest-list p{margin:.3rem 0 0;color:var(--ink-2);font-size:1rem}.latest-more{font-family:var(--sans);margin:1rem 0 0}.archive{max-width:76rem;margin:0 auto 4rem}.year{display:grid;grid-template-columns:9rem minmax(0, 1fr);gap:0 2rem;border-top:1px solid var(--rule);padding-top:1rem;margin-top:1rem}.year-num{margin:0;font-size:2rem;font-weight:300;color:var(--ink-2);align-self:start;position:sticky;top:1rem}.posts{list-style:none;margin:0;padding:0}.entry{padding:1rem 0 2rem;max-width:40rem}.entry time{display:block;font-family:var(--sans);font-size:.9375rem;color:var(--ink-2);margin-bottom:.2rem}.entry h3{margin:0 0 .3rem;font-size:1.3rem;font-weight:600;max-width:34em}.entry h3 a{text-decoration-color:rgba(0,0,0,0)}.entry h3 a:hover{text-decoration-color:var(--robot)}.entry p{margin:0;color:var(--ink-2);max-width:38em;font-size:1.0625rem}.entry img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;margin:.75rem 0;background:var(--paper-2)}.entry-img:hover img{outline:3px solid var(--robot)}.pub{padding:.75rem 0 1.5rem;max-width:44rem}.pub h3{margin:0 0 .4rem;font-size:1.2rem;font-weight:600}.pub h3 a{text-decoration-color:rgba(0,0,0,0)}.pub h3 a:hover{text-decoration-color:var(--robot)}.pub p{margin:0}.pub-authors{color:var(--ink-2)}.pub-authors strong{color:var(--ink);font-weight:600}.pub-venue{font-style:italic;color:var(--ink-2)}.pub-note{display:inline-block;font-style:normal;font-family:var(--sans);font-size:.875rem;color:var(--robot-ink);margin-left:.5rem}.pub .pub-links{font-family:var(--sans);font-size:.9375rem;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.25rem}.pub-links a{padding:.2rem 0}.post{max-width:var(--measure);margin:0 auto 4rem}.post-head,.prose>*{max-width:min(var(--measure),100%);margin-left:auto;margin-right:auto}.post-head{padding:3rem 0 1rem}.post-head h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:750;letter-spacing:-0.01em;margin:0 0 1rem}.meta{font-family:var(--sans);font-size:.9375rem;color:var(--ink-2);margin:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.standfirst{font-size:1.35rem;line-height:1.45;font-style:italic;margin:1.5rem 0 0}.list-head{max-width:76rem}.prose h2{font-size:1.75rem;font-weight:700;margin-top:2.75rem;margin-bottom:.75rem}.prose h3{font-size:1.3rem;font-weight:650;margin-top:2rem;margin-bottom:.5rem}.prose p,.prose li{hanging-punctuation:first}.prose blockquote{border-left:3px solid var(--robot);padding-left:1.25rem;color:var(--ink-2);font-style:italic}.prose hr{border:0;border-top:1px solid var(--rule);margin:3rem auto}.prose table{border-collapse:collapse;font-family:var(--sans);font-size:1rem;display:block;overflow-x:auto}.prose th,.prose td{padding:.4rem .75rem;border-bottom:1px solid var(--rule);text-align:left}.prose{overflow-wrap:break-word}.prose img,.prose video{display:block;margin:1.5rem auto .5rem}.prose img{max-height:80vh;object-fit:contain}.image-caption,.figcaption,.prose figcaption{display:block;font-family:var(--sans);font-size:.9375rem;color:var(--ink-2);text-align:center;margin:.25rem auto 2rem}.lead{font-size:1.25rem}.centered{text-align:center}.video_container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:1.5rem auto}.video_container iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.yt{height:auto;padding:0;aspect-ratio:16/9}.yt a{position:absolute;inset:0;display:block;background:var(--ink)}.yt img{display:block;width:100%;height:100%;max-height:none;margin:0;object-fit:cover}.yt a::after{content:"";position:absolute;left:50%;top:50%;width:4.5rem;height:3.2rem;margin:-1.6rem 0 0 -2.25rem;border-radius:.9rem;background:var(--robot) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3C/svg%3E") center/1.9rem no-repeat;transition:transform .15s}.yt a:hover::after,.yt a:focus-visible::after{transform:scale(1.08)}.myButton{display:block;margin:1.5rem auto;font:600 1rem var(--sans);color:#fff;background:#8f1fb8;border:0;padding:.7rem 1.4rem;cursor:pointer}.myButton:hover{background:var(--ink);color:var(--paper)}.mobile-only{display:none}@media(max-width: 40rem){.mobile-only{display:block}.desktop-only{display:none}}code,pre{font-family:var(--mono);font-size:.875em}:not(pre)>code{background:var(--code-bg);padding:.1em .3em;border-radius:3px;overflow-wrap:anywhere}pre{background:var(--code-bg);padding:1rem 1.25rem;overflow-x:auto;line-height:1.5;border-left:3px solid var(--robot)}.highlight .c,.highlight .c1,.highlight .cm{color:var(--ink-2);font-style:italic}.highlight .k,.highlight .kn,.highlight .kd,.highlight .ow{font-weight:700}.highlight .s,.highlight .s1,.highlight .s2{color:var(--robot-ink)}.highlight .mi,.highlight .mf{color:var(--robot-ink)}.about-head{display:flex;align-items:center;gap:1.75rem}.about-head h1{margin:0 0 .5rem}.portrait{width:8rem;height:8rem;border-radius:50%;object-fit:cover;flex:none}.related{max-width:var(--measure);margin:3rem auto 0;border-top:1px solid var(--rule);padding-top:1.5rem}.related h2{font-family:var(--sans);font-size:1rem;font-weight:600;margin:0 0 .75rem}.related ul{margin:0;padding-left:1.1rem}.related li{margin-bottom:.5rem}.related .pub-venue{font-size:.9375rem}.pager{max-width:var(--measure);margin:4rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid var(--rule);padding-top:1.5rem;font-family:var(--sans)}.pager a{text-decoration:none;font-weight:600;line-height:1.3}.pager a:hover{text-decoration:underline;text-decoration-color:var(--robot)}.pager span{display:block;font-weight:400;font-size:.875rem;color:var(--ink-2);margin-bottom:.25rem}.pager .newer{grid-column:2;text-align:right}.foot{padding:2rem var(--gutter) 3rem;font-family:var(--sans);font-size:.9375rem;color:var(--ink-2);border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem}.foot p{margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}@media(max-width: 52rem){.hero{grid-template-columns:1fr;min-height:0;padding-top:1rem}.year{grid-template-columns:1fr}.year-num{position:static;font-size:1.5rem;margin-bottom:.25rem}}@media(max-width: 36rem){.about-head{flex-direction:column;align-items:flex-start}.portrait{align-self:center}.pager{grid-template-columns:1fr}.pager .newer{grid-column:1;text-align:left}}picture{display:contents}picture>source{display:none}.fade-pending{opacity:0}.fade-in-visible{animation:fade-in .8s cubic-bezier(0.33, 0, 0.66, 1) forwards}@keyframes fade-in{from{opacity:0;transform:scale(0.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion: reduce){.fade-pending{opacity:1}.fade-in-visible{animation:none}}@media(min-width: 64rem){.hero{padding:1rem 0 0;align-items:center}#arm{aspect-ratio:2/1}.latest{margin-top:1.5rem}}/*# sourceMappingURL=site.css.map */