@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-opsz-normal.BjhtXyW2.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-opsz-normal.BQn1nviT.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-opsz-normal.s-izfB6B.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Funnel Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/funnel-sans-latin-ext-wght-normal.CStSwzyf.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,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:Funnel Sans Variable;font-style:normal;font-display:swap;font-weight:300 800;src:url(/_astro/funnel-sans-latin-wght-normal.zzU05adE.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-title:clamp(1.625rem, 1.15rem + 1.9vw, 3rem);--text-section:clamp(2rem, 1.3rem + 2.6vw, 3.5rem);--text-display-s:clamp(2.5rem, 1.5rem + 4vw, 4.75rem);--text-display:clamp(2.5rem, 1.3rem + 4.6vw, 5.25rem);--text-lead:clamp(1.125rem, 1rem + .4vw, 1.375rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--container:1320px;--gutter:48px;--gap-columns:32px;--section-gap:160px;--section-gap-s:112px;--z-base:1;--z-raised:10;--z-sticky-nav:300;--z-tooltip:600;--font-display:"Newsreader Variable", "Newsreader", ui-serif, Georgia, serif;--font-body:"Funnel Sans Variable", "Funnel Sans", ui-sans-serif, system-ui, sans-serif;--radius-s:2px;--radius-m:4px;--radius-pill:999px;--rule-hair:1px;color-scheme:light;--color-paper:oklch(99.6% .002 268);--color-paper-2:oklch(96.8% .003 268);--color-ink:oklch(14% .006 268);--color-ink-2:oklch(32% .006 268);--color-muted:oklch(47% .006 268);--color-rule:oklch(87% .004 268);--color-rule-strong:oklch(14% .006 268);--color-accent:oklch(51.5% .27 267.6);--color-accent-text:oklch(51.5% .27 267.6);--color-accent-ink:oklch(99.6% .002 268);--color-focus:oklch(51.5% .27 267.6);--color-img-edge:oklch(0% 0 0/.1);--color-shade:oklch(14% .006 268/.18)}:root[data-theme=dark]{color-scheme:dark;--color-paper:oklch(11.5% .004 268);--color-paper-2:oklch(16.5% .005 268);--color-ink:oklch(97% .003 268);--color-ink-2:oklch(84% .004 268);--color-muted:oklch(69% .004 268);--color-rule:oklch(27% .005 268);--color-rule-strong:oklch(97% .003 268);--color-accent:oklch(51.5% .27 267.6);--color-accent-text:oklch(72% .15 272);--color-accent-ink:oklch(99.6% .002 268);--color-focus:oklch(72% .15 272);--color-img-edge:oklch(100% 0 0/.1);--color-shade:oklch(0% 0 0/.5)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-paper:oklch(11.5% .004 268);--color-paper-2:oklch(16.5% .005 268);--color-ink:oklch(97% .003 268);--color-ink-2:oklch(84% .004 268);--color-muted:oklch(69% .004 268);--color-rule:oklch(27% .005 268);--color-rule-strong:oklch(97% .003 268);--color-accent:oklch(51.5% .27 267.6);--color-accent-text:oklch(72% .15 272);--color-accent-ink:oklch(99.6% .002 268);--color-focus:oklch(72% .15 272);--color-img-edge:oklch(100% 0 0/.1);--color-shade:oklch(0% 0 0/.5)}}@media (width<=60rem){:root{--gutter:28px;--section-gap:112px;--section-gap-s:80px;--gap-columns:24px}}@media (width<=40rem){:root{--gutter:20px;--section-gap:88px;--section-gap-s:64px;--gap-columns:16px}}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-padding-top:var(--space-3xl);-webkit-text-size-adjust:100%;scrollbar-color:var(--color-muted) var(--color-paper)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;caret-color:var(--color-accent);font-synthesis:none;margin:0;font-weight:400;line-height:1.6}:lang(de){hyphens:auto}::selection{background:var(--color-accent);color:var(--color-accent-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-s)}a{color:inherit;text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--color-rule);transition:color var(--dur-micro) var(--ease-out), text-decoration-color var(--dur-micro) var(--ease-out)}a:hover{color:var(--color-accent-text);text-decoration-color:currentColor}h1,h2,h3,h4{font-family:var(--font-display);overflow-wrap:break-word;text-wrap:balance;letter-spacing:-.02em;min-width:0;margin:0;font-weight:400}h3,h4{font-family:var(--font-body);letter-spacing:0;font-weight:600}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0}img{max-width:100%;height:auto;display:block}svg{display:block}button{font:inherit;color:inherit}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.section{margin-top:var(--section-gap)}.section--s{margin-top:var(--section-gap-s)}.skip-link{left:var(--gutter);z-index:var(--z-tooltip);background:var(--color-ink);color:var(--color-paper);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-m);position:absolute;top:-100px}.skip-link:focus-visible{top:var(--space-xs);color:var(--color-paper)}.mast{z-index:var(--z-sticky-nav);position:relative}.mast__bar{justify-content:space-between;align-items:center;gap:var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule);min-height:76px;display:flex}.mast__name{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;padding-block:var(--space-xs);font-size:1.375rem;text-decoration:none}.mast__name:hover{color:var(--color-ink)}.mast__nav{align-items:center;gap:var(--space-xs);display:flex}.mast__links{gap:var(--space-2xs);list-style:none;display:flex}.mast__links a,.mast__tool{min-height:44px;padding-inline:var(--space-sm);font-size:var(--text-sm);color:var(--color-ink-2);border-radius:var(--radius-m);align-items:center;text-decoration:none;display:inline-flex}.mast__links a:hover,.mast__tool:hover{color:var(--color-ink)}.mast__links a[aria-current]{color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.45em;text-decoration-thickness:2px}.mast__tools{align-items:center;gap:var(--space-2xs);padding-left:var(--space-sm);margin-left:var(--space-xs);border-left:var(--rule-hair) solid var(--color-rule);display:flex}.mast__tool{cursor:pointer;background:0 0;border:0;justify-content:center;min-width:44px}.mast__tool svg{width:18px;height:18px}.theme-icon--dark,:root[data-theme=dark] .theme-icon--light{display:none}:root[data-theme=dark] .theme-icon--dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-icon--light{display:none}:root:not([data-theme=light]) .theme-icon--dark{display:block}}.mast__menu{display:none}@media (width<=60rem){html:not(.js) .mast__nav{flex-wrap:wrap;justify-content:flex-end}.js .mast__menu{display:inline-flex}html:not(.js) .mast__links a{min-height:44px}.js .mast__links{padding:var(--space-xs) var(--gutter) var(--space-lg);background:var(--color-paper);border-bottom:var(--rule-hair) solid var(--color-rule);opacity:0;visibility:hidden;transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out), visibility 0s linear var(--dur-short);flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;transform:translateY(-6px)}.js .mast[data-open] .mast__links{opacity:1;visibility:visible;transition-delay:0s;transform:none}.js .mast__links a{font-family:var(--font-display);color:var(--color-ink);border-bottom:var(--rule-hair) solid var(--color-rule);border-radius:0;width:100%;min-height:56px;padding-inline:0;font-size:1.75rem}.mast__tools{border-left:0;margin-left:0;padding-left:0}}.actions{align-items:center;gap:var(--space-sm) var(--space-lg);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:48px;padding:0 var(--space-lg);border-radius:var(--radius-pill);font-size:var(--text-md);white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.96)}.btn--primary{background:var(--color-accent);color:var(--color-accent-ink)}.btn--primary:hover{color:var(--color-accent-ink);background:color-mix(in oklab, var(--color-accent) 86%, var(--color-ink))}.btn--primary:focus-visible{outline-offset:3px}.textlink{min-height:44px;font-weight:600;font-size:var(--text-md);text-decoration-color:var(--color-rule-strong);text-underline-offset:.3em;align-items:center;display:inline-flex}.textlink:hover{text-decoration-color:currentColor}.fn{font-family:var(--font-body);vertical-align:super;letter-spacing:0;font-size:.62em;font-weight:600;line-height:0}.fn a{color:var(--color-muted);padding:.5em .08em;text-decoration:none}.fn a:hover{color:var(--color-accent-text)}.hero{column-gap:var(--gap-columns);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;padding-top:clamp(48px,7vw,104px);display:grid}.hero__copy{grid-column:1/span 9}.hero h1{font-size:var(--text-display);letter-spacing:-.035em;line-height:.98}.hero h1 .line{display:block}.nowrap{white-space:nowrap}.hero__lead{margin-top:var(--space-xl);max-width:46ch;font-size:var(--text-lead);color:var(--color-ink-2);line-height:1.5}.hero .actions{margin-top:var(--space-xl)}.hero__aside{grid-column:10/span 3;align-self:end}.hero__portrait{margin:0}.hero__portrait img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-s);outline:1px solid var(--color-img-edge);outline-offset:-1px;filter:grayscale()contrast(1.05);width:100%}.caption{margin-top:var(--space-xs);font-size:var(--text-sm);color:var(--color-muted);line-height:1.45}.hero__avail{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-ink-2);max-width:34ch;line-height:1.5}.js.enter [data-enter]{opacity:0}@media (width<=60rem){.hero{grid-template-columns:minmax(0,1fr)}.hero__copy,.hero__aside{grid-column:1/-1}.hero__aside{gap:var(--space-md);margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule);grid-template-columns:112px minmax(0,1fr);align-items:end;display:grid}.hero__avail{margin-top:0}}.shead{justify-content:space-between;align-items:baseline;gap:var(--space-sm) var(--space-xl);padding-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.shead h2,.contact h2,.colophon h2,.notes h2,.essay h2,.plate__head{overflow-wrap:break-word;min-width:0}.shead h2{font-size:var(--text-section);max-width:22ch;line-height:1.04}.shead--rule{border-bottom:var(--rule-hair) solid var(--color-rule-strong)}.ix{list-style:none;position:relative}.ix__item{border-bottom:var(--rule-hair) solid var(--color-rule);position:relative}.ix__row{align-items:baseline;column-gap:var(--gap-columns);grid-template-columns:var(--ix-year,5.5rem) minmax(0, 1fr) minmax(0, 15rem) minmax(0, 13rem);padding-block:var(--space-lg);color:inherit;text-decoration:none;display:grid;position:relative}a.ix__row:hover,summary.ix__row:hover{color:inherit}.ix__year{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.ix__title{font-family:var(--font-display);font-size:var(--text-title);letter-spacing:-.02em;overflow-wrap:break-word;text-wrap:balance;min-width:0;transition:transform var(--dur-short) var(--ease-out), color var(--dur-micro) var(--ease-out);line-height:1.08}.ix__line{margin-top:var(--space-xs);font-family:var(--font-body);font-size:var(--text-md);letter-spacing:0;color:var(--color-ink-2);max-width:52ch;line-height:1.5;display:block}.ix__role{font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.45}.ix__result{font-size:var(--text-sm);text-align:right;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.45}.ix__result small{color:var(--color-muted);font-weight:400;font-size:var(--text-xs);display:block}.ix__row:hover .ix__title,.ix__row:focus-visible .ix__title{transform:translate(10px)}.ix__row:hover .ix__title{color:var(--color-ink)}.ix--compact .ix__row{padding-block:var(--space-md)}.ix--wide{--ix-year:9.5rem}.ix--compact .ix__title{font-size:clamp(1.25rem,1rem + .9vw,1.75rem)}.ix__peek{display:none}@media (hover:hover) and (pointer:fine){.ix__peek{z-index:var(--z-raised);pointer-events:none;opacity:0;width:clamp(240px,22vw,340px);transition:opacity var(--dur-short) var(--ease-out), transform var(--dur-long) var(--ease-out);display:block;position:absolute;top:50%;right:16rem;transform:translateY(-50%)scale(.94)}.ix__peek img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-m);outline:1px solid var(--color-img-edge);outline-offset:-1px;width:100%;box-shadow:0 24px 48px -24px var(--color-shade);background:var(--color-paper-2)}.ix__peek--phone img{aspect-ratio:9/16;object-position:top;width:62%}.ix__row:hover .ix__peek,.ix__row:focus-visible .ix__peek{opacity:1;transform:translateY(-50%)scale(1)}.ix[data-follow] .ix__peek{transition:opacity var(--dur-short) var(--ease-out);top:0;left:0;right:auto}}@media (hover:none),(pointer:coarse){.ix:has(.ix__peek) .ix__row{grid-template-columns:var(--ix-year,5.5rem) minmax(0, 1fr) minmax(0, 15rem) minmax(0, 13rem) 72px}.ix__row--thumb .ix__peek{grid-area:1/5;align-self:start;display:block}.ix__peek img{aspect-ratio:1;object-fit:cover;object-position:top;border-radius:var(--radius-s);outline:1px solid var(--color-img-edge);outline-offset:-1px;width:72px}}@media (width<=60rem){.ix__row{row-gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}.ix__row>*{grid-column:1}.ix__result{text-align:left}.ix__role{margin-top:var(--space-2xs)}.ix__row:hover .ix__title{transform:none}.ix:has(.ix__peek) .ix__row,.ix__row--thumb{grid-template-columns:minmax(0,1fr) 72px}.ix__row>:not(.ix__peek){grid-column:1}.ix__row--thumb .ix__peek{grid-area:1/2/span 5}}.ix__details>summary{cursor:pointer;list-style:none}.ix__details>summary::-webkit-details-marker{display:none}.ix__toggle{right:0;top:var(--space-lg);width:44px;height:44px;color:var(--color-muted);place-items:center;display:grid;position:absolute}.ix__toggle svg{width:16px;height:16px;transition:transform var(--dur-short) var(--ease-out)}details[open]>summary .ix__toggle svg{transform:rotate(45deg)}.ix__details>summary.ix__row{padding-right:56px}.ix__details>summary:hover .ix__toggle{color:var(--color-ink)}.ix__body{grid-template-columns:var(--ix-year,5.5rem) minmax(0, 1fr) minmax(0, 28rem);column-gap:var(--gap-columns);padding-bottom:var(--space-xl);display:grid}.ix__body>.ix__text{gap:var(--space-md);color:var(--color-ink-2);grid-column:2;align-content:start;display:grid}.ix__body>.ix__media{grid-column:3;margin:0}.ix__media img{border-radius:var(--radius-m);outline:1px solid var(--color-img-edge);outline-offset:-1px;background:var(--color-paper-2);width:100%}.ix__media--phone img{max-width:220px}.ix__text ul{gap:var(--space-xs);padding-left:1.1em;display:grid}.ix__text li::marker{color:var(--color-muted)}.ix__text p{max-width:64ch}.ix__note{font-size:var(--text-sm);color:var(--color-muted)}.meta{gap:var(--space-2xs) var(--space-md);font-size:var(--text-sm);color:var(--color-muted);flex-wrap:wrap;display:flex}.meta dt{color:var(--color-ink);font-weight:600}.meta dd{margin:0}.tags{gap:var(--space-xs);font-size:var(--text-sm);flex-wrap:wrap;list-style:none;display:flex}.tags li{padding:var(--space-3xs) var(--space-sm);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-ink-2)}.linkrow{gap:0 var(--space-lg);flex-wrap:wrap;list-style:none;display:flex}@media (width<=60rem){.ix__body{row-gap:var(--space-lg);grid-template-columns:minmax(0,1fr)}.ix__body>.ix__text,.ix__body>.ix__media{grid-column:1}}.plate{column-gap:var(--gap-columns);row-gap:var(--space-xl);grid-template-rows:auto 1fr;grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.plate figure{margin:0}.plate__main{grid-area:1/1/span 2/span 8}.plate__side{grid-area:2/10/auto/span 3;align-self:end}.plate img{object-fit:cover;border-radius:var(--radius-s);outline:1px solid var(--color-img-edge);outline-offset:-1px;width:100%}.plate__main img{aspect-ratio:3/2}.plate__side img{aspect-ratio:4/5}.plate__head{font-size:var(--text-title);grid-area:1/10/auto/span 3;align-self:start;line-height:1.1}@media (width<=60rem){.plate{row-gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.plate__head,.plate__main{grid-area:auto/1/auto/-1}.plate__side{grid-area:auto/1/auto/span 1}}.now{background:var(--color-paper-2);padding-block:var(--space-3xl)}.now__grid{gap:var(--space-xl) var(--gap-columns);margin-top:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;display:grid}.now__grid li{gap:var(--space-xs);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule-strong);align-content:start;display:grid}.now__date{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}.now__grid h3{font-size:var(--text-lg);line-height:1.3}.now__grid p{font-size:var(--text-md);color:var(--color-ink-2)}@media (width<=60rem){.now__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=40rem){.now__grid{grid-template-columns:minmax(0,1fr)}}.essay{column-gap:var(--gap-columns);row-gap:var(--space-xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.essay h2{font-size:var(--text-display-s);letter-spacing:-.03em;grid-column:1/span 5;line-height:1}.essay__body{gap:var(--space-md);color:var(--color-ink-2);font-size:var(--text-lead);grid-column:7/span 6;line-height:1.55;display:grid}.essay__body p:first-child{color:var(--color-ink)}.facts{gap:var(--gap-columns);grid-column:7/span 6;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.facts div{border-top:var(--rule-hair) solid var(--color-rule);padding-top:var(--space-sm)}.facts dt{font-size:var(--text-sm);color:var(--color-muted)}.facts dd{margin:var(--space-2xs) 0 0}.facts .facts__v{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1.1;display:block}.facts .facts__t{margin-top:var(--space-2xs);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.45;display:block}.essay .textlink{grid-column:7/span 6;justify-self:start}@media (width<=60rem){.essay{grid-template-columns:minmax(0,1fr)}.essay h2,.essay__body,.facts,.essay .textlink{grid-column:1}}@media (width<=40rem){.facts{gap:var(--space-md);grid-template-columns:minmax(0,1fr)}}.contact{padding-top:var(--space-2xl);border-top:var(--rule-hair) solid var(--color-rule-strong);column-gap:var(--gap-columns);row-gap:var(--space-xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.contact h2{font-size:var(--text-display-s);letter-spacing:-.03em;grid-column:1/span 9;max-width:18ch;line-height:1}.contact__mail{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;text-decoration-color:var(--color-rule);text-underline-offset:.15em;grid-column:1/-1;justify-self:start;font-size:clamp(1.25rem,.6rem + 2.6vw,2.75rem);line-height:1.15}.contact .actions{grid-column:1/-1}.contact__note{font-size:var(--text-sm);color:var(--color-muted)}@media (width<=60rem){.contact{grid-template-columns:minmax(0,1fr)}.contact h2{grid-column:1}}.notes{margin-top:var(--section-gap-s);padding-top:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule);column-gap:var(--gap-columns);grid-template-columns:5.5rem minmax(0,1fr);display:grid}.notes h2{font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:0;font-weight:600}.notes ol{counter-reset:note;columns:2 26rem;column-gap:var(--space-2xl);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.5;list-style:none}.notes li{break-inside:avoid;padding-bottom:var(--space-md);grid-template-columns:1.75rem minmax(0,1fr);display:grid}.notes li:before{counter-increment:note;content:counter(note);color:var(--color-muted);font-variant-numeric:tabular-nums}.notes li:target{color:var(--color-ink)}.notes li:target:before{color:var(--color-accent-text);font-weight:600}@media (width<=40rem){.notes{row-gap:var(--space-md);grid-template-columns:minmax(0,1fr)}}.colophon{margin-top:var(--space-3xl);padding-block:var(--space-xl) var(--space-2xl);border-top:var(--rule-hair) solid var(--color-rule-strong);column-gap:var(--gap-columns);row-gap:var(--space-xl);font-size:var(--text-sm);color:var(--color-ink-2);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.colophon__name{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.02em;grid-column:1/span 4;font-size:1.75rem;line-height:1.1}.colophon__name p:last-child{margin-top:var(--space-xs);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-muted);letter-spacing:0}.colophon nav{grid-column:span 2}.colophon h2{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink);letter-spacing:0;margin-bottom:var(--space-xs);font-weight:600}.colophon ul{list-style:none;display:grid}.colophon ul a{align-items:center;min-height:32px;text-decoration:none;display:inline-flex}.colophon__meta{gap:var(--space-xs);color:var(--color-muted);grid-column:9/span 4;align-content:start;display:grid}@media (width<=60rem){.colophon{grid-template-columns:repeat(2,minmax(0,1fr))}.colophon__name,.colophon__meta{grid-column:1/-1}.colophon nav{grid-column:span 1}.colophon ul a{min-height:44px}}.pagehead{padding-top:var(--space-3xl);padding-bottom:var(--space-2xl);column-gap:var(--gap-columns);row-gap:var(--space-lg);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.pagehead h1{font-size:var(--text-display-s);letter-spacing:-.03em;grid-column:1/span 10;max-width:20ch;line-height:1}.pagehead p{font-size:var(--text-lead);color:var(--color-ink-2);grid-column:1/span 7;max-width:56ch;line-height:1.5}@media (width<=60rem){.pagehead{grid-template-columns:minmax(0,1fr)}.pagehead h1,.pagehead p{grid-column:1}}.filter{gap:var(--space-xs);margin-bottom:var(--space-lg);border:0;flex-wrap:wrap;padding:0;display:flex}.filter legend{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-xs);padding:0}.filter button{min-height:44px;padding:0 var(--space-md);border-radius:var(--radius-pill);cursor:pointer;border:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);color:var(--color-ink-2);transition:border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out);background:0 0}.filter button:hover{border-color:var(--color-ink);color:var(--color-ink)}.filter button[aria-pressed=true]{border-color:var(--color-ink);color:var(--color-ink);font-weight:600}.filter button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.filter button:active{transform:scale(.96)}.ix__group{font-size:var(--text-sm);color:var(--color-muted)}.cols{column-gap:var(--gap-columns);row-gap:var(--space-xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.cols>.shead{grid-column:1/-1}.story{counter-reset:ch;gap:var(--space-xl) var(--gap-columns);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;display:grid}.story li{counter-increment:ch;gap:var(--space-xs);border-top:var(--rule-hair) solid var(--color-rule-strong);padding-top:var(--space-md);align-content:start;display:grid}.story li:before{content:counter(ch);font-family:var(--font-display);color:var(--color-muted);font-variant-numeric:tabular-nums;font-size:3rem;line-height:1}.story h3{font-size:var(--text-lg)}.story p{color:var(--color-ink-2)}@media (width<=60rem){.story{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=40rem){.story{grid-template-columns:minmax(0,1fr)}}.figs{gap:var(--space-xl) var(--gap-columns);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;display:grid}.figs li{gap:var(--space-xs);align-content:start;display:grid}.figs .fig{font-family:var(--font-display);font-size:var(--text-section);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}.figs .fig-note{font-size:var(--text-sm);color:var(--color-muted)}.figs h3{font-size:var(--text-lg);margin-top:var(--space-sm)}.figs p{color:var(--color-ink-2)}@media (width<=60rem){.figs{grid-template-columns:minmax(0,1fr)}}.langs{grid-column:1/span 6}.interests{grid-column:8/span 5}.kv{list-style:none}.kv li{justify-content:space-between;gap:var(--space-md);padding-block:var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);display:flex}.kv span:last-child{color:var(--color-muted);text-align:right}.cols h3.sub{font-family:var(--font-display);font-weight:400;font-size:var(--text-title);letter-spacing:-.02em;grid-column:1/-1}.langs h3,.interests h3{margin-bottom:var(--space-sm)}@media (width<=60rem){.langs,.interests{grid-column:1/-1}}.notfound{padding-block:var(--space-4xl)}.notfound h1{font-size:var(--text-display);letter-spacing:-.035em;line-height:1}.notfound p{margin-top:var(--space-lg);font-size:var(--text-lead);color:var(--color-ink-2)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ix__row:hover .ix__title,.ix__row:focus-visible .ix__title{transform:none}}.ix--ruled{border-top:var(--rule-hair) solid var(--color-rule-strong)}.meta--grid{gap:var(--space-2xs) var(--space-md);grid-template-columns:max-content minmax(0,1fr);display:grid}.shead--flush{padding-bottom:0}.blog-year+.blog-year{margin-top:var(--space-2xl)}.blog-year__head h2{font-variant-numeric:tabular-nums}.blog-year__n{font-size:var(--text-sm);color:var(--color-muted)}.blog-ix .ix__title{font-size:clamp(1.375rem,1.05rem + 1.1vw,2.125rem)}.blog-note{margin-top:var(--space-xs);font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:0;color:var(--color-muted);line-height:1.45;display:block}.blog-tags{margin-top:var(--space-2xs);color:var(--color-muted);display:block}.blog-foot{margin-top:var(--space-2xl)}.post{padding-top:var(--space-3xl)}.post__head{column-gap:var(--gap-columns);row-gap:var(--space-lg);padding-bottom:var(--space-2xl);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.post__head>*{grid-column:1/span 10}.post__back{font-size:var(--text-sm)}.post__note{padding-left:var(--space-sm);border-left:2px solid var(--color-ink);font-size:var(--text-sm);color:var(--color-ink-2);grid-column:1/span 7;justify-self:start;line-height:1.45}.post__head h1{font-size:var(--text-display-s);letter-spacing:-.03em;max-width:20ch;line-height:1.02}.post__lead{font-size:var(--text-lead);color:var(--color-ink-2);grid-column:1/span 7;max-width:52ch;line-height:1.5}.post__cover{margin:0 0 var(--space-2xl)}.post__head--side>*{grid-column:1/span 7}.post__head--side>.post__side{grid-area:1/9/span 5/span 4;align-self:end;margin:0}.post__side img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-s);outline:1px solid var(--color-img-edge);outline-offset:-1px;background:var(--color-paper-2);width:100%}.post__cover img{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-s);outline:1px solid var(--color-img-edge);outline-offset:-1px;background:var(--color-paper-2);width:100%}.post__grid{column-gap:var(--gap-columns);row-gap:var(--space-xl);padding-top:var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule-strong);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.post__aside{gap:var(--space-lg);grid-column:1/span 3;align-content:start;display:grid}@media (width>=60.01rem){.post__aside{top:var(--space-lg);align-self:start;position:sticky}}.post__meta{gap:var(--space-md);margin:0;display:grid}.post__meta div{gap:var(--space-3xs);align-content:start;display:grid}.post__meta dt{font-size:var(--text-xs);color:var(--color-muted)}.post__meta dd{font-size:var(--text-sm);color:var(--color-ink);margin:0;line-height:1.45}.post__meta .tags{margin-top:var(--space-2xs);font-size:var(--text-xs)}.post__other{font-size:var(--text-sm);justify-self:start}.prose{font-family:var(--font-display);font-optical-sizing:auto;color:var(--color-ink);font-variant-numeric:oldstyle-nums proportional-nums;hanging-punctuation:first;text-wrap:pretty;grid-column:5/span 7;max-width:66ch;font-size:clamp(1.1875rem,1.1rem + .3vw,1.3125rem);line-height:1.62}.prose>*+*{margin-top:1.05em}.prose>p:first-child{letter-spacing:-.005em;font-size:1.16em;line-height:1.5}.prose h2,.prose h3{font-family:var(--font-body);font-weight:600;font-size:var(--text-lg);letter-spacing:0;margin-top:2em;line-height:1.3}.prose h2+*,.prose h3+*{margin-top:.5em}.prose a{color:inherit;text-decoration-color:var(--color-muted);text-underline-offset:.18em}.prose a:hover{color:var(--color-accent-text);text-decoration-color:currentColor}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--color-muted)}.prose blockquote{border-left:2px solid var(--color-ink);color:var(--color-ink-2);margin-inline:0;padding-left:1em;font-style:normal}.prose strong{font-weight:600}.prose hr{border:0;border-top:var(--rule-hair) solid var(--color-rule);margin-block:2em}.post__pager{gap:var(--gap-columns);margin-top:var(--space-3xl);border-top:var(--rule-hair) solid var(--color-rule-strong);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.post__pg{gap:var(--space-2xs);padding-block:var(--space-lg);color:inherit;text-decoration:none;display:grid}.post__pg--next{text-align:right}.post__pg-k{font-size:var(--text-sm);color:var(--color-muted)}.post__pg-t{font-family:var(--font-display);letter-spacing:-.02em;transition:color var(--dur-micro) var(--ease-out);font-size:clamp(1.25rem,1rem + .9vw,1.75rem);line-height:1.15}.post__pg:hover .post__pg-t{color:var(--color-accent-text)}@media (width<=60rem){.post__head,.post__grid{grid-template-columns:minmax(0,1fr)}.post__head>*,.post__head--side>*,.post__note,.post__lead,.post__aside,.prose{grid-column:1}.post__head--side>.post__side{grid-area:auto/1;max-width:28rem}.post__meta{grid-template-columns:repeat(2,minmax(0,1fr))}.post__meta div:last-child{grid-column:1/-1}}@media (width<=40rem){.post__pager{grid-template-columns:minmax(0,1fr);gap:0}.post__pg--next{text-align:left;border-top:var(--rule-hair) solid var(--color-rule)}}.sc{--fg:var(--color-ink);--fg2:var(--color-ink-2);--fg3:var(--color-muted);--bg:var(--color-paper);--sf:var(--color-paper-2);--bd:var(--color-rule);--hl:var(--color-rule);--font-mono:var(--font-body);--sc-accent:#2b44ff;--sc-accent-dark:oklch(72% .15 272);--sc-radius:6px}.sc-bar{font-size:var(--text-xs)}.sc-btn,.sc-chapter{min-height:40px}.shows__head p{max-width:46ch;font-size:var(--text-sm);color:var(--color-muted)}.shows__tabs{gap:0 var(--space-xl);margin-bottom:var(--space-xl);border-bottom:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;display:flex}.shows__tab{padding:var(--space-md) 0;cursor:pointer;min-height:44px;color:var(--color-muted);font:inherit;text-align:left;transition:color var(--dur-micro) var(--ease-out);background:0 0;border:0;justify-items:start;gap:2px;display:grid;position:relative}.shows__tab-n{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.shows__tab-t{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.25rem,1rem + .9vw,1.75rem);line-height:1.1}.shows__tab:hover,.shows__tab[aria-selected=true]{color:var(--color-ink)}.shows__tab[aria-selected=true]:after{content:"";background:var(--color-ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.shows__panel{margin:0}.shows__panel[hidden]{display:none}.shows__cap{grid-template-columns:var(--ix-year,5.5rem) minmax(0, 1fr) auto;column-gap:var(--gap-columns);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);color:var(--color-ink-2);line-height:1.5;display:grid}.shows__cap b{color:var(--color-ink);font-weight:600}.shows__fig{color:var(--color-muted);font-variant-numeric:tabular-nums}.shows__cap p{max-width:70ch}.shows__cap .textlink{white-space:nowrap}@media (width<=60rem){.shows__cap{row-gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}}.ix__demo{margin-top:var(--space-xl);grid-column:2/-1}.ix__body>.ix__media--demo{grid-column:3;margin:0}.ix__demo-tag{align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:0;color:var(--color-muted);display:inline-flex}.ix__demo-tag:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.ix__demo .caption,.ix__media--demo .caption{margin-top:var(--space-sm)}@media (width<=60rem){.ix__demo,.ix__body>.ix__media--demo{grid-column:1;margin-top:0}}.latest .ix__title{font-size:clamp(1.25rem,1rem + .9vw,1.75rem)}@media (width<=40rem){.shows__tabs{gap:var(--space-lg);scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.shows__tab{flex:none}.shows__tab-t{font-size:1.125rem}}.ix__text ul.tags,.ix__text ul.linkrow{padding-left:0;display:flex}.post__project{gap:var(--space-2xs);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);display:grid}.post__project-k{font-size:var(--text-xs);color:var(--color-muted)}.post__project-k:not(:first-child){margin-top:var(--space-sm)}.post__project-t{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2}.post__project-t a{color:inherit;text-decoration:none}.post__project-t a:hover{color:var(--color-accent-text)}.post__project-m{color:var(--color-ink-2);line-height:1.45}.post__project .tags{margin-top:var(--space-2xs);font-size:var(--text-xs)}.post__project-links{gap:var(--space-2xs);line-height:1.4;display:grid}.prose--cont{grid-column:5/span 7}.pdemo{margin:var(--space-md) 0;grid-column:1/-1;min-width:0}.pdemo__stage{min-width:0}.pdemo__cap{grid-template-columns:var(--ix-year,5.5rem) minmax(0, 1fr);column-gap:var(--gap-columns);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);max-width:none;display:grid}.pdemo__fig{color:var(--color-muted)}.pdemo .v3x-cap,.pdemo .gp-caption{display:none}.pdemo .v3x{margin:0}.pdemo__split{gap:var(--gap-columns);grid-template-columns:minmax(0,1fr) 17rem;align-items:start;display:grid}.pdemo__notes{gap:var(--space-lg);padding-top:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);align-content:start;display:grid}.pdemo__notes h2{margin-bottom:var(--space-xs);font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);color:var(--color-ink)}.pdemo__skills{gap:var(--space-xs);padding-left:1.1em;line-height:1.45;display:grid}.pdemo__skills li::marker{color:var(--color-muted)}@media (width<=75rem){.pdemo__split{grid-template-columns:minmax(0,1fr)}.pdemo__notes{column-gap:var(--gap-columns);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=40rem){.pdemo__notes{grid-template-columns:minmax(0,1fr)}}@media (width<=60rem){.prose--cont,.pdemo{grid-column:1}.pdemo__cap{grid-template-columns:minmax(0,1fr)}}.ix__go{color:var(--color-muted);transition:color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);margin-left:.35em;display:inline-block}.post__project-links{padding:0;list-style:none}.prose--cont>p:first-child{font-size:inherit;line-height:inherit;letter-spacing:inherit}.post__grid--demo .post__aside{position:static}.sc .sc-cursor{display:none!important}
