.reading-progress{background:var(--track);z-index:20;pointer-events:none;height:4px;position:fixed;top:0;left:0;right:0}.reading-progress__bar{background:var(--bar);transform-origin:0;height:100%;transform:scaleX(0)}.year-group+.year-group{margin-top:2.75rem}.year-group__heading{border-bottom:1px solid var(--rule);font:500 .8125rem var(--sans);letter-spacing:.06em;color:var(--muted);margin:0 0 .9rem;padding-bottom:.6rem}.post-rows,.post-row__tags,.project-expander__list{margin:0;padding:0;list-style:none}.post-row{padding-block:.85rem}.post-row+.post-row{border-top:1px solid var(--rule)}.post-row__main{align-items:baseline;gap:.6rem;display:flex}.post-row__icon{color:var(--muted);flex:none;align-self:center;display:inline-flex}.post-row__title{font:500 1.05rem/1.4 var(--serif);color:var(--heading);text-underline-offset:.2em;text-decoration:none;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line)}.post-row__title:hover{text-decoration:underline}.post-row__meta{font:400 .8125rem/1.5 var(--sans);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:.15rem .9rem;margin-top:.3rem;display:flex}.post-row__tags{flex-wrap:wrap;gap:0 .7rem;display:inline-flex}.post-row__tags a,.post-taxonomy a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em;text-decoration-thickness:1px}.post-row__tags a:hover,.post-taxonomy a:hover{color:var(--heading);text-decoration-color:currentColor}.project-expander{font:400 .8125rem/1.5 var(--sans);color:var(--muted);margin-top:.45rem}.project-expander summary{cursor:pointer;align-items:baseline;gap:.5rem;list-style:none;display:inline-flex}.project-expander summary::-webkit-details-marker{display:none}.project-expander summary:before{content:"▸";width:.9em;font-size:.85em;display:inline-block}.project-expander[open]>summary:before{content:"▾"}.project-expander summary:hover .project-expander__label{color:var(--text)}.project-expander__count{color:var(--muted)}.project-expander__list{margin-top:.4rem;padding-left:1.4rem}.project-expander__list li{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 1rem;padding-block:.2rem;display:flex}.project-expander__list a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em;text-decoration-thickness:1px}.project-expander__list a:hover{text-decoration-color:currentColor}.project-expander__current{color:var(--heading);font-weight:500}.project-expander__list time{color:var(--muted)}.post-header{margin-bottom:2.4rem}.post-meta{font:400 .8125rem/1.5 var(--sans);color:var(--muted);flex-wrap:wrap;gap:.15rem .9rem;display:flex}.post-title{font:600 2rem/1.2 var(--serif);letter-spacing:-.01em;color:var(--heading);text-wrap:balance;margin:.5rem 0 0}.post-excerpt{color:var(--quote);margin:.9rem 0 0;font-style:italic;line-height:1.6}.post-taxonomy{font:400 .8125rem/1.5 var(--sans);color:var(--muted);flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:2.5rem;display:flex}.post-taxonomy ul{flex-wrap:wrap;gap:0 .7rem;margin:0;padding:0;list-style:none;display:inline-flex}.post-nav{border-top:1px solid var(--rule);font:400 .8125rem/1.5 var(--sans);color:var(--muted);justify-content:space-between;gap:1.5rem;margin-top:2.5rem;padding-top:1.1rem;display:flex}.post-nav a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em;text-decoration-thickness:1px;display:block}.post-nav a:hover{text-decoration-color:currentColor}.post-nav__next{text-align:right;margin-left:auto}.comments{margin-top:3rem}.comments__heading{border-bottom:1px solid var(--rule);font:500 .8125rem var(--sans);letter-spacing:.06em;color:var(--muted);margin:0 0 .9rem;padding-bottom:.6rem}.comments__note{font:400 .8125rem/1.5 var(--sans);color:var(--muted);margin:1.25rem 0 0}.comments__host{min-height:12rem}@media (max-width:640px){.post-title{font-size:1.7rem}}.writing-empty{font:400 .9375rem/1.6 var(--sans);color:var(--muted);margin-top:1.5rem}.writing-index .post-title{margin-bottom:2rem}.topic-kind{font:500 .75rem/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0}.topic-kind+.post-title{margin-top:.15rem}.post-status{border:1px dashed var(--rule);font:400 .8125rem/1.5 var(--sans);color:var(--muted);border-radius:4px;margin:0 0 1.6rem;padding:.55rem .8rem}.studio-summary,.studio-help{font:400 .875rem/1.6 var(--sans);color:var(--muted);margin:.9rem 0 0}.studio code{background:var(--code-bg);border-radius:3px;padding:.05rem .3rem;font-size:.8125rem}.studio-section{margin-top:2.4rem}.studio-section h2{border-bottom:1px solid var(--rule);font:600 1.05rem/1.3 var(--serif);color:var(--heading);margin:0 0 .6rem;padding-bottom:.4rem}.studio-list{margin:0;padding:0;list-style:none}.studio-row{padding:.6rem 0}.studio-row a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em}.studio-row__meta{font:400 .8125rem/1.5 var(--sans);color:var(--muted);flex-wrap:wrap;gap:.15rem .9rem;margin-top:.2rem;display:flex}.studio-row__meta code{overflow-wrap:anywhere}.studio-empty{font:400 .875rem/1.6 var(--sans);color:var(--muted);margin:0}.home{font-size:1.125rem;line-height:1.78}.home__intro{margin:0}.portrait{margin-bottom:1.25rem}.portrait__img{width:176px;height:176px;box-shadow:0 0 0 1px var(--rule), 0 0 0 5px var(--page), 0 0 0 6px var(--rule);border-radius:50%;display:block}.portrait__img--dark,:root[data-theme=dark] .portrait__img--light,[data-theme=dark] .portrait__img--light{display:none}[data-theme=dark] .portrait__img--dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .portrait__img--light{display:none}:root:not([data-theme=light]) .portrait__img--dark{display:block}}.home__side{font-size:1rem;line-height:1.65}.home__name{letter-spacing:-.01em;color:var(--heading);margin:0;font-size:1.375rem;font-weight:600;line-height:1.3}.home__location{font:400 .875rem var(--sans);color:var(--muted);margin:.25rem 0 1.25rem}.home__bio p{margin:0 0 .75rem}.home__lead{color:var(--heading);font-size:1.0625rem;font-weight:600;line-height:1.6}.home__bio .home__quiet{color:var(--muted);font-size:.9375rem}.home__socials{gap:.125rem;margin:.25rem 0 0 -.625rem;padding:0;list-style:none;display:flex}.home__socials a{width:2.5rem;height:2.5rem;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.home__socials a:hover,.home__socials a:focus-visible{color:var(--text)}.home__interests{color:var(--muted)}.home__interests>span{font:400 .875rem var(--sans);margin-bottom:.625rem;display:block}.home__interests ul{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.home__interests a{font:400 .875rem var(--sans);color:var(--text);border:1px solid var(--rule);border-radius:999px;padding:.0625rem .75rem;line-height:1.6;text-decoration:none;display:inline-block}.home__interests a:hover{border-color:var(--muted)}.home__count{color:var(--muted);margin-left:.125rem}.latest{margin-top:2.6rem}.latest h2{color:var(--heading);margin:0 0 .75rem;font-size:1.3rem;font-weight:600;line-height:1.3}.latest__list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.latest__list li{border-bottom:1px solid var(--rule)}.latest__row{color:inherit;grid-template-columns:1fr auto;column-gap:1.5rem;padding:.875rem 0;text-decoration:none;display:grid}.latest__title{color:var(--text)}.latest__row:hover .latest__title{text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em}.latest__detail{font:400 .875rem var(--sans);color:var(--muted);grid-column:1}.latest__row time{font:400 .8125rem var(--sans);color:var(--muted);white-space:nowrap;grid-area:1/2;padding-top:.2rem}.latest__empty{color:var(--muted);margin:0}.home__links{font:400 .9375rem var(--sans);color:var(--muted);gap:1.5rem;margin:1rem 0 0;display:flex}.home__links a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.2em;text-decoration-thickness:1px}.home__links a:hover{color:var(--text);text-decoration-color:currentColor}.home__main{min-width:0}@media (min-width:56.3125em){.home{grid-template-columns:19rem minmax(0,1fr);display:grid}.home__side{flex-direction:column;gap:2rem;padding-right:2.5rem;display:flex}.home__main{border-left:1px solid var(--rule);padding-left:3rem}.home__main .title__line{font-size:2.75rem}.home__intro{margin-bottom:3.25rem}.home__main .latest{margin-top:0}}@media (min-width:56.3125em) and (min-height:52rem){.home__side{align-self:start;position:sticky;top:2rem}}@media (max-width:56.25em){.home,.home__side{flex-direction:column;gap:2.25rem;display:flex}.home__identity{grid-template-columns:auto 1fr;align-items:center;column-gap:1.1rem;display:grid}.home__identity .portrait{grid-row:1/span 2}.home__identity .home__name{align-self:end}.home__identity .home__location{align-self:start;margin-bottom:0}.home__identity .home__bio,.home__identity .home__socials{grid-column:1/-1}.home__identity .home__bio{margin-top:1.5rem}.portrait__img{width:96px;height:96px}.home__main .latest{margin-top:2.25rem}}.title{position:relative}.title__line{--ins-w:3.78em;letter-spacing:-.02em;color:var(--heading);white-space:nowrap;margin:0;font-size:2.3rem;font-weight:600;line-height:1.12}.title__before,.title__ins,.title__after{display:inline-block}.title__ins{position:relative}.title__after{animation:title-after-in .9s var(--ease-weight,cubic-bezier(.22, 1, .36, 1)) .7s both;font-style:italic;font-weight:400}.title__word{font:inherit;letter-spacing:inherit;color:inherit;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:.13em;animation:title-word-in .8s var(--ease-weight,cubic-bezier(.22, 1, .36, 1)) .7s both, title-word-hint 1.4s ease 2.7s 2;background:0 0;border:0;padding:0;text-decoration-thickness:2px}.title__word:hover,.title__word[data-open=true]{-webkit-text-decoration-color:var(--heading);-webkit-text-decoration-color:var(--heading);-webkit-text-decoration-color:var(--heading);text-decoration-color:var(--heading)}.title__caret{width:.5em;height:.32em;color:var(--heading);pointer-events:none;margin-left:-.25em;animation:1.9s linear .7s both title-caret-fade;position:absolute;bottom:-.36em;left:50%;overflow:visible}.title__caret path{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;animation:.5s .7s both title-caret-draw}@keyframes title-after-in{0%{transform:translateX(calc(var(--ins-w) * -1))}to{transform:none}}@keyframes title-word-in{0%{opacity:0;transform:translateY(.3em)}to{opacity:1;transform:none}}@keyframes title-word-hint{0%,to{-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line)}50%{-webkit-text-decoration-color:var(--heading);-webkit-text-decoration-color:var(--heading);-webkit-text-decoration-color:var(--heading);text-decoration-color:var(--heading)}}@keyframes title-caret-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes title-caret-fade{0%,63%{opacity:1}to{opacity:0}}.entry{z-index:5;letter-spacing:0;white-space:normal;width:min(21rem,100vw - 2.5rem);color:var(--text);background:var(--card);border:1px solid var(--rule);box-shadow:0 10px 30px var(--shadow);visibility:hidden;opacity:0;transition:opacity var(--duration-hover,.14s) ease, transform var(--duration-hover,.14s) ease, visibility 0s var(--duration-hover,.14s);border-radius:10px;outline:none;padding:1rem 1.125rem .875rem;font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + .75rem);left:0;transform:translateY(-4px)}.entry[data-open=true]{visibility:visible;opacity:1;transition:opacity var(--duration-hover,.14s) ease, transform var(--duration-hover,.14s) ease;transform:none}.entry:before{content:"";top:-6px;left:clamp(12px, calc(var(--pointer-x,24px) - 5px), calc(100% - 22px));background:var(--card);border-top:1px solid var(--rule);border-left:1px solid var(--rule);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.entry__word{color:var(--heading);margin:0;font-size:1.3rem;font-weight:600;line-height:1.2}.entry__pron{color:var(--muted);margin-left:.4rem;font-family:system-ui,sans-serif;font-size:.85rem;font-weight:400}.entry__pos{color:var(--muted);margin:.25rem 0 .375rem;font-style:italic}.entry__senses{margin:0;padding-left:1.2rem;list-style:decimal}.entry__senses li+li{margin-top:.375rem}.entry__example{color:var(--muted);font-style:italic}.entry__origin{color:var(--muted);border-top:1px solid var(--rule);margin:.75rem 0 0;padding-top:.625rem;font-size:.875rem}.entry__origin b{color:var(--text);margin-right:.25rem;font-weight:600}@media (max-width:640px){.title__line{font-size:2rem}}@media (prefers-reduced-motion:reduce){.title__after,.title__word,.title__caret,.title__caret path{animation:none}.title__caret{display:none}.entry{transition:none}}:root{--ease-weight:cubic-bezier(.22, 1, .36, 1);--ease-fade:cubic-bezier(.45, 0, .25, 1);--ease-spring:linear(0, .233, .573, .81, .934, .987, 1.004, 1.006, 1.004, 1.002, 1.001, 1, 1);--duration-hover:calc(.14s * var(--motion-scale,1));--duration-expander:calc(.24s * var(--motion-scale,1));--duration-theme:calc(.2s * var(--motion-scale,1));--duration-page:calc(.42s * var(--motion-scale,1));--duration-bar:calc(.36s * var(--motion-scale,1))}@media (prefers-reduced-motion:no-preference){[data-motion=ready],[data-motion=ready] body{transition:background-color var(--duration-theme) var(--ease-weight), color var(--duration-theme) var(--ease-weight)}[data-motion=ready] .prose a,[data-motion=ready] .post-row__title,[data-motion=ready] .project-expander__list a,[data-motion=ready] .post-row__tags a,[data-motion=ready] .post-taxonomy a,[data-motion=ready] .post-nav a,[data-motion=ready] .site-header a,[data-motion=ready] .theme-toggle{transition:color var(--duration-hover) var(--ease-weight), text-decoration-color var(--duration-hover) var(--ease-weight)}@supports selector(::details-content){[data-motion=ready] .project-expander{interpolate-size:allow-keywords}[data-motion=ready] .project-expander::details-content{opacity:0;block-size:0;transition:opacity var(--duration-expander) var(--ease-weight), block-size var(--duration-expander) var(--ease-weight), content-visibility var(--duration-expander) allow-discrete;overflow:clip}[data-motion=ready] .project-expander[open]::details-content{opacity:1;block-size:auto}}[data-motion=ready]::view-transition-old(root){animation-duration:var(--duration-page);animation-timing-function:var(--ease-weight)}[data-motion=ready]::view-transition-new(root){animation-duration:var(--duration-page);animation-timing-function:var(--ease-weight)}[data-motion=ready]::view-transition-group(root){animation-duration:var(--duration-page);animation-timing-function:var(--ease-weight)}[data-motion=ready]{view-transition-name:root!important}[data-motion=ready]::view-transition-old(root){animation:page-fade-out var(--duration-page) var(--ease-fade) both;mix-blend-mode:plus-lighter}[data-motion=ready]::view-transition-new(root){animation:page-fade-in var(--duration-page) var(--ease-fade) both;mix-blend-mode:plus-lighter}@keyframes page-fade-out{to{opacity:0}}@keyframes page-fade-in{0%{opacity:0}}[data-motion=ready][data-crossfade=off]::view-transition-old(root){animation-duration:0s}[data-motion=ready][data-crossfade=off]::view-transition-new(root){animation-duration:0s}[data-motion=ready][data-crossfade=off]::view-transition-group(root){animation-duration:0s}[data-motion=ready][data-crossfade=off]::view-transition-old(reading-progress){animation-duration:0s}[data-motion=ready][data-crossfade=off]::view-transition-new(reading-progress){animation-duration:0s}[data-motion=ready]::view-transition{pointer-events:none}[data-motion=ready] .site-shell{view-transition-name:none!important}[data-motion=ready] .site-name{view-transition-name:site-name}[data-motion=ready] .site-header nav{view-transition-name:site-nav}[data-motion=ready]::view-transition-group(site-name){animation-duration:var(--duration-page);animation-timing-function:var(--ease-weight)}[data-motion=ready]::view-transition-group(site-nav){animation-duration:var(--duration-page);animation-timing-function:var(--ease-weight)}[data-motion=ready]::view-transition-old(site-name){display:none}[data-motion=ready]::view-transition-old(site-nav){display:none}[data-motion=ready]::view-transition-new(site-name){animation:none}[data-motion=ready]::view-transition-new(site-nav){animation:none}[data-motion=ready][data-crossfade=off]::view-transition-group(site-name){animation-duration:0s}[data-motion=ready][data-crossfade=off]::view-transition-group(site-nav){animation-duration:0s}[data-motion=ready] .reading-progress{view-transition-name:reading-progress}[data-motion=ready]::view-transition-group(reading-progress){animation:none}[data-motion=ready]::view-transition-old(reading-progress){transform-origin:0;animation:reading-progress-out var(--duration-bar) var(--ease-weight) both}[data-motion=ready]::view-transition-new(reading-progress){transform-origin:0;animation:reading-progress-in var(--duration-bar) var(--ease-weight) both}@keyframes reading-progress-out{to{transform:scaleX(0)}}@keyframes reading-progress-in{0%{transform:scaleX(0)}}}@media (prefers-reduced-motion:reduce){::view-transition-group(*){animation-duration:0s!important}::view-transition-old(*){animation-duration:0s!important}::view-transition-new(*){animation-duration:0s!important}}
