#theme-toggle-moon[data-astro-cid-l6lhmie6],.dark #theme-toggle-sun[data-astro-cid-l6lhmie6]{display:none}.dark #theme-toggle-moon[data-astro-cid-l6lhmie6]{display:block}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-lg:1.25rem;--text-xl:1.5625rem;--text-2xl:1.953rem;--text-3xl:2.441rem;--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-md:1rem;--text-display-s:clamp(2.25rem, 4vw + .5rem, 3.75rem);--text-display:clamp(2.75rem, 5vw + 1rem, 5.25rem);--text-section:clamp(2rem, 2.5vw + 1rem, 3.5rem);--text-title:clamp(1.25rem, .75vw + .875rem, 1.625rem);--text-lead:clamp(1.125rem, .35vw + 1rem, 1.375rem);--color-error:oklch(52% .19 27);--color-success:oklch(50% .12 150);--color-paper:oklch(96.5% .0057 85);--color-paper-2:oklch(93.5% .0087 85);--color-paper-3:oklch(90.5% .0104 82);--color-ink:oklch(17.8% .003 85);--color-ink-2:oklch(28.2% .0077 85);--color-muted:oklch(44% .009 81);--color-rule:oklch(88.3% .0117 85);--color-accent:oklch(17.8% .003 85);--color-accent-ink:oklch(96.5% .0057 85);--color-focus:oklch(17.8% .003 85);--color-band:oklch(17.8% .003 85);--color-band-ink:oklch(96.5% .0057 85);--color-band-muted:oklch(78.4% .0138 82);--color-band-rule:oklch(32% .006 85);--color-figure:oklch(99.2% .005 85);--font-display:"Outfit Variable", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter Variable", ui-sans-serif, system-ui, sans-serif;--font-outlier:var(--font-body);--radius-card:8px;--radius-tab:4px;--radius-pill:999px;--shadow-card:0 1px 2px oklch(20% .01 85/.06);--tracking-display:-.02em}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:#12111038}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in oklab, var(--color-accent) 22%, transparent)}}::selection{color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.accent-ink{accent-color:var(--color-ink)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.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{color-scheme:light;--display-weight:600;--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;--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--rule-hair:1px}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}.dark{color-scheme:dark;--color-paper:oklch(17.8% .003 85);--color-paper-2:oklch(21.8% .003 85);--color-paper-3:oklch(24.8% .004 68);--color-ink:oklch(96.5% .0057 85);--color-ink-2:oklch(88.3% .0117 85);--color-muted:oklch(72% .011 82);--color-rule:oklch(28.9% .003 85);--color-accent:oklch(96.5% .0057 85);--color-accent-ink:oklch(17.8% .003 85);--color-focus:oklch(96.5% .0057 85);--color-band:oklch(22.2% .0041 85);--color-band-ink:oklch(96.5% .0057 85);--color-band-muted:oklch(72% .011 82);--color-band-rule:oklch(32% .006 85);--shadow-card:none}@media print{:root,.dark{color-scheme:light;--color-paper:oklch(99.2% .005 85);--color-paper-2:oklch(99.2% .005 85);--color-ink:oklch(17.8% .003 85);--color-ink-2:oklch(28.2% .0077 85);--color-muted:oklch(44% .009 81);--color-rule:oklch(88.3% .0117 85)}}:root{--stepped-bars:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9.6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M1.2 1.2H14.8M1.2 4.8H10.5M1.2 8.4H6.2'/%3E%3C/svg%3E");--bar-height:80px}html{background:var(--color-paper)}body{line-height:1.6}a:hover{text-decoration-thickness:2px}::selection{background:var(--color-ink);color:var(--color-paper)}.grid-12{column-gap:var(--gap-columns);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.label{font-size:var(--text-sm);color:var(--color-muted);font-weight:400}.time{font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--color-muted)}.link{min-height:44px;font-family:var(--font-display);font-weight:500;font-size:var(--text-lg);color:var(--color-ink);text-underline-offset:.25em;transition:text-decoration-thickness var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);align-items:center;text-decoration:underline 1px;display:inline-flex}.link:hover{text-decoration-thickness:2px}.link:active{color:var(--color-muted)}.button{min-height:48px;padding:0 var(--space-lg);border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-display);font-weight:500;font-size:var(--text-md);transition:transform var(--dur-micro) var(--ease-out), opacity var(--dur-micro) var(--ease-out);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button:hover{text-decoration:none;transform:translateY(-1px)}.button:active{opacity:.85;transform:translateY(0)}.button-quiet{min-height:48px;padding:0 var(--space-lg);border:1px solid var(--color-ink);border-radius:var(--radius-pill);color:var(--color-ink);font-family:var(--font-display);font-weight:500;font-size:var(--text-md);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button-quiet:hover{background:var(--color-paper-2);text-decoration:none}.button-quiet:active{background:var(--color-paper-3)}.skip-link{left:var(--space-md);top:calc(-1 * var(--space-3xl));z-index:var(--z-modal);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-tab);background:var(--color-accent);color:var(--color-accent-ink);position:absolute}.skip-link:focus{top:var(--space-md)}.site-bar{border-bottom:1px solid var(--color-rule);background:var(--color-paper)}.bar{justify-content:space-between;align-items:center;gap:var(--space-lg);min-height:var(--bar-height);display:flex}.brand{width:184px;color:var(--color-ink);flex:none;display:block}.brand img{width:100%;height:auto}.brand .brand-dark,.dark .brand .brand-light{display:none}.dark .brand .brand-dark{display:block}.bar-end,.bar-nav{align-items:center;gap:var(--space-lg);display:flex}.nav-link{align-items:center;gap:var(--space-xs);min-height:44px;color:var(--color-muted);font-family:var(--font-display);font-weight:500;font-size:var(--text-md);transition:color var(--dur-micro) var(--ease-out);text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--color-ink);text-decoration:none}.nav-link:active{color:var(--color-ink-2)}.nav-link[aria-current=page]{color:var(--color-ink)}.nav-link[aria-current=page]:before{content:"";background:var(--color-ink);width:14px;height:9px;-webkit-mask:var(--stepped-bars) center / contain no-repeat;-webkit-mask:var(--stepped-bars) center / contain no-repeat;-webkit-mask:var(--stepped-bars) center / contain no-repeat;mask:var(--stepped-bars) center / contain no-repeat;flex:none}.bar-menu{display:none;position:relative}.bar-menu summary{min-height:44px;padding:0 var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-pill);font-family:var(--font-display);cursor:pointer;align-items:center;font-weight:500;list-style:none;display:inline-flex}.bar-menu summary::-webkit-details-marker{display:none}.bar-menu summary:hover{border-color:var(--color-ink)}.bar-menu summary:active,.bar-menu[open] summary{background:var(--color-paper-2)}.bar-menu nav{right:0;top:calc(100% + var(--space-xs));z-index:var(--z-dropdown);min-width:14rem;padding:var(--space-xs) var(--space-md);border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:absolute}.bar-menu .nav-link{font-size:var(--text-lg)}.theme-toggle{border:1px solid var(--color-rule);border-radius:var(--radius-pill);width:44px;height:44px;color:var(--color-ink);cursor:pointer;transition:border-color var(--dur-micro) var(--ease-out);background:0 0;flex:none;place-items:center;display:grid}.theme-toggle:hover{border-color:var(--color-ink)}.theme-toggle:active{background:var(--color-paper-2)}.theme-toggle svg{width:16px;height:16px}.site-foot{margin-top:var(--section-gap);padding-block:var(--space-3xl) var(--space-xl);border-top:1px solid var(--color-rule);background:var(--color-paper-2)}.foot-mast{grid-column:1/span 6;align-self:start;max-width:560px;display:block}.foot-mast img{width:100%;height:auto}.foot-mast .brand-dark,.dark .foot-mast .brand-light{display:none}.dark .foot-mast .brand-dark{display:block}.foot-grid{row-gap:var(--space-2xl)}.foot-col{grid-column:span 2}.foot-col:first-of-type{grid-column:9/span 2}.foot-col h2{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-muted);letter-spacing:0;max-width:none;font-weight:400}.foot-col ul{margin:var(--space-sm) 0 0;padding:0;list-style:none}.foot-col li a{min-height:36px;color:var(--color-ink);align-items:center;text-decoration:none;display:inline-flex}.foot-col li a:hover{text-decoration:underline}.foot-col li a:active{color:var(--color-muted)}.foot-legal{padding-top:var(--space-lg);border-top:1px solid var(--color-rule);grid-column:1/-1}.section{padding-block-start:var(--section-gap)}.section-s{padding-block-start:var(--section-gap-s)}.head-block{grid-column:1/span 4;align-self:start}.head-block .lead{margin-top:var(--space-md);color:var(--color-muted)}.head-block .link{margin-top:var(--space-md)}.body-wide{grid-column:5/-1;min-width:0}.body-wide.body-full{grid-column:1/-1}.hero{padding-block:var(--space-3xl) var(--space-xl)}.hero-grid{align-items:end;row-gap:var(--space-xl)}.hero+.section{padding-block-start:var(--space-2xl)}.hero h1{text-wrap:wrap;letter-spacing:-.035em;grid-column:1/span 8;max-width:none;font-size:clamp(3.25rem,8vw,7.5rem);line-height:.94}.hero-side{padding-bottom:var(--space-sm);grid-column:9/-1}.hero-side .lead{color:var(--color-ink-2)}.actions{align-items:center;gap:var(--space-sm) var(--space-lg);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.page-head{padding-block:var(--space-3xl) 0}.page-head h1{grid-column:1/span 8}.page-head .lead{color:var(--color-ink-2);grid-column:9/-1;align-self:end}.feature{align-items:center;row-gap:var(--space-xl)}.feature-figure{padding:var(--space-2xl) var(--space-xl) var(--space-xl);border-radius:var(--radius-card);background:var(--color-paper-2);grid-column:1/span 6;margin:0;position:relative}.feature-figure a{border-radius:var(--radius-tab);display:block;overflow:hidden}.feature-figure img{aspect-ratio:1344/960;object-fit:contain;background:var(--color-figure);width:100%;height:auto}.date-tab{top:0;left:var(--space-xl);padding:var(--space-xs) var(--space-md);border-radius:0 0 var(--radius-tab) var(--radius-tab);background:var(--color-ink);color:var(--color-paper);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:500;position:absolute}.feature-copy{grid-column:7/-1;padding-inline-start:var(--space-xl)}.feature-copy h2{font-size:var(--text-section)}.feature-copy h2 a{text-decoration:none}.feature-copy h2 a:hover{text-underline-offset:.12em;text-decoration:underline 2px}.feature-copy .lead{margin-top:var(--space-md);color:var(--color-ink-2)}.feature-copy .tags{margin-top:var(--space-lg)}.feature-copy .link{margin-top:var(--space-md)}.rows{border-top:1px solid var(--color-ink);margin:0;padding:0;list-style:none}.row{column-gap:var(--gap-columns);padding:var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-rule);transition:background-color var(--dur-short) var(--ease-out);grid-template-columns:9rem minmax(0,1fr);display:grid;position:relative}.row:hover{background:var(--color-paper-2)}.row:active{background:var(--color-paper-3)}.row .time{padding-top:.35em}.row h3{max-width:none}.row h3 a{text-decoration:none}.row h3 a:after{content:"";position:absolute;inset:0}.row h3 a:focus-visible{outline:none}.row:has(h3 a:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}.row p{margin-top:var(--space-2xs);color:var(--color-muted);max-width:62ch}.row .tags{z-index:var(--z-raised);margin-top:var(--space-sm);position:relative}.year-group+.year-group{margin-top:var(--space-2xl)}.year-group h2{top:var(--space-lg);font-size:var(--text-section);color:var(--color-ink);font-variant-numeric:tabular-nums;position:sticky}.tags{gap:var(--space-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tag{min-height:32px;padding:0 var(--space-sm);border:1px solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-muted);font-size:var(--text-sm);transition:border-color var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);align-items:center;text-decoration:none;display:inline-flex}a.tag:hover{border-color:var(--color-ink);color:var(--color-ink);text-decoration:none}a.tag:active{background:var(--color-paper-2)}.band{margin-top:var(--section-gap);padding-block:var(--section-gap-s);background:var(--color-band);color:var(--color-band-ink)}.band ::selection{background:var(--color-band-ink);color:var(--color-band)}.statement{max-width:24ch;font-family:var(--font-display);font-weight:600;font-size:var(--text-display-s);letter-spacing:-.025em;text-wrap:balance;color:var(--color-band-ink);grid-column:1/span 10;line-height:1.08}.band-foot{justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--color-band-rule);flex-wrap:wrap;grid-column:1/-1;display:flex}.band-foot p{color:var(--color-band-muted)}.band .link{color:var(--color-band-ink)}.band .link:active{color:var(--color-band-muted)}.band :focus-visible{outline-color:var(--color-band-ink)}.head-block.head-wide{grid-column:1/span 7}.head-aside{grid-column:9/-1;place-self:end}.tiles.tiles-spaced{margin-top:var(--space-2xl)}.tile-wrap{min-width:0;display:flex}.tile-wrap>.tile{flex:1}.tiles{gap:var(--gap-columns);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{gap:var(--space-sm);min-height:300px;padding:var(--space-xl);border-radius:var(--radius-card);background:var(--color-paper-2);transition:background-color var(--dur-short) var(--ease-out);flex-direction:column;display:flex;position:relative}.tile:hover{background:var(--color-paper-3)}.tile:active{background:var(--color-rule)}.tile h3{font-size:clamp(1.5rem,1vw + 1.1rem,2rem)}.tile .status{padding-top:var(--space-lg);margin-top:auto}.tile h3 a{text-decoration:none}.tile h3 a:after{content:"";border-radius:var(--radius-card);position:absolute;inset:0}.tile h3 a:focus-visible{outline:none}.tile:has(h3 a:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.tile p{color:var(--color-ink-2)}.tile .status{color:var(--color-muted);font-size:var(--text-sm)}.tile .tags{margin-top:var(--space-sm)}.tiles-2 .tile{min-height:340px;padding:var(--space-2xl) var(--space-xl) var(--space-xl)}.tiles-2 .tile h3{font-size:var(--text-3xl)}.list-section.alt{margin-top:var(--section-gap);padding-block:var(--section-gap-s);background:var(--color-paper-2)}.list-section.alt+.list-section{padding-block-start:var(--section-gap)}.list-section h2{font-size:var(--text-section)}.items{border-top:1px solid var(--color-ink);margin:0;padding:0;list-style:none}.item{column-gap:var(--gap-columns);padding:var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-rule);transition:background-color var(--dur-short) var(--ease-out);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:baseline;display:grid;position:relative}.item:has(a):hover{background:var(--color-paper-3)}.list-section:not(.alt) .item:has(a):hover{background:var(--color-paper-2)}.item:has(a):active{background:var(--color-rule)}.item h3{font-size:var(--text-title)}.item h3 a{align-items:baseline;gap:var(--space-xs);text-decoration:none;display:inline-flex}.item h3 a:after{content:"";position:absolute;inset:0}.item h3 a:focus-visible{outline:none}.item:has(h3 a:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}.item h3 svg{width:.6em;height:.6em;color:var(--color-muted);flex:none}.item p{color:var(--color-muted)}.article-head{padding-block:var(--space-3xl) var(--space-2xl);border-bottom:1px solid var(--color-rule)}.article-head h1{max-width:22ch;font-size:var(--text-display-s);grid-column:1/span 10;line-height:1.04}.article-head .lead{margin-top:var(--space-lg);color:var(--color-ink-2);grid-column:1/span 8}.draft-note{margin-bottom:var(--space-md);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-sm);grid-column:1/-1;justify-self:start}.article-body{padding-top:var(--space-2xl)}.article-rail{top:var(--space-xl);align-self:start;gap:var(--space-lg);flex-direction:column;grid-column:1/span 3;display:flex;position:sticky}.article-rail dl{gap:var(--space-md);margin:0;display:grid}.article-rail dt{font-size:var(--text-sm);color:var(--color-muted)}.article-rail dd{margin:var(--space-2xs) 0 0;font-weight:500}.article-rail .date-chip{margin-top:var(--space-2xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-tab);background:var(--color-ink);color:var(--color-paper);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:500;display:inline-block}.article-main{grid-column:4/span 8;min-width:0}.article-foot{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:1px solid var(--color-rule)}.prose{max-width:68ch;color:var(--color-ink);font-size:1.125rem;line-height:1.72}.prose>*+*{margin-top:1.25em}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-display);letter-spacing:-.015em;max-width:30ch;margin-top:2em;font-weight:600;line-height:1.2}.prose h1{font-size:var(--text-3xl)}.prose h2{font-size:var(--text-2xl)}.prose h3{font-size:var(--text-xl)}.prose h4{font-size:var(--text-lg)}.prose h1+*,.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.6em}.prose>:first-child{margin-top:0}.prose p{overflow-wrap:break-word;max-width:none}.prose a{text-underline-offset:.2em;overflow-wrap:anywhere;text-decoration:underline 1px}.prose a:hover{text-decoration-thickness:2px}.prose ul,.prose ol{padding-left:1.25em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li::marker{color:var(--color-muted)}.prose li+li{margin-top:.35em}.prose blockquote{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-card);background:var(--color-paper-2);color:var(--color-ink-2);margin-inline:0}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9375em;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--color-rule);text-align:left;white-space:nowrap;padding:.5em .75em}.prose th{font-weight:600}.prose code{font-family:var(--font-mono);border-radius:var(--radius-tab);background:var(--color-paper-2);padding:.15em .4em;font-size:.875em}.prose pre{padding:var(--space-lg);border-radius:var(--radius-card);font-size:.875rem;line-height:1.65;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose img{border-radius:var(--radius-card);height:auto}.prose hr{border:0;border-top:1px solid var(--color-rule)}.astro-code{background-color:var(--color-paper-2)!important}.dark .astro-code,.dark .astro-code span{color:var(--shiki-dark)!important}.dark .astro-code{background-color:var(--color-paper-2)!important}.resume-head .actions{margin-top:var(--space-lg)}.resume-links{align-items:center;gap:0 var(--space-lg);margin:var(--space-md) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.resume-links .label{align-items:center;min-height:44px;display:inline-flex}.resume-head+.section{padding-block-start:var(--space-3xl)}.resume-summary{font-family:var(--font-display);font-weight:500;font-size:var(--text-2xl);letter-spacing:-.015em;text-wrap:balance;grid-column:1/span 9;max-width:34ch;line-height:1.3}.resume-section h2{font-size:var(--text-section);top:var(--space-lg);position:sticky}.entries{border-top:1px solid var(--color-ink);margin:0;padding:0;list-style:none}.entry{column-gap:var(--gap-columns);padding:var(--space-xl) 0;border-bottom:1px solid var(--color-rule);grid-template-columns:9rem minmax(0,1fr);display:grid}.entry h3{max-width:none}.entry .org{margin-top:var(--space-2xs);color:var(--color-muted)}.entry ul{margin:var(--space-md) 0 0;color:var(--color-ink-2);padding-left:1.1em}.entry li+li{margin-top:var(--space-xs)}.skills{border-top:1px solid var(--color-ink);margin:0}.skills>div{column-gap:var(--gap-columns);padding:var(--space-lg) 0;border-bottom:1px solid var(--color-rule);grid-template-columns:9rem minmax(0,1fr);display:grid}.skills dt{font-weight:600}.skills dd{color:var(--color-ink-2);margin:0}@media (width<=75rem){.feature-copy{padding-inline-start:0}.feature-copy h2{font-size:2.5rem}.hero h1,.page-head h1{grid-column:1/-1}.hero-side,.page-head .lead{grid-column:1/span 8}.feature-figure{grid-column:1/span 6}.feature-copy{grid-column:8/-1}}@media (width<=60rem){:root{--bar-height:68px}.bar-nav{display:none}.bar-menu{display:block}.brand{width:160px}.head-block,.head-block.head-wide,.head-aside,.body-wide,.feature-figure,.feature-copy,.hero-side,.page-head .lead,.statement,.article-head h1,.article-head .lead,.article-rail,.article-main,.resume-summary{grid-column:1/-1}.body-wide{margin-top:var(--space-xl)}.head-aside{justify-self:start}.article-rail{margin-bottom:var(--space-xl);flex-flow:wrap;position:static}.article-rail dl{gap:var(--space-xl);grid-auto-flow:column}.year-group h2,.resume-section h2{position:static}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tiles>:last-child:nth-child(odd){grid-column:1/-1;min-height:0}.foot-mast{grid-column:1/-1}.foot-col,.foot-col:first-of-type{grid-column:span 6}.feature-figure{padding:var(--space-xl) var(--space-md) var(--space-md)}.feature-copy{padding-inline-start:0}.date-tab{left:var(--space-md)}}@media (width<=40rem){.hero{padding-block:var(--space-xl) var(--space-md)}.hero+.section{padding-block-start:var(--space-xl)}.page-head,.article-head{padding-top:var(--space-2xl)}.row,.entry,.skills>div,.item{row-gap:var(--space-2xs);grid-template-columns:minmax(0,1fr);padding-inline:0}.row{padding-inline:var(--space-xs)}.row .time{padding-top:0}.tiles,.tiles-2{grid-template-columns:minmax(0,1fr)}.tiles>:last-child:nth-child(odd){grid-column:auto}.tile,.tiles-2 .tile{min-height:0;padding:var(--space-lg)}.tile h3,.tiles-2 .tile h3{margin-top:var(--space-lg);font-size:var(--text-xl)}.foot-col,.foot-col:first-of-type{grid-column:1/-1}.prose{font-size:1.0625rem}.nav-link,.button,.button-quiet{font-size:var(--text-lg)}}@media print{.no-print,.site-bar,.site-foot{display:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
