@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff)format("woff");font-weight:300 500;font-style:normal;font-display:swap}@property --ring-turn{syntax:"<angle>";inherits:false;initial-value:0deg}@property --meter{syntax:"<percentage>";inherits:false;initial-value:0%}@keyframes ring-turn{to{--ring-turn:360deg}}@keyframes service-meter{to{--meter:100%}}:root,[data-theme=dark]{color-scheme:dark;--bg:#050507;--text:#f4f4f5;--muted:#a1a1aa;--faint:#71717a;--line:#ffffff14;--line-strong:#ffffff38;--eyebrow:#f4f4f5ad;--surface:#0c0c0edb;--panel:#0a0a0ccc;--input:#09090b;--code:#0a0a0c;--code-text:#e4e4e7;--chip-bg:#ffffff08;--chip-text:#d4d4d8;--bar:#050507b8;--bar-line:#ffffff0f;--wordmark:#fff;--hover:#fff;--button-bg:#fff;--button-text:#09090b;--button-hover:#e4e4e7;--ghost-text:#fff;--ghost-border:#ffffff29;--link:#fff;--pill-bg:#ffffff0a;--pill-border:#ffffff1f;--pill-text:#d4d4d8;--stage:#141416;--stage-plate:#242428;--dialog:#0c0c0e;--focus:#a5f3fc;--live:#7dd3e0;--accent-amber:#e2a04a;--accent-green:#3cb87a;--accent-teal:#2fbfb4;--accent-gold:#d4b15c;--accent-blue:#6e97c9;--bar-amber:#8d6233;--bar-green:#2f6b49;--bar-teal:#2a6562;--bar-gold:#8a7340;--bar-blue:#3e5878;--bar-copper:#7a5344;--bar-navy:#3a4d68;--track:#18181b;--prose:#d4d4d8;--code-inline:#18181b;--selection:#6d28d9;--selection-text:#fff;--disabled:#3f3f46;--check-bg:#ffffff14;--check-ring:#ffffff1a;--check-icon:#ffffffb8;--dot:#3f3f46;--danger:#fda4af;--ok:#a5f3fc;--title-gradient:linear-gradient(110deg, #fff 0%, #ddd6fe 46%, #67e8f9 100%);--glow:radial-gradient(ellipse 70% 42% at 50% -12%, #7c3aed47, transparent 58%), radial-gradient(ellipse 32% 24% at 100% 0%, #22d3ee1a, transparent 55%), radial-gradient(ellipse 28% 22% at 0% 100%, #e879f914, transparent 50%);--day-empty:#16161a;--positive:#3cb87a;--positive-glow:#3ecf8eb8;--warn:#e2a04a;--on-accent:#fff;--scrim:#000000b8;--shadow-lift:0 10px 30px #00000073;--rule-soft:#8888886b;--hue-violet:#c4b5fd;--hue-indigo:#818cf8;--hue-cyan:#22d3ee;--hue-pink:#e879f9;--hue-yellow:#facc15;--hue-sky:#93c5fd;--hue-blue:#3b82c4;--hue-rose:#d36b6b;--hue-glow:#818cf829;--social-mail:#e0a598;--social-github:#d5dde4;--social-linkedin:#8eb4d6;--portrait-ink:var(--text);--codeblock-bg:#0e0e11;--codeblock-bar:#1a1a1f;--codeblock-rule:#ffffff12;--codeblock-tab:#e4e4e7;--codeblock-muted:#8b8b96;--codeblock-hover:#f4f4f5;--codeblock-hover-line:#ffffff1f;--codeblock-hover-bg:#ffffff0a;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"JetBrains Mono", "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}:root[data-theme=light]{color-scheme:light;--bg:#f6f4ef;--text:#1c1b19;--muted:#5e5953;--faint:#66615a;--line:#1c1b191a;--line-strong:#1c1b192e;--eyebrow:#6a635a;--surface:#fffcf7;--panel:#fffcf7;--input:#fff;--code:#f3f0ea;--code-text:#2a2826;--chip-bg:#1c1b190a;--chip-text:#3c3935;--bar:#f6f4efdb;--bar-line:#1c1b1914;--wordmark:#1c1b19;--hover:#1c1b19;--button-bg:#1c1b19;--button-text:#f7f5f1;--button-hover:#3a3834;--ghost-text:#1c1b19;--ghost-border:#1c1b1938;--link:#1c1b19;--pill-bg:#fffcf7cc;--pill-border:#1c1b191f;--pill-text:#3c3935;--stage:#efece4;--stage-plate:#fffcf7;--dialog:#fffcf7;--focus:#1d4e89;--live:#0f6e78;--accent-amber:#b45309;--accent-green:#047857;--accent-teal:#0f766e;--accent-gold:#a16207;--accent-blue:#1e4e89;--bar-amber:#c4843a;--bar-green:#3d8f62;--bar-teal:#3a8f8a;--bar-gold:#b08a3e;--bar-blue:#5d7ea8;--bar-copper:#a06a52;--bar-navy:#4d6284;--track:#e5e1d8;--prose:#3a3733;--code-inline:#efece6;--selection:#ddd4f3;--selection-text:#1c1b19;--disabled:#a39e96;--check-bg:#1c1b190d;--check-ring:#1c1b191a;--check-icon:#1c1b199e;--dot:#b7b1a8;--danger:#9f1239;--ok:#0f6e78;--title-gradient:linear-gradient(110deg, #1c1b19 0%, #3d3558 52%, #0e5c66 100%);--glow:radial-gradient(ellipse 70% 40% at 50% -10%, #b4965a29, transparent 60%);--day-empty:#e6e2da;--positive:#1f8a55;--positive-glow:#1f8a5559;--warn:#b45309;--on-accent:#fff;--scrim:#1c1b1952;--shadow-lift:0 10px 30px #1c1b1929;--rule-soft:#1c1b1924;--hue-violet:#8b5cf6;--hue-indigo:#4f46e5;--hue-cyan:#0891b2;--hue-pink:#c026d3;--hue-yellow:#ca8a04;--hue-sky:#3b82f6;--hue-blue:#1e40af;--hue-rose:#be4b4b;--hue-glow:#4f46e51a;--social-mail:#b4533f;--social-github:#3c3935;--social-linkedin:#2f6a9e;--portrait-ink:#6e0f14;--codeblock-bg:#fffcf7;--codeblock-bar:#efece4;--codeblock-rule:#1c1b191a;--codeblock-tab:#2a2826;--codeblock-muted:#6a635a;--codeblock-hover:#1c1b19;--codeblock-hover-line:#1c1b1929;--codeblock-hover-bg:#1c1b190a}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:17px;line-height:1.6;display:flex}main,.footer{z-index:1;position:relative}.glow{z-index:0;pointer-events:none;background:var(--glow);position:fixed;inset:0}img{max-width:100%}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}a.skip{z-index:5;background:var(--button-bg);color:var(--button-text);border-radius:8px;padding:8px 12px;position:absolute;top:-48px;left:16px}a.skip:focus{top:12px}.wrap{width:min(1080px,100% - 40px);margin-inline:auto}main{flex:1;padding-bottom:80px}.bar{z-index:20;background:var(--bar);backdrop-filter:blur(16px);border-bottom:1px solid var(--bar-line);view-transition-name:masthead;flex-direction:column;justify-content:center;min-height:64px;padding:0 20px;display:flex;position:sticky;top:0}.bar__inner{min-height:64px}.bar__sub{padding-bottom:10px}.bar__inner,.nav,.piece-bar{justify-content:space-between;align-items:center;gap:20px;width:min(1080px,100%);margin-inline:auto;display:flex}.wordmark{color:var(--wordmark);letter-spacing:-.04em;flex:none;font-weight:600;text-decoration:none}.links{scrollbar-width:none;align-items:center;gap:22px;display:flex;overflow-x:auto}.links a,.piece-bar a,.piece-bar .is-disabled{color:var(--muted);white-space:nowrap;font-size:14px;text-decoration:none}.links a:hover,.links a[aria-current=page],.piece-bar a:hover{color:var(--hover)}.piece-bar{grid-template-columns:1fr auto 1fr;display:grid}.piece-bar nav{justify-self:end;align-items:center;gap:16px;display:flex}.count{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.is-disabled{color:var(--disabled)}.hero{text-align:center;padding:88px 0 12px}.hero--doc{text-align:left}.hero--doc .gradient,.hero--doc .lede{margin-left:0;margin-right:0}.hero--doc .lede{font-size:.93rem;line-height:1.45}.pill{border:1px solid var(--pill-border);background:var(--pill-bg);min-height:30px;color:var(--pill-text);border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 12px 6px 10px;font-size:13px;line-height:1;display:inline-flex}.pill i{background:linear-gradient(140deg, var(--positive) 0%, var(--hue-cyan) 100%);width:6px;height:6px;box-shadow:0 0 6px 1px var(--positive-glow);border-radius:50%;flex:none;position:relative}.hero h1,.takeover h1,.section h2,.close h2,.panel h2{letter-spacing:-.045em;font-weight:600;line-height:.98}.hero h1{width:fit-content;max-width:100%;margin:18px auto 10px;font-size:clamp(2.4rem,7vw,5.6rem)}.hero--doc h1{text-align:left;margin-left:0;margin-right:0}.hero--doc .roleline,.hero--doc .actions,.hero--doc .socials,.hero--doc .ai-marks{text-align:left;justify-content:flex-start}.roleline{margin:0}.roleline__titles{vertical-align:baseline;white-space:nowrap;display:inline-grid}.roleline--pill{white-space:nowrap;max-width:100%;line-height:1}.roleline--pill .roleline__titles,.roleline--pill .roleline__title,.roleline--pill .roleline__word{line-height:1}.roleline--pill.is-sized .roleline__titles{align-items:center;height:1em;display:flex;position:relative;overflow:visible}.roleline--pill.is-sized .roleline__title{grid-area:auto;width:max-content;height:1em;line-height:1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.roleline--display{letter-spacing:-.04em;white-space:nowrap;margin:0;font-size:clamp(.82rem,.45rem + 1.7vw,2.15rem);font-weight:600;line-height:1.15}.roleline__title{opacity:0;white-space:nowrap;grid-area:1/1;transition:opacity .45s}.roleline__title.is-on{opacity:1}.roleline__word{opacity:0;display:inline-block}.roleline__word+.roleline__word{margin-left:.32em}.roleline--display .roleline__word{background-image:var(--title-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.gradient{letter-spacing:-.04em;background:var(--title-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;max-width:18ch;margin:0 auto;font-size:clamp(1.35rem,3vw,2.25rem);font-weight:600;line-height:1.15}.lede{max-width:46rem;color:var(--muted);margin:18px auto 0;font-size:1.05rem}.actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.actions--start{justify-content:flex-start}.button{background:var(--button-bg);height:40px;color:var(--button-text);border-radius:999px;align-items:center;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--button-hover)}.button--ghost{color:var(--ghost-text);border:1px solid var(--ghost-border);background:0 0}.button--ghost:hover{border-color:var(--hover);background:0 0}button.button{cursor:pointer;border:0;font-family:inherit}button.button.button--ghost{border:1px solid var(--ghost-border)}.links button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.links button:hover{color:var(--hover)}.quiet{color:var(--muted);margin:22px 0 0;font-size:.95rem}.quiet a,.text-link{color:var(--link)}main>section:not(.hero){border-top:1px solid var(--rule-soft)}.section{padding-top:84px}.kicker{color:var(--faint);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:500;line-height:1.4}.section h2,.panel h2,.close h2{margin:0 0 20px;font-size:clamp(1.8rem,3vw,2.5rem)}.about p:not(.kicker){color:var(--muted);max-width:68ch;margin:0 0 14px}.about h3{letter-spacing:-.03em;margin:28px 0 0;font-size:1.25rem;font-weight:600}.skills,.tags{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.skills li,.tags li{border:1px solid var(--line);color:var(--chip-text);font-family:var(--mono);border-radius:999px;padding:5px 10px;font-size:12px;line-height:1.4}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;min-height:100%;padding:22px;text-decoration:none;display:flex;position:relative}@media (prefers-reduced-motion:no-preference){.card{transition:border-color .16s,transform .16s}.card:hover{transform:translateY(-2px)}}.card:hover{border-color:var(--line-strong)}.status{color:var(--faint);font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:5px;margin:0;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.status i{background:var(--dot);border-radius:50%;flex:none;width:5px;height:5px;position:relative}.status--online i{background:linear-gradient(140deg, var(--positive) 0%, var(--hue-cyan) 100%);box-shadow:0 0 6px 1px var(--positive-glow)}.status--offline{color:var(--faint)}.status--offline i{background:var(--dot);box-shadow:none}.status--offline span{animation:none}.card .status{position:absolute;top:20px;right:18px}.takeover .status{justify-content:flex-end;width:100%;margin:0 0 12px;display:flex}.card h3{letter-spacing:-.04em;margin:0;padding-right:96px;font-size:1.45rem;line-height:1.1}.card p:not(.status):not(.also){color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:12px 0 0;display:-webkit-box;overflow:hidden}.card .platforms{margin-top:auto;padding-top:18px}.more{margin:22px 0 0}.timeline,.roles{margin:0;padding:0;list-style:none}.timeline li{border-top:1px solid var(--line);grid-template-columns:14rem 1fr auto;align-items:baseline;gap:16px;padding:16px 0;display:grid}.timeline span,.role__meta{color:var(--muted);font-size:.95rem}.timeline strong{font-weight:600}.timeline em{color:var(--faint);font-style:normal}.writing{margin:0;padding:0;list-style:none}.writing a{border-top:1px solid var(--line);gap:4px;padding:18px 0;text-decoration:none;display:grid}.writing time{color:var(--faint);font-family:var(--mono);font-size:12px}.writing strong{letter-spacing:-.03em;font-size:1.15rem}.writing span{color:var(--muted)}.close{text-align:center;padding-top:96px}.close__text{max-width:36rem;color:var(--muted);margin:0 auto}.footer{border-top:1px solid var(--line);padding:14px 0 22px}.footer__marks{flex-wrap:wrap;justify-content:center;gap:10px 16px;width:min(1080px,100% - 40px);margin:0 auto 12px;padding:0;list-style:none;display:flex}.footer__marks li{place-items:center;display:grid}.footer__marks svg{width:22px;height:22px;display:block}.footer__inner{color:var(--faint);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px 16px;padding:4px 0 0;font-size:14px;display:grid}.footer__copy{justify-self:start;min-width:0}.footer__social{justify-self:center;gap:16px;display:flex}.footer__end{justify-self:end}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--hover)}.footer p{margin:0}.footer__note{color:var(--faint);margin-top:4px;font-size:13px}.footer__dots i{opacity:0;font-style:normal}.term{vertical-align:baseline;display:inline-grid}.term.is-live{vertical-align:baseline;height:1.15em;display:inline-block;position:relative}.term__word{opacity:0;grid-area:1/1}.term.is-live .term__word{white-space:nowrap;grid-area:auto;width:max-content;position:absolute;top:0;left:0}.term__word.is-on{opacity:1}@keyframes dot-in{to{opacity:1}}.figures{grid-template-columns:1fr 1fr;gap:18px;display:grid}.figures--shape{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin-top:22px}.figures--shape p{border-bottom:1px solid var(--line);min-width:0;margin:0;padding:14px 8px 14px 0}.figures--shape p:nth-child(2n){border-left:1px solid var(--line);padding-left:12px}.figures strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.55rem;display:block}.figures--shape strong{letter-spacing:-.045em;white-space:nowrap;font-size:1.75rem;line-height:1.05}.figures span{color:var(--muted);font-size:13px}.stats{grid-template-columns:1.45fr .8fr;gap:16px;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:24px}.panel--record{flex-direction:column;height:100%;display:flex}.record-body{flex-direction:column;flex:auto;display:flex}.bars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.bars>li[hidden]{display:none!important}.bars li{grid-template-columns:1fr auto;align-items:center;gap:6px 12px;display:grid}.bars .track{grid-column:1/-1}.bars b{font-size:.92rem;font-weight:600}.track{background:var(--track);border-radius:999px;height:8px;overflow:hidden}.fill{height:100%;width:var(--bar,0%);border-radius:inherit;background-image:linear-gradient(90deg, var(--hue-indigo) 0%, var(--hue-cyan) 38%, var(--hue-violet) 62%, var(--hue-indigo) 100%);background-position:0%;background-size:220% 100%;display:block}.months{color:var(--faint);font-family:var(--sans);letter-spacing:.06em;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.bars .months{text-transform:uppercase;letter-spacing:.08em}sup.llc{letter-spacing:.04em;color:var(--muted);vertical-align:super;margin-left:.18em;font-size:.62em;font-weight:650}.overlays{grid-column:1/-1;gap:7px;margin:6px 0 0;padding:0;list-style:none;display:grid}.overlay{grid-template-columns:1fr auto;align-items:baseline;gap:4px 12px;display:grid}.overlay b{color:var(--muted);padding-left:14px;font-size:.72rem;font-weight:500}.assoc{color:var(--faint);grid-column:1/-1;padding-left:14px;font-size:.66rem;font-weight:500;line-height:1.3}.overlay .track{background:0 0;grid-column:1/-1;height:6px}.overlay__span{width:var(--span);border-radius:inherit;background:0 0;height:100%;display:block;position:relative;overflow:hidden}.overlay__span .fill{top:0;left:var(--offset,0%);width:var(--bar,0%);margin:0;position:absolute}.overlay__span .fill--child{background-image:none;animation:none}.fill--child[data-hue=amber]{background-color:var(--bar-amber)}.fill--child[data-hue=green]{background-color:var(--bar-green)}.fill--child[data-hue=teal]{background-color:var(--bar-teal)}.fill--child[data-hue=gold]{background-color:var(--bar-gold)}.fill--child[data-hue=blue]{background-color:var(--bar-blue)}.fill--child[data-hue=copper]{background-color:var(--bar-copper)}.fill--child[data-hue=navy]{background-color:var(--bar-navy)}.pager{align-items:center;gap:12px;margin-top:16px;display:flex}.record-body .pager{margin-top:auto;padding-top:16px}.pager button{border:1px solid var(--line);color:var(--text);min-height:34px;font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:13px}.pager button:disabled{color:var(--faint);cursor:default}.pager [data-pager-status]{color:var(--faint);font-variant-numeric:tabular-nums;font-size:13px}.doc-tools{justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.doc-tools .kicker{margin:0}.pdf{color:var(--faint);font:inherit;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-size:11px;font-weight:500}.pdf:hover{color:var(--text)}.ai-practice{max-width:46rem;margin-top:28px}.ai-marks{flex-wrap:wrap;align-items:center;gap:14px 22px;margin:0;padding:0;list-style:none;display:flex}.ai-marks li{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.ai-marks svg{flex:none;width:16px;height:16px;display:block}.ai-practice p{color:var(--muted);margin:12px 0 0}.mix{background:var(--track);border-radius:999px;height:10px;display:flex;overflow:hidden}.mix span:first-child{background:var(--hue-violet)}.mix span:nth-child(2){background:var(--hue-indigo)}.mix span:nth-child(3){background:var(--hue-cyan)}.mix span:nth-child(4){background:var(--hue-pink)}.legend{color:var(--muted);flex-wrap:wrap;gap:12px 16px;margin:14px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.legend i{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.legend--mix li:first-child i{background:var(--hue-violet)}.legend--mix li:nth-child(2) i{background:var(--hue-indigo)}.legend--mix li:nth-child(3) i{background:var(--hue-cyan)}.legend--mix li:nth-child(4) i{background:var(--hue-pink)}.mix span[data-kind=Full-Time]{background:var(--hue-violet)}.mix span[data-kind=Contractor]{background:var(--hue-indigo)}.mix span[data-kind=Internship]{background:var(--hue-cyan)}.mix span[data-kind=Leader]{background:var(--hue-pink)}.roles>li{z-index:0;border-top:1px solid var(--line);padding:28px 0;position:relative}@media (prefers-reduced-motion:no-preference){.roles>li:before{content:"";z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse 70% 80% at 22% 40%, var(--hue-glow), transparent 72%);filter:blur(22px);transition:opacity .8s;position:absolute;inset:18% 18% 30% 6%}.roles>li.is-lit:before{opacity:1}}.roles h3{color:var(--text);letter-spacing:-.03em;margin:0;font-size:1.25rem}.role__meta{margin:6px 0 0}.role__when{color:var(--muted);margin:2px 0 0;font-size:.78rem}.roles ul{color:var(--muted);margin:14px 0 0;padding-left:1.1rem}.roles li li{border:0;padding:0 0 8px}.takeover{width:min(760px,100% - 40px);margin:0 auto;padding:72px 0 88px}.takeover h1{margin:8px 0 18px;font-size:clamp(2.8rem,8vw,5.2rem)}.summary{color:var(--prose);margin:0;font-size:1.2rem}.hint{color:var(--faint);margin-top:36px;font-size:14px}.tabs{flex-wrap:wrap;gap:8px;margin:8px 0 16px;display:flex}.tab{position:relative}.tab input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.tab label{border:1px solid var(--pill-border);height:34px;color:var(--muted);border-radius:999px;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.tab:has(input:checked) label{background:var(--button-bg);border-color:var(--button-bg);color:var(--button-text)}.tab input:focus-visible+label{outline:2px solid var(--focus);outline-offset:3px}.switcher .panel{display:none}.switcher:has(#stack-astro:checked) .panel[data-for=astro],.switcher:has(#stack-next:checked) .panel[data-for=next],.switcher:has(#stack-react:checked) .panel[data-for=react],.switcher:has(#stack-angular:checked) .panel[data-for=angular],.switcher:has(#stack-ember:checked) .panel[data-for=ember],.switcher:has(#stack-svelte:checked) .panel[data-for=svelte],.switcher:has(#stack-vue:checked) .panel[data-for=vue],.switcher:has(#stack-wordpress:checked) .panel[data-for=wordpress],.switcher:has(#stack-drupal:checked) .panel[data-for=drupal]{display:block}.payload{border:1px solid var(--line);background:var(--code);max-height:440px;color:var(--code-text);font-family:var(--mono);border-radius:16px;margin:0;padding:18px 20px;font-size:12.5px;line-height:1.6;overflow:auto}.platforms{flex-wrap:wrap;align-items:center;gap:10px 12px;margin:18px 0 0;padding:0;list-style:none;display:flex}.platforms li{color:var(--text);place-items:center;display:grid}.platforms svg{width:22px;height:22px;display:block}.socials{align-items:center;gap:14px;margin:18px 0 0;padding:0;list-style:none;display:flex}.socials a{color:var(--text);place-items:center;text-decoration:none;display:grid}.socials svg{width:20px;height:20px;display:block}.socials a:hover{color:var(--hover)}.also{color:var(--faint);margin:12px 0 0;font-size:13px;line-height:1.5}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.reassure{width:min(58rem,100%);margin:28px auto 0}.reassure .actions{margin-top:0}.checks{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:0 0 22px;padding:22px 0 0;list-style:none;display:flex}.hero--doc .checks{justify-content:flex-start}.checks li{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:400;line-height:20px;display:flex}.checks__mark{background:var(--check-bg);width:24px;height:24px;box-shadow:inset 0 0 0 1px var(--check-ring);color:var(--check-icon);border-radius:999px;flex:none;place-items:center;display:grid}.checks__mark svg{display:block}.checks__open,.checks__open .checks__mark{color:var(--positive)}.board{grid-template-columns:minmax(0,.92fr) minmax(260px,1.08fr);align-items:center;gap:28px 40px;margin-top:18px;display:grid}.board__list{min-width:0}.board__item{border-bottom:1px solid var(--line);grid-template-rows:auto 0fr;display:grid;position:relative}.board__item.is-open{grid-template-rows:auto 1fr}.board__item:first-child{border-top:1px solid var(--line)}.board__tab{width:100%;color:var(--faint);font:inherit;letter-spacing:-.02em;text-align:left;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:10px;padding:13px 2px;font-size:1.05rem;font-weight:500;display:flex}.board__tab:hover,.board__item.is-open .board__tab{color:var(--text)}.board__icon{background:color-mix(in srgb, var(--tile,var(--accent-teal)) 18%, transparent);width:32px;height:32px;color:var(--tile,var(--accent-teal));border-radius:9px;flex:none;place-items:center;display:grid}.board__item.is-open .board__icon{color:var(--tile,var(--live))}.board__icon svg{width:18px;height:18px;display:block}.board__copy{flex:1;gap:2px;min-width:0;display:grid}.board__name{min-width:0}.board__line{color:var(--muted);letter-spacing:0;font-size:.88rem;font-weight:400;line-height:1.35}.board__chevron{color:var(--faint);flex:none;align-self:center;transition:transform .36s}.board__item.is-open .board__chevron{transform:scaleY(-1)}.board__panel{min-height:0;overflow:hidden}.board__panel p{color:var(--muted);margin:0;padding:0 8px 14px 44px;font-size:.95rem;line-height:1.45}.board__meter{height:2px;clip-path:inset(0 calc(100% - var(--meter)) 0 0);pointer-events:none;background:linear-gradient(90deg,#4f88ff 0%,#90a0ff 38%,#e0a5f2 70%,#fd4d9a 100%);position:absolute;bottom:-1px;left:0;right:0}.board__item.is-open .board__meter{animation:8s linear forwards service-meter}.board.is-paused .board__meter{animation-play-state:paused}.board__stage{background:var(--stage);border-radius:24px;min-height:300px;position:relative;overflow:hidden}.board__scene{opacity:0;place-items:center;transition:opacity .45s;display:grid;position:absolute;inset:0}.board__scene.is-on{opacity:1;z-index:1}.board__toggle{z-index:2;background:color-mix(in srgb, var(--surface) 88%, transparent);width:28px;height:28px;color:var(--muted);box-shadow:0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;bottom:14px;right:14px}.board__toggle:hover{color:var(--text)}.board__play,.board.is-paused .board__pause,.board.is-static .board__pause{display:none}.board.is-paused .board__play,.board.is-static .board__play{display:block}.motion{background:var(--stage-plate);box-shadow:0 0 0 1px var(--line-strong);border-radius:18px;padding:26px 32px}.motion--pulse{place-items:center;width:120px;height:120px;padding:0;display:grid}.motion--pulse span{background:var(--live);width:16px;height:16px;box-shadow:0 0 0 0 color-mix(in srgb, var(--live) 45%, transparent);border-radius:50%;animation:2.6s ease-out infinite scene-pulse}.motion--fill{background:var(--track);border-radius:999px;width:min(220px,70%);height:10px;overflow:hidden}.motion--fill i{border-radius:inherit;background:linear-gradient(90deg, var(--hue-indigo), var(--live));transform-origin:0;width:100%;height:100%;animation:2.4s ease-in-out infinite alternate scene-fill;display:block;transform:scaleX(.18)}.motion--shift,.motion--align{gap:12px;width:min(220px,72%);display:grid}.motion--shift i,.motion--align i{background:color-mix(in srgb, var(--text) 72%, transparent);transform-origin:0;border-radius:999px;height:8px;display:block}.motion--shift i{width:100%;animation:2.8s ease-in-out infinite scene-shift}.motion--shift i:nth-child(2){opacity:.7;animation-delay:.15s}.motion--shift i:nth-child(3){opacity:.45;animation-delay:.3s}.motion--stack{gap:8px;display:grid}.motion--stack i{background:color-mix(in srgb, var(--text) 16%, var(--stage));border:1px solid var(--line-strong);border-radius:6px;width:148px;height:22px;animation:2.8s ease-in-out infinite scene-stack;display:block}.motion--stack i:nth-child(2){animation-delay:.12s}.motion--stack i:nth-child(3){animation-delay:.24s}.motion--align i{width:100%;animation:2.6s ease-in-out infinite scene-align}.motion--align i:first-child{transform:scaleX(.42)}.motion--align i:nth-child(2){transform:scaleX(.78)}.motion--align i:nth-child(3){transform:scaleX(.6)}.motion--align i:nth-child(4){transform:scaleX(.34)}.motion--check{width:96px;height:96px;color:var(--live)}.motion--check circle{opacity:.45}.motion--check path{stroke-dasharray:1;stroke-dashoffset:1px;animation:2.4s infinite scene-draw}.board.is-paused .board__scene *,.board__scene:not(.is-on) *{animation-play-state:paused}.theme-dock{border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 84%, transparent);border-radius:999px;gap:2px;padding:3px;display:flex}.theme-dock button{width:26px;height:26px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid}.theme-dock button:hover{color:var(--text)}html[data-theme-choice=system] .theme-dock [data-theme-set=system],html[data-theme-choice=light] .theme-dock [data-theme-set=light],html[data-theme-choice=dark] .theme-dock [data-theme-set=dark]{color:var(--text);background:color-mix(in srgb, var(--text) 14%, transparent)}.theme-dock svg{display:block}@keyframes scene-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--live) 40%, transparent)}70%{box-shadow:0 0 0 18px #0000}to{box-shadow:0 0 #0000}}@keyframes scene-fill{to{transform:scaleX(1)}}@keyframes scene-shift{0%,to{transform:translate(0)}50%{transform:translate(14px)}}@keyframes scene-stack{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes scene-align{50%,70%{transform:scaleX(1)}}@keyframes scene-draw{0%{stroke-dashoffset:1px}40%,to{stroke-dashoffset:0}}@keyframes name-flash{0%{-webkit-text-fill-color:transparent;background-position:0%;-webkit-background-clip:text;background-clip:text}72%{-webkit-text-fill-color:transparent;background-position:100%;-webkit-background-clip:text;background-clip:text}to{-webkit-text-fill-color:var(--text);color:var(--text);background-position:100%;-webkit-background-clip:text;background-clip:text}}@keyframes line-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes bar-travel{0%{background-position:0%}to{background-position:100%}}@keyframes word-in{0%{opacity:0}to{opacity:1}}@keyframes stat-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.nameflash{background-image:linear-gradient(100deg, #7c3aed 0%, var(--hue-cyan) 14%, #f472b6 28%, #34d399 42%, var(--hue-indigo) 56%, var(--hue-pink) 70%, var(--text) 86%, var(--text) 100%);color:#0000;-webkit-text-fill-color:transparent;background-position:0%;background-repeat:no-repeat;background-size:320% 100%;-webkit-background-clip:text;background-clip:text;animation:1.45s linear forwards name-flash}.reveal{animation:.55s 1.2s both line-in}.roleline--pill.is-sized .roleline__titles{transition:width .42s}.roleline__title.is-on .roleline__word{animation:.24s both word-in;animation-delay:calc(var(--w,0) * 75ms)}.fill{animation:3.8s linear infinite bar-travel}.overlay__span .fill--child{animation:none}.board__item{transition:grid-template-rows .4s}.term.is-live{transition:width .45s}.term__word{transition:opacity .45s}.footer__marks{opacity:0;transform:translateY(12px)}.footer.is-in .footer__marks{opacity:1;transition:transform .55s,opacity .55s;transform:none}.footer.is-full .footer__dots i{animation:.4s forwards dot-in}.footer.is-full .footer__dots i:nth-child(2){animation-delay:.55s}.footer.is-full .footer__dots i:nth-child(3){animation-delay:1.1s}.dialog{opacity:0;transition:opacity .2s ease, transform .2s ease, overlay .2s ease allow-discrete, display .2s allow-discrete;transform:translateY(10px)}.dialog[open]{opacity:1;transform:none}@starting-style{.dialog[open]{opacity:0;transform:translateY(10px)}}.dialog::backdrop{opacity:0;transition:opacity .2s ease, overlay .2s ease allow-discrete, display .2s allow-discrete}.dialog[open]::backdrop{opacity:1}@starting-style{.dialog[open]::backdrop{opacity:0}}.dialog__close{transition:background .2s,color .2s,transform .2s,border-color .2s}.figures--shape.will-reveal:not(.is-in)>p{opacity:0;transform:translateY(8px)}.figures--shape.will-reveal.is-in>p{animation:.45s both stat-in}.figures--shape.will-reveal.is-in>p:first-child{animation-delay:40ms}.figures--shape.will-reveal.is-in>p:nth-child(2){animation-delay:.16s}.figures--shape.will-reveal.is-in>p:nth-child(3){animation-delay:.28s}.figures--shape.will-reveal.is-in>p:nth-child(4){animation-delay:.4s}.figures--shape.will-reveal.is-in>p:nth-child(5){animation-delay:.52s}.figures--shape.will-reveal.is-in>p:nth-child(6){animation-delay:.64s}.collab{background-image:linear-gradient(100deg, #7c3aed 0%, var(--hue-cyan) 16%, #f472b6 32%, #34d399 48%, var(--hue-indigo) 64%, var(--text) 82%, var(--text) 100%);background-repeat:no-repeat;background-size:320% 100%;-webkit-background-clip:text;background-clip:text;animation:5s linear infinite collab-flash}}.prose{max-width:68ch}.prose h2{letter-spacing:-.03em;margin:2rem 0 .6rem;font-size:1.35rem}.prose p,.prose li{color:var(--prose)}.prose a{color:var(--link)}.prose ul,.prose ol{padding-left:1.2rem}.prose pre{border:1px solid var(--line);border-radius:12px;padding:16px 18px;overflow-x:auto}.prose :not(pre)>code{font-family:var(--mono);background:var(--code-inline);border-radius:4px;padding:.1em .35em;font-size:.92em}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none}.dialog,.dialog::backdrop{transition:none;animation:none}.dialog{opacity:1}.nameflash,.reveal,.fill,.roleline__title,.roleline__word,.roles>li,.roles>li:before,.status--online span,.status--online i:after,.pill i:after,.year__cells .day,.comfort__copy,.collab,.dialog__close{transition:none;animation:none}.nameflash,.collab{color:var(--text);-webkit-text-fill-color:var(--text);background:0 0}.dialog__close:hover{transform:none}.reveal{opacity:1;transform:none}.fill{background-position:0%}.roleline__title:not(.is-on),.term__word:not(.is-on){display:none}.roleline__title.is-on,.roleline__title.is-on .roleline__word{opacity:1}.roles>li,.roles>li.is-lit{box-shadow:none}.roles>li:before{opacity:0;content:none}.board__meter{opacity:0;animation:none!important}.board__chevron,.board__scene,.board__scene *{transition:none;animation:none!important}.board__toggle{display:none}.footer__marks{opacity:1;transform:none}.footer__dots i{opacity:1;animation:none}.figures--shape.will-reveal>p{opacity:1;animation:none;transform:none}}@media (width<=800px){.grid,.stats,.timeline li{grid-template-columns:1fr}.piece-bar{flex-wrap:wrap;display:flex}.footer__inner{grid-template-columns:1fr;justify-items:center}.footer__copy,.footer__social,.footer__end{text-align:center;justify-self:center}.hero{padding-top:56px}.section{padding-top:64px}.board{grid-template-columns:1fr}.board__stage{min-height:220px}}.figures--wide{grid-template-columns:repeat(3,minmax(0,1fr))}.lang{background:var(--track);border-radius:999px;height:20px;display:flex;overflow:hidden}.lang span[data-kind=javascript]{background:var(--hue-yellow)}.lang span[data-kind=frameworks]{background:var(--hue-violet)}.lang span[data-kind=wordpress]{background:var(--hue-sky)}.lang span[data-kind=php]{background:var(--hue-indigo)}.lang span[data-kind=drupal]{background:var(--hue-cyan)}.lang span[data-kind=python]{background:var(--hue-blue)}.lang span[data-kind=ruby]{background:var(--hue-rose)}.legend--lang li[data-kind=javascript] i{background:var(--hue-yellow)}.legend--lang li[data-kind=frameworks] i{background:var(--hue-violet)}.legend--lang li[data-kind=wordpress] i{background:var(--hue-sky)}.legend--lang li[data-kind=php] i{background:var(--hue-indigo)}.legend--lang li[data-kind=drupal] i{background:var(--hue-cyan)}.legend--lang li[data-kind=python] i{background:var(--hue-blue)}.legend--lang li[data-kind=ruby] i{background:var(--hue-rose)}.contrib{margin-top:48px}.contrib h3{letter-spacing:-.03em;margin:0 0 8px;font-size:1.35rem;font-weight:600}.contrib>.hint{margin-top:0;margin-bottom:18px}.contrib .figures{margin-bottom:18px}.contrib__switch .contrib__panel{display:none}.contrib:has(#contrib-public:checked) .contrib__panel[data-for=public],.contrib:has(#contrib-private:checked) .contrib__panel[data-for=private],.contrib:has(#contrib-both:checked) .contrib__panel[data-for=both]{display:block}.tabs{border:0;min-inline-size:0;padding:0}.year{--cell-gap:clamp(2px, .35vw, 4px);grid-template-columns:auto minmax(0,1fr);gap:6px;width:100%;display:grid;overflow-x:auto}.year__months{gap:var(--cell-gap);min-width:100%;color:var(--faint);grid-area:1/2;grid-template-columns:repeat(53,minmax(11px,1fr));margin:0;font-size:10px;line-height:1;display:grid}.year__body{display:contents}.year__dow{gap:var(--cell-gap);width:22px;color:var(--faint);grid-area:2/1;grid-template-rows:repeat(7,minmax(0,1fr));font-size:9px;line-height:1;display:grid}.year__dow span{align-items:center;display:flex}.year__cells{gap:var(--cell-gap);aspect-ratio:53/7.4;grid-area:2/2;grid-template-rows:repeat(7,minmax(0,1fr));grid-template-columns:repeat(53,minmax(11px,1fr));grid-auto-flow:column;width:100%;min-width:100%;display:grid}.year__cells .day{background:var(--cell,var(--day-empty));border-radius:2px;width:auto;min-width:0;height:auto;min-height:0}.year__cells .day[data-level="0"]{--cell:#123d28}.year__cells .day[data-level="1"]{--cell:#0e4429}.year__cells .day[data-level="2"]{--cell:#006d32}.year__cells .day[data-level="3"]{--cell:#26a641}.year__cells .day[data-level="4"]{--cell:#39d353}.year__cells .day[data-fill=private][data-level="0"]{--cell:#16332e}.year__cells .day[data-fill=private][data-level="1"]{--cell:#1a3330}.year__cells .day[data-fill=private][data-level="2"]{--cell:#234e46}.year__cells .day[data-fill=private][data-level="3"]{--cell:#2f6b5e}.year__cells .day[data-fill=private][data-level="4"]{--cell:#3d8574}.day{background:var(--day-empty);border-radius:2px;width:11px;height:11px}.day[data-level="1"]{background:#0e4429}.day[data-level="2"]{background:#006d32}.day[data-level="3"]{background:#26a641}.day[data-level="4"]{background:#39d353}.day[data-fill=private][data-level="1"]{background:#1a3330}.day[data-fill=private][data-level="2"]{background:#234e46}.day[data-fill=private][data-level="3"]{background:#2f6b5e}.day[data-fill=private][data-level="4"]{background:#3d8574}@media (prefers-reduced-motion:no-preference){.year__cells .day:not([data-level="4"]),.year__cells .day[data-fill=private]{animation:5.4s ease-in-out infinite cell-bloom;animation-delay:calc(var(--i) * -48ms)}.year__cells .day[data-level="4"]:not([data-fill=private]){animation:none}.status--online span{animation:3.8s ease-in-out infinite status-breathe}.status--online i:after,.pill i:after{content:"";border-radius:inherit;animation:2.2s ease-out infinite status-ping;position:absolute;inset:0}.comfort__copy{transition:color .45s}}@keyframes cell-bloom{0%,to{background-color:var(--cell)}46%,58%{background-color:#39d353}}@keyframes status-breathe{0%,to{opacity:.38}50%{opacity:1}}@keyframes status-ping{0%{box-shadow:0 0 #3ecf8e8c}75%,to{box-shadow:0 0 0 7px #3ecf8e00}}.scale{color:var(--faint);justify-content:flex-end;align-items:center;gap:4px;margin:10px 0 0;font-size:12px;display:flex}.dialog{z-index:80;width:min(624px,100% - 32px);max-height:calc(100% - 32px);color:var(--text);--frame-fill:var(--dialog);border-radius:0;padding:22px;overflow:auto}.dialog.gradient-frame,.dialog.gradient-frame:after{border-radius:0}.dialog::backdrop{background:#000000db}.dialog form{gap:14px;display:grid}.dialog__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dialog h2{letter-spacing:-.04em;margin:0;font-size:1.45rem;font-weight:600}.dialog__lede p{color:var(--muted);margin:0 0 .9em}.dialog__pitch{font-size:calc(1em - 4px);line-height:1.55}.dialog__lede p:last-child{margin-bottom:0}.collab{color:var(--text)}.dialog__close{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.dialog__close:hover{color:var(--text);border-color:var(--line-strong);background:var(--check-bg);transform:scale(1.06)}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:13px}.field__control{position:relative}.field__icon{width:16px;height:16px;color:var(--faint);pointer-events:none;display:grid;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.field__icon svg{display:block}.dialog input{border:1px solid var(--line);background:var(--input);width:100%;color:var(--text);font:inherit;border-radius:0;padding:10px 12px 10px 38px;font-size:16px}.dialog input::placeholder{color:var(--faint)}.dialog input:focus,.composer__body:focus{outline:1px solid var(--line-strong);outline-offset:-1px}.dialog input[aria-invalid=true]{border-color:var(--danger)}.dialog input[aria-invalid=true]:focus{outline-color:var(--danger)}.field__control:has(input[aria-invalid=true]) .field__icon{color:var(--danger)}.composer:has(.composer__body[aria-invalid=true]){border-color:var(--danger)}.composer:has(.composer__body[aria-invalid=true]) .composer__body:focus{outline-color:var(--danger)}.composer{border:1px solid var(--line);background:var(--input)}.composer__bar,.composer__link{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:6px;display:flex}.composer__link[hidden]{display:none}.composer__bar button,.composer__link button{min-width:28px;height:28px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0 8px;font-size:13px;display:grid}.composer__bar button:hover,.composer__link button:hover{color:var(--text);background:var(--check-bg)}.composer__link input{flex:1;padding-left:10px}.composer__body{min-height:120px;color:var(--text);white-space:pre-wrap;padding:10px 12px;font-size:16px;line-height:1.45}.composer__body.is-empty:before{content:attr(data-placeholder);color:var(--faint)}.field__error{color:var(--danger);margin:0;font-size:13px}.form-note{color:var(--danger);margin:0;font-size:14px}.form-note[data-ok=true]{color:var(--ok)}.dialog__actions{display:flex}@keyframes collab-flash{0%,86%,to{-webkit-text-fill-color:var(--text);color:var(--text);background-position:100%;-webkit-background-clip:text;background-clip:text}89%{-webkit-text-fill-color:transparent;color:#0000;background-position:0%;-webkit-background-clip:text;background-clip:text}97%{-webkit-text-fill-color:transparent;color:#0000;background-position:100%;-webkit-background-clip:text;background-clip:text}}@media (prefers-reduced-motion:reduce){.dialog,.dialog::backdrop{transition:none;animation:none}.dialog{opacity:1;transform:none}.dialog__close,.dialog__close:hover{transition:none;transform:none}.collab{color:var(--text);-webkit-text-fill-color:var(--text);background:0 0;animation:none}}@media (width<=800px){.figures--wide{grid-template-columns:1fr}}.gradient-frame{background:linear-gradient(var(--frame-fill,var(--panel)), var(--frame-fill,var(--panel))) padding-box, linear-gradient(125deg, #3d6fbe, #6d5bd6 42%, #8a74e8 68%, #2a9d97) border-box;background-position:0 0,0 30%;background-size:auto,180% 180%;border:1px solid #0000;border-radius:18px;position:relative}.gradient-frame>*{z-index:1;position:relative}.gradient-frame:after{content:"";z-index:0;border-radius:inherit;pointer-events:none;transform-origin:100% 0;background:radial-gradient(90% 70% at 100% 0,#6d5bd633,#0000 52%);position:absolute;inset:0}.dialog.gradient-frame form{z-index:2;position:relative}.board__stage.gradient-frame .board__scenes{z-index:2;position:absolute;inset:0}.board__stage.gradient-frame .board__toggle{z-index:3;position:absolute}.bars>li.gradient-frame{padding:12px 12px 8px}.board__stage.gradient-frame{border-radius:24px}@media (prefers-reduced-motion:no-preference){.gradient-frame{animation:18s ease-in-out infinite alternate frame-drift}.gradient-frame:after{animation:7s forwards highlight-settle}}@keyframes frame-drift{0%{background-position:0 0,0 20%}to{background-position:0 0,100% 85%}}@keyframes highlight-settle{0%{opacity:1;transform:scale(1.06)}to{opacity:.7;transform:scale(1)}}.wash{padding:88px 0 12px;position:relative}.wash:before{content:"";pointer-events:none;background:radial-gradient(ellipse 48% 70% at 32% 50%, color-mix(in srgb, var(--accent-blue) 32%, transparent), transparent 70%), radial-gradient(ellipse 42% 64% at 72% 42%, color-mix(in srgb, var(--accent-gold) 26%, transparent), transparent 68%), radial-gradient(ellipse 36% 56% at 54% 72%, color-mix(in srgb, var(--accent-teal) 22%, transparent), transparent 72%);filter:blur(6px);width:min(920px,92%);height:240px;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.wash .wrap{position:relative}.wash h2{margin-bottom:12px}.wash p:not(.kicker){color:var(--muted);max-width:40rem;margin:0}.wash--center{text-align:center}.wash--center p:not(.kicker){margin-inline:auto}.wash--comfort:before{height:340px;top:150px;transform:translate(-50%)}.practice-note{max-width:40rem;color:var(--muted);margin:0}.gradient-text{background:var(--title-gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.comfort{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px;margin:0;padding:0;list-style:none;display:grid}.comfort__row{align-items:center;gap:12px;min-width:0;display:flex}.comfort__icon{background:color-mix(in srgb, var(--tile) 18%, transparent);width:28px;height:28px;color:var(--tile);border-radius:8px;flex:none;place-items:center;display:grid}.comfort__icon svg{width:18px;height:18px;display:block}.comfort__col{flex:1;min-width:0}.comfort__track{background:var(--track);border-radius:999px;height:2px;overflow:hidden}.comfort__fill{border-radius:inherit;background:var(--tile);height:100%;display:block}.comfort__copy{color:var(--muted);justify-content:space-between;gap:10px;margin:4px 0 0;font-size:.82rem;line-height:1.2;display:flex}.comfort__name{letter-spacing:-.02em;font-weight:600}.comfort__row:hover .comfort__copy,.comfort__row:focus-within .comfort__copy{color:var(--text)}.facetbar{margin-top:12px}.facetbar__track{gap:3px;height:4px;margin:0;padding:0;list-style:none;display:flex}.facetbar__seg{background:var(--accent-teal);border-radius:999px;outline:none;flex:1;position:relative}.facetbar__seg:before{content:"";position:absolute;inset:-10px 0 -14px}.facetbar__seg[data-accent=amber]{background:var(--accent-amber)}.facetbar__seg[data-accent=green]{background:var(--accent-green)}.facetbar__seg[data-accent=teal]{background:var(--accent-teal)}.facetbar__seg[data-accent=gold]{background:var(--accent-gold)}.facetbar__seg[data-accent=blue]{background:var(--accent-blue)}.facetbar__tip{z-index:2;color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;font-size:12px;line-height:1.2;position:absolute;top:12px;left:50%;transform:translate(-50%)}.facetbar__seg:hover .facetbar__tip,.facetbar__seg:focus-visible .facetbar__tip{opacity:1}.platforms--pills{gap:8px}.platform-pill{border:1px solid var(--pill-border);background:var(--pill-bg);min-height:28px;color:var(--pill-text);border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 6px;font-size:12px;line-height:1.2;text-decoration:none;display:inline-flex}.platform-pill svg{flex:none;width:16px;height:16px;display:block}.socials--pills{flex-wrap:wrap;gap:8px}.socials--pills a{display:inline-flex}.mark-rows{gap:14px;margin:0;padding:0;list-style:none;display:grid}.mark-row{align-items:flex-start;gap:12px;display:flex}.mark-row__icon{background:color-mix(in srgb, var(--tile,var(--accent-teal)) 18%, transparent);width:32px;height:32px;color:var(--tile,var(--accent-teal));border-radius:9px;flex:none;place-items:center;display:grid}.mark-row__icon svg{width:18px;height:18px;display:block}.mark-row strong{letter-spacing:-.02em;font-size:.95rem;font-weight:600;display:block}.mark-row span span,.mark-row .mark-row__line{color:var(--muted);font-size:.88rem;line-height:1.35;display:block}.weakness{padding-top:48px}.comfort__fill,.fill--child,.facetbar__seg{-webkit-print-color-adjust:exact;print-color-adjust:exact}@media (width<=800px){.comfort{grid-template-columns:1fr}}@media print{:root,[data-theme=dark],[data-theme=light]{--bg:#fff;--text:#111;--muted:#333;--faint:#444;--eyebrow:#444;--line:#ccc;--surface:#fff;--panel:#fff;--prose:#222;--link:#111;--wordmark:#111;--hover:#111;--live:#0f6e78;--stage:#f4f1ea;--accent-amber:#9a5410;--accent-green:#047857;--accent-teal:#0f766e;--accent-gold:#8a6408;--accent-blue:#1e4e89;--bar-amber:#9a5410;--bar-green:#047857;--bar-teal:#0f766e;--bar-gold:#8a6408;--bar-blue:#1e4e89;--bar-copper:#8a4b32;--bar-navy:#1e4e89;--frame-fill:#fff}.theme-dock,.board__toggle,.board__meter,.pdf,.pager,.glow,.bar,.footer,.skip,.hint,.actions,.dialog,.dialog::backdrop{display:none!important}.bars>li,.bars>li[hidden]{display:grid!important}.figures--shape.will-reveal>p{opacity:1!important;animation:none!important;transform:none!important}body,.card,.panel{color:#111;background:#fff}.wash:before{content:none}.gradient-frame,.gradient-frame:after{transform:none;animation:none!important}.gradient,.gradient-text,.roleline--display .roleline__word,.nameflash{color:#111;-webkit-text-fill-color:#111;background:0 0}.roleline__title:not(.is-on){display:none!important}.roleline__title.is-on,.roleline__title.is-on .roleline__word{opacity:1!important}.reveal,.fill,.roleline__title,.roleline__word,.roles>li,.roles>li:before,.status--online span,.status--online i:after,.pill i:after,.collab,.year__cells .day{transition:none!important;animation:none!important}.fill{opacity:1;background-position:0%}.roles>li,.roles>li.is-lit{box-shadow:none!important}.roles>li:before{content:none!important;opacity:0!important}a,.lede,.about p,.roles ul,.timeline span{color:#111}}:root{--ds-bg:var(--bg);--ds-surface:var(--panel);--ds-fg:var(--text);--ds-fg-muted:var(--muted);--ds-fg-faint:var(--faint);--ds-rule:var(--line);--ds-rule-strong:var(--line-strong);--ds-accent:var(--accent-red,#e5484d);--ds-positive:var(--positive,#3cb87a);--ds-on-fg:var(--bg);--ds-ink-90:color-mix(in srgb, var(--ds-fg) 90%, transparent);--ds-ink-70:color-mix(in srgb, var(--ds-fg) 70%, transparent);--ds-ink-50:color-mix(in srgb, var(--ds-fg) 50%, transparent);--ds-ink-35:color-mix(in srgb, var(--ds-fg) 35%, transparent);--ds-ink-20:color-mix(in srgb, var(--ds-fg) 20%, transparent);--ds-ink-10:color-mix(in srgb, var(--ds-fg) 10%, transparent);--ds-ink-5:color-mix(in srgb, var(--ds-fg) 5%, transparent);--ds-font-sans:var(--sans,ui-sans-serif, system-ui, sans-serif);--ds-font-mono:var(--mono,ui-monospace, monospace);--ds-text-2xs:11px;--ds-text-xs:12px;--ds-text-sm:14px;--ds-text-md:16px;--ds-text-lg:18px;--ds-text-xl:22px;--ds-text-2xl:clamp(1.6rem, 2.6vw, 2.1rem);--ds-text-3xl:clamp(1.8rem, 3.4vw, 2.6rem);--ds-text-display:clamp(2.6rem, 6.4vw, 5.6rem);--ds-weight-regular:400;--ds-weight-medium:500;--ds-weight-bold:600;--ds-leading-tight:1.05;--ds-leading-snug:1.3;--ds-leading-body:1.55;--ds-tracking-display:-.045em;--ds-tracking-tight:-.03em;--ds-tracking-caps:.06em;--ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-5:20px;--ds-space-6:24px;--ds-space-8:32px;--ds-space-10:40px;--ds-space-12:48px;--ds-space-16:64px;--ds-space-section:clamp(112px, 10vw, 160px);--ds-space-section-sm:clamp(64px, 6vw, 96px);--ds-space-head:40px;--ds-radius-sm:6px;--ds-radius-pill:999px;--ds-hairline:1px;--ds-measure:68ch;--ds-control-h:40px;--ds-control-h-sm:32px;--ds-ease:cubic-bezier(.5, 0, .2, 1);--ds-ease-out:cubic-bezier(.2, .7, .2, 1);--ds-dur-fast:.15s;--ds-dur:.35s;--ds-dur-slow:.9s}@media print{html:root,html[data-theme]{--ds-bg:#fff;--ds-surface:#fff;--ds-fg:#111;--ds-fg-muted:#2b2b2b;--ds-fg-faint:#555;--ds-rule:#d9d9d9;--ds-rule-strong:#9a9a9a;--ds-accent:#111;--ds-positive:#111;--ds-on-fg:#fff;--ds-text-2xs:7pt;--ds-text-xs:7.75pt;--ds-text-sm:9pt;--ds-text-md:9.5pt;--ds-text-lg:10pt;--ds-text-xl:11pt;--ds-text-2xl:12pt;--ds-text-3xl:13.5pt;--ds-text-display:22pt;--ds-space-1:2pt;--ds-space-2:4pt;--ds-space-3:6pt;--ds-space-4:9pt;--ds-space-5:10pt;--ds-space-6:12pt;--ds-space-8:16pt;--ds-space-10:18pt;--ds-space-12:20pt;--ds-space-16:24pt;--ds-space-section:16pt;--ds-leading-body:1.45;--ds-leading-snug:1.35}}[data-print=only]{display:none!important}@media print{[data-print=hide]{display:none!important}[data-print=only]{display:revert!important}}.ds-link{--ds-link-rest:100%;color:inherit;background-image:linear-gradient(90deg, transparent, var(--ds-fg), transparent), linear-gradient(color-mix(in srgb, currentColor 70%, transparent), color-mix(in srgb, currentColor 70%, transparent)), linear-gradient(var(--ds-rule-strong), var(--ds-rule-strong));background-repeat:no-repeat;background-size:0 1px, 0 1px, var(--ds-link-rest) 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .35s cubic-bezier(.5, 0, .2, 1), color var(--ds-dur-fast) var(--ds-ease);background-position:-40% 100%,0 100%,0 100%;padding-bottom:2px;text-decoration:none!important}.ds-link--quiet{--ds-link-rest:0%}.ds-link:is(:hover,:focus-visible),.ds-link-host:is(:hover,:focus-within) .ds-link{color:var(--ds-fg);background-size:35% 1px, 100% 1px, var(--ds-link-rest) 1px}@media (prefers-reduced-motion:no-preference){.ds-link:is(:hover,:focus-visible),.ds-link-host:is(:hover,:focus-within) .ds-link{animation:.9s cubic-bezier(.5,0,.2,1) .3s both ds-link-pulse}}@keyframes ds-link-pulse{0%{background-position:-40% 100%,0 100%,0 100%}to{background-position:140% 100%,0 100%,0 100%}}.ds-pulse{position:relative}.ds-pulse:before{content:"";z-index:2;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ds-fg) 85%, transparent) 50%, transparent);opacity:0;pointer-events:none;background-position:-40% 0;background-repeat:no-repeat;background-size:30% 100%;width:100%;height:1px;position:absolute;top:-1px;left:0}@media (prefers-reduced-motion:no-preference){.ds-pulse.is-lit:before{animation:ds-rule-pulse 2.6s cubic-bezier(.5, 0, .2, 1) var(--pulse-delay,0s) 1}}@keyframes ds-rule-pulse{0%{opacity:0;background-position:-40% 0}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:140% 0}}.ds-pulse--center:before,.ds-pulse--center:after{content:"";z-index:2;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ds-fg) 85%, transparent) 50%, transparent);opacity:0;pointer-events:none;width:100%;height:1px;position:absolute;left:0;transform:scaleX(0)}.ds-pulse--center:before{top:-1px}.ds-pulse--center:after{bottom:-1px}@media (prefers-reduced-motion:no-preference){.ds-pulse--center.is-lit:before,.ds-pulse--center.is-lit:after{animation:2.4s cubic-bezier(.2,.6,.3,1) .6s both ds-center-pulse}}@keyframes ds-center-pulse{0%{opacity:0;transform:scaleX(0)}15%{opacity:1}to{opacity:0;transform:scaleX(1)}}@media print{.ds-link{background:0 0;padding-bottom:0;transition:none}.ds-pulse:before,.ds-pulse--center:after{display:none}}.ds-seg{isolation:isolate;position:relative}.ds-seg__thumb{z-index:0;border-radius:var(--ds-radius-pill,999px);background:var(--ds-fg);pointer-events:none;will-change:transform, width;width:0;position:absolute;top:3px;bottom:3px;left:0}.ds-seg.is-liquid>:not(.ds-seg__thumb,legend,.sr-only){z-index:1;position:relative}.ds-seg.is-liquid :is([aria-pressed],[aria-selected],[aria-checked],input+*){--seg-cover:0;color:color-mix(in srgb, var(--ds-bg) calc(var(--seg-cover) * 100%), var(--ds-fg-muted,var(--muted)))!important;background:0 0!important;transition:none!important}@media print{.ds-seg__thumb{display:none}}:root{--ds-page-top:80px}main .ds-page{padding-top:var(--ds-page-top);margin-top:0}@media (width<=720px){:root{--ds-page-top:48px}}:root{--ds-font-display:"Doto", var(--sans,ui-sans-serif, system-ui, sans-serif)}:root :is(h1.display,.mast__name,.case__title,.post__title,.weakness__title,.mark__name){font-family:var(--ds-font-display);letter-spacing:0;font-weight:800;line-height:1.04}:root h1.display{font-size:clamp(1.8rem,4.1vw,3.6rem)}@media screen and (width>=961px){:root .home-hero h1.display{z-index:1;width:calc(100% + 160px);font-size:clamp(3.2rem,5vw,4.6rem);line-height:.98;position:relative}:root :is(.workhero,.writehero) h1.display{font-size:clamp(2.4rem,4.6vw,4.2rem);line-height:.98}}:root .display__accent{color:var(--ds-accent)}:root .mast__name{font-size:calc(var(--ds-text-display) * .68)}:root .case__title{font-size:clamp(2rem,5vw,4.2rem)}:root .post__title{font-size:clamp(1.6rem,3vw,2.4rem)}:root .weakness__title{font-size:clamp(2.2rem,4.6vw,4.2rem)}@media print{:root :is(h1.display,.mast__name,.case__title,.post__title,.weakness__title,.mark__name){font-family:var(--sans,ui-sans-serif, system-ui, sans-serif);letter-spacing:-.02em;font-weight:600}:root .mast__name{font-size:var(--ds-text-display)}}:is(.post__pager,.case__pager) a{--dir:-1;isolation:isolate;justify-self:start;position:relative}:is(.post__pager,.case__pager) a.is-next{--dir:1;justify-self:end}:is(.post__pager,.case__pager) a>span{align-items:center;gap:0;transition:color .3s,gap .45s cubic-bezier(.3,1.5,.5,1),letter-spacing .45s;display:inline-flex}:is(.post__pager,.case__pager) a:not(.is-next)>span:before,:is(.post__pager,.case__pager) a.is-next>span:after{opacity:0;width:0;color:var(--accent-red,#e5484d);transition:width .4s cubic-bezier(.3,1.5,.5,1),opacity .25s,transform .45s cubic-bezier(.3,1.5,.5,1);display:inline-block;overflow:hidden}:is(.post__pager,.case__pager) a:not(.is-next)>span:before{content:"←";transform:translate(8px)}:is(.post__pager,.case__pager) a.is-next>span:after{content:"→";transform:translate(-8px)}:is(.post__pager,.case__pager) a:before{content:"";background:linear-gradient(90deg, transparent, var(--text,#fff), transparent) no-repeat;background-size:40% 100%;background-position:calc(50% - var(--dir) * 120%) 0;opacity:0;pointer-events:none;height:1px;position:absolute;top:-1px;left:0;right:0}:is(.post__pager,.case__pager) a:after{content:"";transform-origin:0;opacity:.6;pointer-events:none;background:currentColor;height:1px;transition:transform .5s cubic-bezier(.6,0,.2,1);position:absolute;bottom:14px;left:0;right:0;transform:scaleX(0)}:is(.post__pager,.case__pager) a.is-next:after{transform-origin:100%}:is(.post__pager,.case__pager) a:is(:hover,:focus-visible)>span{color:var(--text);letter-spacing:.14em;gap:8px}:is(.post__pager,.case__pager) a:is(:hover,:focus-visible)>span:before,:is(.post__pager,.case__pager) a:is(:hover,:focus-visible)>span:after{opacity:1;width:1em;transform:none}:is(.post__pager,.case__pager) a:is(:hover,:focus-visible):after{transform:scaleX(1)}:is(.post__pager,.case__pager) a{transition:opacity .3s,translate .45s cubic-bezier(.3,1.5,.5,1),scale .15s}:is(.post__pager,.case__pager):has(a:hover) a:not(:hover){opacity:.4}@media (prefers-reduced-motion:no-preference){:is(.post__pager,.case__pager) a:is(:hover,:focus-visible){translate:calc(var(--dir) * 6px) 0}:is(.post__pager,.case__pager) a:is(:hover,:focus-visible):before{animation:.9s cubic-bezier(.5,0,.2,1) pager-run}:is(.post__pager,.case__pager) a:active{scale:.98}:is(.post__pager,.case__pager) a:not(.is-next):hover>span:before{animation:1.4s ease-in-out .6s infinite pager-nudge-left}:is(.post__pager,.case__pager) a.is-next:hover>span:after{animation:1.4s ease-in-out .6s infinite pager-nudge-right}}@keyframes pager-run{0%{opacity:0;background-position:calc(50% - var(--dir) * 120%) 0}20%,80%{opacity:1}to{opacity:0;background-position:calc(50% + var(--dir) * 120%) 0}}@keyframes pager-nudge-left{0%,to{transform:none}50%{transform:translate(-4px)}}@keyframes pager-nudge-right{0%,to{transform:none}50%{transform:translate(4px)}}@media print{:is(.post__pager,.case__pager) a:before,:is(.post__pager,.case__pager) a:after{display:none}}:root,[data-theme=dark]{--bg:#000;--surface:#000;--panel:#0a0a0a;--line:#1f1f1f;--line-strong:#333;--muted:#a3a3a3;--faint:#8c8c8c;--accent-red:#e5484d;--side-w:232px}:root[data-theme=light]{--accent-red:#d6363b;--panel:#f1efe9}.glow{display:none}body.is-shell{font-size:16px;display:block}.shell{grid-template-columns:var(--side-w) minmax(0, 1fr);min-height:100vh;display:grid}.side{border-right:1px solid var(--line);align-self:start;height:100vh;position:sticky;top:0}.side__inner{flex-direction:column;gap:28px;height:100%;padding:24px 0 0;display:flex}.mark{color:var(--text);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;text-decoration:none;display:inline-flex}.mark__glyph{border:1px solid var(--text);width:28px;height:28px;font-family:var(--mono);letter-spacing:-.04em;border-radius:50%;place-items:center;font-size:11px;display:grid}.sidenav{flex-direction:column;gap:2px;display:flex}.sidenav a{color:var(--muted);padding:6px 0;font-size:15px;text-decoration:none;transition:color .15s}.sidenav a:hover{color:var(--text)}.sidenav a[aria-current=page]{color:var(--text);font-weight:600}.side__cta{border:1px solid var(--line-strong);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;margin-top:auto;padding:9px 16px;font-size:14px}.side__cta:hover{background:var(--text);color:var(--bg)}.shell__main{min-width:0}.crumbbar{z-index:10;background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:0 32px;position:sticky;top:0}.crumbbar .piece-bar{min-height:52px}.eyebrow{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 14px;font-size:12px}.display{letter-spacing:-.045em;margin:0;font-size:clamp(2.6rem,6.4vw,5.6rem);font-weight:500;line-height:.98}.h-section{letter-spacing:-.03em;margin:0 0 32px;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:500;line-height:1.05}.rule-head{border-top:1px solid var(--line-strong);justify-content:space-between;align-items:baseline;gap:16px;padding-top:18px;display:flex}.rule-head a{color:var(--muted);font-size:14px}.rule-head a:hover{color:var(--text)}.iso{color:var(--text);margin:0}.iso svg{width:100%;height:auto;display:block;overflow:visible}.iso path{fill:none;stroke-linejoin:round}.iso__grid path{stroke:var(--line-strong);stroke-width:1.2px}.iso__face{stroke:currentColor;stroke-width:1.6px;fill:var(--bg)!important}.iso__win{stroke:currentColor;stroke-width:.9px;opacity:.5}.iso__box.is-lit .iso__face,.iso__box.is-lit .iso__win{stroke:var(--accent-red)}.iso figcaption{font-family:var(--mono);color:var(--faint);margin-top:12px;font-size:12px}@media (prefers-reduced-motion:no-preference){.iso__face,.iso__win,.iso__grid path{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.2s cubic-bezier(.6,0,.2,1) forwards iso-draw}.iso__grid path{animation-duration:.9s}.iso__box .iso__face{animation-delay:var(--d)}.iso__box .iso__win{animation-delay:calc(var(--d) + .5s)}.iso__box.is-lit{animation:5s ease-in-out 2s infinite iso-bob}}@keyframes iso-draw{to{stroke-dashoffset:0}}@keyframes iso-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.traits{border-block:1px solid var(--line);align-items:center;gap:16px;min-width:0;padding:14px 0;display:flex}.traits__open{border:1px solid color-mix(in srgb, var(--positive) 55%, transparent);color:var(--positive);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:8px;margin:0;padding:6px 12px;font-size:14px;display:inline-flex}.traits__open i{background:var(--positive);width:7px;height:7px;box-shadow:0 0 0 0 color-mix(in srgb, var(--positive) 60%, transparent);border-radius:50%;animation:2.4s ease-out infinite open-pulse}@keyframes open-pulse{70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.traits__lane{flex:1;min-width:0;display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.traits__track{flex:none;gap:8px;margin:0;padding:0 8px 0 0;list-style:none;animation:90s linear infinite traits-run;display:flex}.traits__lane:hover .traits__track{animation-play-state:paused}.traits__track li{border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:14px}@keyframes traits-run{to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.traits__track{flex-wrap:wrap;animation:none}.traits__track[aria-hidden=true]{display:none}.traits__open i{animation:none}}.grid,.workgrid{border-top:1px solid var(--line-strong);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.work{--work-pad:28px;grid-template-columns:[full-start] var(--work-pad) [content-start] minmax(0, 1fr) [content-end] var(--work-pad) [full-end];border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:300px;color:var(--text);isolation:isolate;grid-template-rows:auto auto 1fr auto;padding:24px 0 0;text-decoration:none;display:grid;position:relative;overflow:hidden}.work__meta{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);flex-wrap:wrap;gap:4px 14px;margin:0 0 18px;font-size:11px;display:flex}.work__host{text-transform:none;letter-spacing:0}@media (width<=720px){.work__meta .work__host{flex-basis:100%}.work__meta.has-index .work__host{padding-left:calc(2ch + .12em + 14px)}}.work__host.is-live:before{content:"";background:var(--positive);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.work h3{letter-spacing:-.03em;max-width:70%;margin:0 0 10px;font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:500;line-height:1.05}.work__summary{max-width:62%;color:var(--muted);margin:0;font-size:15px;line-height:1.5}.work__stack{max-width:78%;font-family:var(--mono);color:var(--muted);margin:auto 0 0;padding-top:24px;font-size:12px;line-height:1.7}.work__count{border:1px solid var(--line-strong);color:var(--text);margin-right:10px;padding:1px 6px;display:inline-block}.work__more{color:var(--faint)}.work:hover h3{text-underline-offset:6px;text-decoration:underline 1px}.foot{z-index:1;margin-left:var(--side-w);border-top:1px solid var(--line);border-left:1px solid var(--line);padding:64px 32px 24px;position:relative;overflow:hidden}.foot__cols{grid-template-columns:1.2fr repeat(3,1fr);gap:32px;display:grid}.foot h2{color:var(--text);margin:0 0 14px;font-size:14px;font-weight:600}.foot nav{flex-direction:column;gap:8px;display:flex}.foot a{color:var(--muted);font-size:14px;text-decoration:none}.foot a:hover{color:var(--text)}.foot__id{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.foot__id p{color:var(--faint);margin:0;font-size:13px}.foot__word{width:min(100%,760px);height:auto;margin:64px auto 0;display:block}.foot__word text{fill:none;stroke:var(--line-strong);stroke-width:1.2px;font-family:var(--sans);letter-spacing:-.02em;font-size:150px;font-weight:800}@media (prefers-reduced-motion:no-preference){.foot__word text{stroke-dasharray:1800;stroke-dashoffset:1800px;transition:stroke-dashoffset 3.2s cubic-bezier(.6,0,.2,1),stroke 1s}.foot.is-in .foot__word text{stroke-dashoffset:0}}.home-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:32px;padding-top:72px;display:grid;border-top:0!important}.home-hero__lede{max-width:46ch;color:var(--muted);margin:28px 0 0;font-size:18px;line-height:1.55}.home-hero__actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.home-hero .traits{grid-column:1/-1;margin-top:40px}.btn{border:1px solid var(--text);background:var(--text);height:40px;color:var(--bg);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:0 18px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.btn--ghost{color:var(--text);border-color:var(--line-strong);background:0 0}.btn:hover{opacity:.86}.home-block{margin-top:112px}.stackindex{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 40px;margin:0;padding:0;list-style:none;display:grid}.stackindex li{border-bottom:1px solid var(--line);padding:12px 0}.stackindex__row{interpolate-size:allow-keywords}.stackindex__sum{cursor:default;grid-template-columns:1fr auto;align-items:baseline;gap:4px 12px;list-style:none;display:grid}.stackindex__sum::-webkit-details-marker{display:none}.stackindex__chev{display:none}.stackindex__name{font-size:16px}.stackindex__n{font-family:var(--mono);color:var(--muted);font-size:13px}.stackindex__bar{background:var(--line);grid-column:1/-1;height:2px}.stackindex__bar span{background:var(--text);height:100%;display:block}.stackindex li:first-child .stackindex__bar span{background:var(--accent-red)}.stackindex__where{font-family:var(--mono);color:var(--faint);margin:4px 0 0;font-size:11px}@media screen and (width<=720px){.stackindex li{border-bottom:0;padding:14px 0}.stackindex__sum{cursor:pointer;-webkit-tap-highlight-color:transparent;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:12px}.stackindex__name{font-size:15px}.stackindex__n{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:11px}.stackindex__chev{width:12px;height:12px;display:block;position:relative}.stackindex__chev:before,.stackindex__chev:after{content:"";background:var(--muted);width:12px;height:1.5px;transition:transform .3s cubic-bezier(.3,1.4,.5,1);position:absolute;top:calc(50% - .75px);left:0}.stackindex__chev:after{transform:rotate(90deg)}.stackindex__row[open] .stackindex__chev:after{transform:rotate(0)}.stackindex__where{margin:0;padding-top:10px;font-size:11.5px;line-height:1.5}.stackindex__row::details-content{opacity:0;block-size:0;transition:block-size .35s cubic-bezier(.2, .8, .2, 1), opacity .3s ease, content-visibility .35s allow-discrete;overflow:hidden}.stackindex__row[open]::details-content{opacity:1;block-size:auto}.home-block .h-section:has(+.notes-list){margin-bottom:20px}.home-block .notes-list{border-top:0}.home-block .notes-list li:first-child a{padding-top:0}.home-block .h-section:has(+.now){margin-bottom:20px}.home-block>.now[data-now]{border-top:0;padding-top:0}}@media (prefers-reduced-motion:reduce){.stackindex__row::details-content,.stackindex__chev:before,.stackindex__chev:after{transition:none}}.notes-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.notes-list a{border-bottom:1px solid var(--line);color:var(--text);grid-template-columns:160px minmax(0,1fr);gap:4px 24px;padding:20px 0;text-decoration:none;display:grid}.notes-list time{font-family:var(--mono);color:var(--faint);padding-top:4px;font-size:12px}.notes-list strong{letter-spacing:-.015em;font-size:20px;font-weight:500}.notes-list span{color:var(--muted);grid-column:2;font-size:15px}.notes-list a:hover strong{text-underline-offset:4px;text-decoration:underline 1px}.postgrid{border-top:1px solid var(--line-strong);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.postgrid a{border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text);flex-direction:column;gap:10px;padding:24px 28px 28px;text-decoration:none;display:flex}.postgrid time{border-left:1px solid var(--line-strong);font-family:var(--mono);color:var(--faint);padding-left:10px;font-size:12px}.postgrid strong{letter-spacing:-.02em;font-size:22px;font-weight:500;line-height:1.2}.postgrid span{color:var(--muted);font-size:15px;line-height:1.5}.postgrid .iso{aspect-ratio:16/9;background:var(--panel);margin-bottom:8px;overflow:hidden}.postgrid .iso svg{height:100%;padding:8%}.postgrid a:hover strong{text-underline-offset:4px;text-decoration:underline 1px}.post{grid-template-columns:minmax(0,680px) 240px;justify-content:space-between;gap:56px;width:min(1120px,100% - 64px);margin:0 auto;padding-top:40px;display:grid}.crumbs{color:var(--muted);align-items:center;gap:10px;margin:0 0 28px;font-size:14px;display:flex}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--text)}.crumbs__back{background:var(--text);border-radius:50%;place-items:center;width:28px;height:28px;transition:background .2s,transform .2s;display:grid;color:var(--bg)!important}.crumbs__back:hover{background:color-mix(in srgb, var(--text) 82%, var(--bg));transform:translate(-2px)}.post__title{letter-spacing:-.035em;margin:0 0 32px;font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:500;line-height:1.04}.post__cover{aspect-ratio:16/9;border:1px solid var(--line);background:var(--panel);padding:3% 8%}.post__byline{border-top:1px solid var(--line);color:var(--muted);margin:32px 0 28px;padding-top:16px;font-size:14px}.post__byline a{color:var(--text)}.post__cover svg{height:100%}.post__body{color:var(--prose,var(--muted));font-size:17px;line-height:1.7}.post__body h2{color:var(--text);letter-spacing:-.02em;margin:2.2em 0 .6em;font-size:1.6rem;font-weight:500;line-height:1.2}.post__body h3{color:var(--text);margin:1.8em 0 .5em;font-size:1.2rem;font-weight:600}.post__body strong{color:var(--text)}.post__body a{color:var(--text);text-underline-offset:3px}.post__body pre{border:1px solid var(--line);padding:18px 20px;font-size:14px;overflow-x:auto;background:var(--panel)!important}.post__body code{font-family:var(--mono);font-size:.9em}.post__body img{border:1px solid var(--line);display:block}.rail{position:relative}.rail__inner{flex-direction:column;gap:28px;font-size:14px;display:flex;position:sticky;top:72px}.rail h2{color:var(--faint);margin:0 0 8px;font-size:13px;font-weight:400}.rail__author{gap:2px;display:grid}.rail__author strong{font-weight:500}.rail__author span{color:var(--muted)}.rail p{margin:0}.rail__tags{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.rail__tags li{border-bottom:1px solid var(--line)}.rail__tags a{color:var(--text);grid-template-columns:14px auto 1fr auto;align-items:center;gap:8px;padding:7px 0;text-decoration:none;display:grid;background:0 0!important}.rail__hash{font-family:var(--mono);color:var(--faint);font-size:12px;transition:color .25s,transform .35s cubic-bezier(.2,.7,.2,1)}.rail__tagname{letter-spacing:.01em;font-size:13px}.rail__ticks{justify-content:flex-end;gap:3px;display:flex}.rail__ticks i{background:var(--line-strong);width:2px;height:9px;transition:background .3s,height .3s}.rail__count{font-family:var(--mono);color:var(--faint);font-size:11px}.rail__tags a:hover .rail__hash{color:var(--text);transform:rotate(-12deg)}.rail__tags a:hover .rail__ticks i{background:var(--text);height:12px}.rail__tags a:hover .rail__ticks i:nth-child(2){transition-delay:40ms}.rail__tags a:hover .rail__ticks i:nth-child(3){transition-delay:80ms}.rail__tags a:hover .rail__ticks i:nth-child(4){transition-delay:.12s}.tagbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:0;margin:0 0 40px;display:flex}.tagbar a{color:var(--muted);border-right:1px solid var(--line);align-items:baseline;gap:4px;margin-right:18px;padding:10px 18px 10px 0;font-size:13px;text-decoration:none;transition:color .25s;display:inline-flex;background:0 0!important}.tagbar a:last-child{border-right:0}.tagbar a span{font-family:var(--mono);color:var(--faint)}.tagbar a em{font-style:normal;font-family:var(--mono);color:var(--faint);margin-left:2px;font-size:10px;position:relative;top:-5px}.tagbar a:hover,.tagbar a[aria-current],.tagbar a[aria-current] span{color:var(--text)}.postgrid>a[hidden]{display:none}.foot__legal{color:var(--faint);letter-spacing:.01em;font-size:12px}.rail__toc{flex-direction:column;gap:6px;display:flex}.rail__toc a{color:var(--muted);line-height:1.35;text-decoration:none}.rail__toc a:hover{color:var(--text)}.post__pager{border-top:1px solid var(--line-strong);grid-template-columns:1fr 1fr;margin-top:72px;display:grid}.post__pager a{color:var(--text);flex-direction:column;gap:6px;padding:20px 0;font-size:18px;text-decoration:none;display:flex}.post__pager a.is-next{text-align:right;align-items:flex-end}.post__pager span{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:11px}@media (width<=1080px){.post{grid-template-columns:minmax(0,1fr)}.rail{order:-1}.rail__inner{border-bottom:1px solid var(--line);flex-flow:wrap;gap:20px 40px;padding-bottom:20px;position:static}.rail__toc{display:none}}@media (width<=960px){:root{--side-w:0px}.shell{grid-template-columns:minmax(0,1fr)}.side{display:none}.side__inner{flex-direction:row;align-items:center;gap:20px;height:auto;padding:12px 20px;position:static;overflow-x:auto}.sidenav{flex-direction:row;gap:16px}.sidenav a{white-space:nowrap}.mark__name,.side__cta{display:none}.crumbbar{z-index:20;padding:0 var(--fixedbar-clear,64px) 0 20px;position:sticky;top:0}.crumbbar .piece-bar{min-height:var(--fixedbar-h,56px)}.foot{border-left:0;margin-left:0;padding:48px 20px 20px}.foot__cols{grid-template-columns:1fr 1fr}.home-hero{grid-template-columns:1fr;padding-top:48px}.shell .wrap,.post{width:calc(100% - 40px)}}@media (width<=720px){.grid,.workgrid,.postgrid{grid-template-columns:1fr}.work h3,.work__summary,.work__stack{max-width:none}.notes-list a{grid-template-columns:1fr}.notes-list span{grid-column:1}}.foot__cols{grid-template-columns:1fr 1.1fr 1.6fr .9fr}.foot__platforms{grid-template-columns:1fr 1fr;gap:6px 16px;margin:0;padding:0;list-style:none;display:grid}.foot__platforms a{align-items:center;gap:8px;display:flex}.foot__platforms i{width:16px;height:16px;display:inline-grid}.foot__platforms i svg{width:16px;height:16px}.foot__platforms span{font-family:var(--mono);color:var(--faint);margin-left:auto;font-size:11px}.foot__all{margin-top:10px;color:var(--text)!important}.foot__writing ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.foot__writing li a{border-bottom:1px solid var(--line);grid-template-columns:52px 1fr;gap:12px;padding:7px 0;display:grid}.foot__writing time{font-family:var(--mono);color:var(--faint);padding-top:2px;font-size:11px}.foot__writing li a:hover time{color:var(--accent-red)}.workcell{min-width:0;display:flex}.workcell>.work{flex:1}.work__graph{z-index:-1;opacity:.18;width:44%;height:100%;transition:opacity .4s;position:absolute;top:0;right:0;mask-image:linear-gradient(90deg,#0000,#000 45%),linear-gradient(#000 70%,#0000);mask-composite:intersect}.codegraph{overflow:hidden}.codegraph__scroll{transform-box:fill-box}@media (prefers-reduced-motion:no-preference){.codegraph__scroll{animation:40s linear infinite paused code-scroll}.work:hover .codegraph__scroll,.case__graph .codegraph__scroll{animation-play-state:running}}@keyframes code-scroll{to{transform:translateY(-50%)}}.work:hover .work__graph{opacity:.42}.work__foot{justify-content:space-between;align-items:flex-end;gap:16px;margin-top:auto;padding-top:24px;display:flex}.work__marks{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.work__marks li{border:1px solid var(--line-strong);background:var(--bg);border-radius:8px;place-items:center;width:30px;height:30px;display:grid;position:relative}.work__marks li svg{width:17px;height:17px;display:block}.work__marks li:after{content:attr(data-name);border:1px solid var(--line-strong);background:var(--bg);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;content:none;padding:3px 7px;font-size:11px;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,4px)}.work__langs{font-family:var(--mono);color:var(--faint);white-space:nowrap;flex-direction:column;align-items:flex-end;gap:6px;margin:0;font-size:11px;display:flex}.work__langbar{gap:1px;width:96px;height:4px;display:flex}.work__langbar i{min-width:2px;display:block}.employers{margin-bottom:48px}.linkish{color:var(--muted);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.ledger{border-collapse:collapse;width:100%;font-size:14px}.ledger th{border-bottom:1px solid var(--line-strong);color:var(--faint);font-family:var(--mono);letter-spacing:.06em;text-align:left;text-transform:uppercase;padding:10px 12px 10px 0;font-size:11px;font-weight:400}.ledger td{border-bottom:1px solid var(--line);vertical-align:middle;color:var(--muted);padding:11px 12px 11px 0}.ledger td strong{color:var(--text);font-weight:500}.ledger td small{color:var(--faint);font-size:12px;display:block}.ledger .mono{font-family:var(--mono);white-space:nowrap;font-size:12.5px}.ledger th:first-child,.ledger td:first-child{padding-left:14px}.ledger tr.is-child td:first-child{padding-left:32px}.ledger tr.is-child td:first-child strong{font-weight:400}.ledger tr.is-pick{cursor:pointer}.ledger tr.is-pick:hover td,.ledger tr.is-on td{background:color-mix(in srgb, var(--text) 4%, transparent)}.ledger tr.is-on td:first-child{box-shadow:inset 2px 0 0 var(--accent-red)}.ledger__bar{width:26%}.ledger__bar span{background:linear-gradient(90deg, var(--hue-cyan), var(--hue-violet));min-width:2px;height:3px;display:block}.ledger a{color:inherit;text-decoration:none}.ledger a:hover strong{text-underline-offset:3px;text-decoration:underline}.ledger__marks{align-items:center;gap:4px;display:inline-flex}.ledger__marks i{width:18px;height:18px;display:inline-grid}.ledger__marks svg{width:18px;height:18px}.ledger__marks em{font-family:var(--mono);color:var(--faint);margin-left:4px;font-size:11px;font-style:normal}.ledger__langs{gap:1px;width:90px;height:6px;margin-bottom:4px;display:flex}.ledger__langs i{min-width:2px;display:block}.pill{border:1px solid var(--line-strong);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.pill.is-built{border-color:var(--accent-red);color:var(--accent-red)}.tablewrap{border-top:1px solid var(--line-strong);overflow-x:auto}.workbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.filters{flex-wrap:wrap;gap:6px;display:flex}.filter{border:1px solid var(--line-strong);height:32px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:0 11px;font-size:13px;display:inline-flex}.filter i{width:15px;height:15px;display:inline-grid}.filter i svg{width:15px;height:15px}.filter span{font-family:var(--mono);color:var(--faint);font-size:11px}.filter:hover{color:var(--text)}.filter.is-on{background:var(--text);border-color:var(--text);color:var(--bg)}.filter.is-on span{color:var(--bg);opacity:.6}.viewswitch{border:1px solid var(--line-strong);isolation:isolate;border-radius:999px;flex:none;grid-template-columns:1fr 1fr;padding:3px;display:inline-grid;position:relative}.viewswitch button{z-index:1;height:26px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 14px;font-size:13px;transition:color .12s;position:relative}.viewswitch:not(.is-tracked) button[aria-pressed=true],.viewswitch.is-tracked button.is-lit{color:var(--bg)}.viewswitch:before{content:"";z-index:0;background:var(--text);border-radius:999px;transition:left .3s cubic-bezier(.3,0,.15,1.25),right .52s cubic-bezier(.6,0,.2,1.15) 70ms;position:absolute;inset:3px 50% 3px 3px}.viewswitch:has([data-view=table][aria-pressed=true]):before{transition:right .3s cubic-bezier(.3,0,.15,1.25),left .52s cubic-bezier(.6,0,.2,1.15) 70ms;left:50%;right:3px}@media (prefers-reduced-motion:reduce){.viewswitch:before,.viewswitch button{transition:none}}[hidden]{display:none!important}@media (width<=960px){.side{height:auto}.foot__cols{grid-template-columns:1fr 1fr}.workbar{flex-direction:column}}.fig{--fig-accent:var(--accent-red,#e5484d);color:var(--text);margin:2.4em 0;font-size:14px;line-height:1.45}.fig__title{margin:0 0 4px;font-size:17px;font-weight:600}.fig__sub{color:var(--muted);margin:0 0 14px;font-size:14px}.fig__panel{border:1px solid var(--line);background:var(--panel);padding:20px 22px}.fig__heading{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 6px;font-size:11px}.fig__desc{color:var(--muted);margin:0 0 14px}.fig__note{font-family:var(--mono);color:var(--faint);margin-top:10px;font-size:11.5px;line-height:1.55}.fig small{color:var(--muted);font-size:12.5px;font-weight:400;display:block}.fig strong{font-weight:600}.fig__row{border-top:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);gap:16px;padding:12px 0;display:grid}.fig__row:first-of-type{border-top:0}.fig__row--axis{border-top:0;padding-top:4px}.fig__label strong{font-size:14px;display:block}.t-accent{background:var(--fig-accent)}.t-light{background:var(--text)}.t-muted{background:color-mix(in srgb, var(--text) 32%, transparent)}.t-dim{background:color-mix(in srgb, var(--text) 16%, transparent)}.fig__bar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:4px 0;display:grid}.fig__barlane{height:12px;display:block;position:relative}.fig__fill{min-width:2px;height:100%;display:block}.fig__bartext{font-family:var(--mono);color:var(--muted);font-size:12px}.fig__value{min-width:64px;font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px}.fig__dot{background:var(--bg);border:1px solid var(--text);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;translate:-50% -50%}.fig__legend{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:0 0 8px;font-size:12.5px;display:flex}.fig__legend i{vertical-align:-1px;width:10px;height:10px;margin-right:6px;display:inline-block}.fig__axis{border-top:1px solid var(--line-strong);height:18px;margin-right:76px;position:relative}.fig__axis span{font-family:var(--mono);color:var(--faint);white-space:nowrap;font-size:11px;position:absolute;top:4px;transform:translate(-50%)}.fig__axis span:first-child{transform:none}.fig__axis span:last-child{transform:translate(-100%)}.fig--timeline .fig__axis{margin-right:0}.fig__marks{height:18px;position:relative}.fig__mark{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:11px;position:absolute;bottom:2px;transform:translate(-50%)}.fig__mark:first-child{transform:translate(-10%)}.fig__lane{background:color-mix(in srgb, var(--text) 5%, transparent);height:22px;position:relative}.fig__seg{position:absolute;top:0;bottom:0;overflow:hidden}.fig__seg em{font-family:var(--mono);color:var(--bg);white-space:nowrap;font-size:10.5px;font-style:normal;position:absolute;top:50%;left:6px;transform:translateY(-50%)}.fig__seg.t-dim em,.fig__seg.t-muted em{color:var(--text)}.fig__chain{flex-wrap:wrap;align-items:stretch;gap:6px;display:flex}.fig__step,.fig__box{border:1px solid var(--line-strong);background:var(--bg);flex:140px;gap:8px;min-width:0;padding:10px 12px;display:flex}.fig__step{flex-direction:column;gap:2px}.fig__arrow{background:var(--muted);flex:none;align-self:center;width:14px;height:1px;position:relative}.fig__arrow:after{content:"";border:3.5px solid #0000;border-left:5px solid var(--muted);border-right:0;position:absolute;top:-3px;right:0}.fig__group{border:1px solid var(--fig-accent);background:color-mix(in srgb, var(--fig-accent) 6%, transparent);flex:1;padding:10px}.fig__group-title{color:var(--text);margin:0 0 8px;font-weight:600}.fig__group-title small{margin-left:6px;display:inline}.fig__group .fig__box,.fig__group .fig__step{margin-top:6px}.fig__aside{border:1px dashed var(--line-strong);color:var(--muted);margin-top:8px;padding:8px 12px;font-size:13px}.fig__caption{color:var(--muted);margin:8px 0 0;font-size:13px}.fig__box span{min-width:0}.fig__box.is-accent{border-color:var(--fig-accent)}.fig__box.is-muted{opacity:.6}.fig__box.is-dashed{border-style:dashed}.fig__icon{width:18px;height:18px;color:var(--muted);flex:none;margin-top:1px}.fig__bas{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.fig__ba{border:1px solid var(--line);flex-direction:column;gap:10px;padding:14px;display:flex}.fig__ba.is-after{border-color:color-mix(in srgb, var(--fig-accent) 55%, var(--line))}.fig__ba header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fig__metric{font-family:var(--mono);color:var(--text);margin:0;font-size:12.5px}.fig__ba.is-after .fig__metric{color:var(--fig-accent)}.fig__lanes{flex-direction:column;gap:10px;display:flex}.fig__lanerow{flex-direction:column;gap:6px;display:flex}.fig__lanerow>.fig__arrow{align-self:flex-start;width:1px;height:12px;margin-left:18px}.fig__lanerow>.fig__arrow:after{border:3.5px solid #0000;border-top:5px solid var(--muted);border-bottom:0;top:auto;bottom:0;right:-3px}.fig__tos{flex-direction:column;gap:6px;display:flex}.fig__target .fig__box{border-style:dashed}.fig__error{color:var(--fig-accent)}@media (width<=640px){.fig__row{grid-template-columns:1fr;gap:6px}.fig__chain{flex-direction:column}.fig__chain>.fig__step,.fig__chain>.fig__box{flex:none}.fig__chain>.fig__arrow{width:1px;height:14px;margin:2px 0}.fig__chain>.fig__arrow:after{border:3.5px solid #0000;border-top:5px solid var(--muted);border-bottom:0;inset:auto auto 0 -3px}}.filters:not(.is-open) .filter.is-extra:not(.is-on){display:none}.filter--more{border-style:dashed}.portrait{color:var(--text);margin:0}.portrait svg{width:100%;height:auto;max-height:74vh;display:block;overflow:visible}.portrait path{fill:none;stroke-linecap:round;stroke-linejoin:round}.portrait__mesh path{stroke:color-mix(in srgb, var(--text) 14%, transparent);stroke-width:.6px}.portrait__lines path{stroke:var(--text);stroke-opacity:var(--o);stroke-width:.8px}.portrait__outline path{stroke:color-mix(in srgb, var(--text) 65%, transparent);stroke-width:1px}@media (prefers-reduced-motion:no-preference){.portrait path{stroke-dasharray:1;stroke-dashoffset:1px;animation:1.6s cubic-bezier(.6,0,.2,1) forwards iso-draw}.portrait__mesh path{animation-duration:1.4s;animation-delay:calc(var(--i) * 14ms)}.portrait__outline path{animation-duration:2.2s;animation-delay:.3s}.portrait__lines path{animation-duration:2.4s;animation-delay:calc(.8s + var(--i) * .14s)}}.home-close{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:32px;display:grid}@media (width<=960px){.home-close{grid-template-columns:1fr}}.shell{padding-left:var(--side-w);display:block}.side{z-index:30;width:var(--side-w);background:var(--bg);height:100dvh;position:fixed;top:0;left:0}.foot{margin-left:var(--side-w);border-left:0;border-top:1px solid var(--line);isolation:isolate;padding:80px 0 clamp(140px,16vw,240px);position:relative;overflow:hidden}.foot__cols{z-index:1;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;width:min(1120px,100% - 64px);margin:0 auto;display:grid;position:relative}.foot__id,.foot nav[aria-label="Work by platform"]{grid-column:span 3}.foot__writing{grid-column:span 4}.foot nav[aria-label=Elsewhere]{grid-column:span 2}.foot h2{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0 0 16px;font-size:11px;font-weight:400}.foot__platforms{border-top:1px solid var(--line);flex-direction:column;gap:0;display:flex}.foot__platforms li a{border-bottom:1px solid var(--line);grid-template-columns:16px 1fr auto;align-items:center;gap:10px;padding:7px 0;display:grid}.foot__platforms span{margin:0}.foot__writing li a{grid-template-columns:48px 1fr;padding:7px 0}.foot nav[aria-label=Elsewhere]{gap:0}.foot nav[aria-label=Elsewhere] a{border-bottom:1px solid var(--line);padding:7px 0}.foot nav[aria-label=Elsewhere] h2+a{border-top:1px solid var(--line)}.foot__all{margin-top:14px;font-size:13px}.foot__word{z-index:0;pointer-events:none;width:calc(100% - 32px);height:auto;margin:0;position:absolute;bottom:-.04em;left:50%;transform:translate(-50%)}.foot__word text{fill:color-mix(in srgb, var(--text) 3%, transparent);stroke:color-mix(in srgb, var(--text) 9%, transparent);stroke-width:1px;font-size:170px;font-weight:800}@media (prefers-reduced-motion:no-preference){.foot__word text{stroke-dasharray:2400;stroke-dashoffset:2400px;transition:stroke-dashoffset 3.2s cubic-bezier(.6,0,.2,1)}.foot.is-in .foot__word text{stroke-dashoffset:0}}.ledger--work th:first-child{width:26%}.ledger--work th:nth-child(2){width:20%}.ledger--work th:nth-child(3){width:26%}.ledger--work th:nth-child(4){width:18%}.ledger--work td{padding-top:14px;padding-bottom:14px}.ledger--work tbody tr:hover td{background:color-mix(in srgb, var(--text) 3%, transparent)}@media (width<=960px){.shell{padding-left:0}.side{width:auto;height:auto;position:sticky}.foot{margin-left:0}.foot__cols{grid-template-columns:1fr 1fr;width:calc(100% - 40px)}.foot__id,.foot nav[aria-label="Work by platform"],.foot__writing,.foot nav[aria-label=Elsewhere]{grid-column:span 1}}.tip{z-index:100;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(8px);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;will-change:transform;border-radius:6px;padding:5px 9px;font-size:12px;line-height:1.2;transition:opacity .12s;position:fixed;top:0;left:0}.tip.is-on{opacity:1}.head{color:var(--text);align-self:stretch;margin:0}.head canvas{width:100%;height:100%;min-height:520px;max-height:76vh;color:var(--portrait-ink,currentColor);display:block}@media (width<=960px){.head canvas{min-height:380px}}.shell .wrap{width:min(1440px,100% - 80px)}.post{grid-template-columns:minmax(0,760px) 260px;width:min(1440px,100% - 80px)}.case{width:min(1440px,100% - 80px)}.case__body{grid-template-columns:minmax(0,1fr) 320px}.foot__cols{width:min(1440px,100% - 80px)}main{padding-bottom:72px}.case{padding-bottom:0}.case__pager{margin-top:64px}.foot{min-height:420px;padding:64px 0 72px}.foot__word{width:calc(100% - 48px);height:calc(100% - 24px);position:absolute;inset:24px 24px 0;transform:none}@media (prefers-reduced-motion:no-preference){.foot__word text{stroke-dasharray:none;stroke-dashoffset:0;transition:none}}@media (width<=960px){.shell .wrap,.post,.case,.foot__cols{width:calc(100% - 40px)}}.home-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center}.head{align-self:stretch}.head canvas{height:100%;min-height:640px;max-height:84vh}.foot__word{top:50%;bottom:auto;left:50%;transform-origin:50%;width:calc(100% - 48px);height:auto;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.foot__word text{fill:none;stroke:color-mix(in srgb, var(--text) 5%, transparent);stroke-width:1px;vector-effect:non-scaling-stroke;letter-spacing:-.02em;font-size:150px;font-weight:800}.foot:hover .foot__word text{stroke:color-mix(in srgb, var(--text) 5%, transparent)}@media (width<=960px){.head canvas{min-height:420px}}.home-hero{row-gap:0;padding-top:48px}.home-hero>div:first-child{padding-bottom:56px}.head{align-self:stretch;margin:0;overflow:hidden}.head canvas{min-height:600px;max-height:78vh}.home-hero .traits{margin-top:0}.home-block{margin-top:0;padding-top:72px}.home-block+.home-block{padding-top:64px}.postgrid{border:0;border-top:1px solid var(--line-strong);gap:64px 48px;padding-top:40px}.postgrid a{border:0;gap:14px;padding:0}.postgrid .iso{border:1px solid var(--line);margin-bottom:12px}.postgrid strong{font-size:24px}.postgrid span{max-width:52ch}.postgrid a:hover .iso{border-color:var(--line-strong)}@media (width<=720px){.postgrid{gap:48px}}.post{grid-template-columns:minmax(0,1fr) 280px;justify-content:stretch;gap:72px}.post__body,.post__cover{max-width:none}.foot{container-type:inline-size}.foot__word{z-index:0;pointer-events:none;align-items:center;width:auto;height:auto;margin:0;display:flex;position:absolute;inset:0;overflow:hidden;transform:none}.foot__wordtrack{white-space:nowrap;font-family:var(--sans);letter-spacing:-.04em;color:color-mix(in srgb, var(--text) 2%, transparent);-webkit-text-stroke:1px color-mix(in srgb, var(--text) 6%, transparent);flex:none;font-size:46cqw;font-weight:800;line-height:.8;display:flex}.foot__wordtrack span{padding-right:.25em}@media (prefers-reduced-motion:no-preference){.foot__wordtrack{animation:90s linear infinite word-drift}}@keyframes word-drift{to{transform:translate(-50%)}}@media (width<=1080px){.post{grid-template-columns:minmax(0,1fr);gap:0}}.rule-head,.case__section,.case__facts,.post__pager,.case__pager,.ledger thead tr{position:relative}.rule-head:before,.case__section:before,.case__facts:before,.post__pager:before,.case__pager:before{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 85%, transparent) 50%, transparent);opacity:0;pointer-events:none;background-position:-40% 0;background-repeat:no-repeat;background-size:30% 100%;width:100%;height:1px;position:absolute;top:-1px;left:0}@media (prefers-reduced-motion:no-preference){.is-lit:before{animation:rule-pulse 2.6s cubic-bezier(.5, 0, .2, 1) var(--pulse-delay,0s) 1}}@keyframes rule-pulse{0%{opacity:0;background-position:-40% 0}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:140% 0}}.traits,.workgrid,.postgrid,.notes-list,.specsheet,.stackindex,.tablewrap{position:relative}.workgrid:before,.postgrid:before,.notes-list:before,.specsheet:before,.stackindex:before,.tablewrap:before,.foot:before,.crumbbar:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 85%, transparent) 50%, transparent);opacity:0;pointer-events:none;z-index:2;background-position:-40% 0;background-repeat:no-repeat;background-size:30% 100%;width:100%;height:1px;position:absolute;top:-1px;left:0}.crumbbar:after{top:auto;bottom:-1px}.traits:before,.traits:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text) 85%, transparent) 50%, transparent);opacity:0;pointer-events:none;z-index:2;width:100%;height:1px;position:absolute;left:0;transform:scaleX(0)}.traits:before{top:-1px}.traits:after{bottom:-1px}@keyframes traits-pulse{0%{opacity:0;transform:scaleX(0)}15%{opacity:1}to{opacity:0;transform:scaleX(1)}}@media (prefers-reduced-motion:no-preference){.traits.is-lit:before,.traits.is-lit:after{animation:2.4s cubic-bezier(.2,.6,.3,1) .6s both traits-pulse}.crumbbar.is-lit:after{animation:2.6s cubic-bezier(.5,0,.2,1) .4s rule-pulse}}.side:after{content:"";background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--text) 80%, transparent) 50%, transparent);opacity:0;pointer-events:none;background-position:0 -30%;background-repeat:no-repeat;background-size:100% 22%;width:1px;height:100%;position:absolute;top:0;right:-1px}@media (prefers-reduced-motion:reduce){.work__shot{transition:opacity .2s}}@media (prefers-reduced-motion:no-preference){.side:after{animation:3.4s cubic-bezier(.5,0,.2,1) 1.2s side-fall,3.4s cubic-bezier(.5,0,.2,1) 13s infinite side-fall}}@keyframes side-fall{0%{opacity:0;background-position:0 -30%}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:0 130%}}@property --shot-from{syntax:"<percentage>";inherits:false;initial-value:0%}@property --shot-to{syntax:"<percentage>";inherits:false;initial-value:45%}.work__shot{z-index:-1;object-fit:cover;object-position:50% 0;opacity:0;width:58%;height:100%;mask-image:linear-gradient(90deg, transparent var(--shot-from), #000 var(--shot-to));transition:opacity .45s,transform .8s cubic-bezier(.2,.7,.2,1),--shot-from .6s cubic-bezier(.2,.7,.2,1),--shot-to .6s cubic-bezier(.2,.7,.2,1);position:absolute;top:0;right:0;transform:scale(1.04)}.work.has-shot:hover .work__shot{opacity:.5;--shot-from:22%;--shot-to:68%;transform:scale(1)}.work.has-shot:hover .work__graph{opacity:0}a{text-decoration:none}.post__body a,.post__byline a,.rule-head a,.text-link,.case__link,.linkish,.foot__all,.foot nav a,.foot__contact,.crumbs a,.ledger a strong,.home-hero__lede a{background-image:linear-gradient(90deg, transparent, var(--text), transparent), linear-gradient(color-mix(in srgb, currentColor 55%, transparent), color-mix(in srgb, currentColor 55%, transparent));background-position:-40% 100%,0 100%;background-repeat:no-repeat;background-size:0 1px,0 1px;padding-bottom:2px;transition:background-size .35s cubic-bezier(.5,0,.2,1);text-decoration:none!important}.post__body a:hover,.post__byline a:hover,.rule-head a:hover,.text-link:hover,.case__link:hover,.linkish:hover,.foot__all:hover,.foot nav a:hover,.foot__contact:hover,.crumbs a:hover,.ledger a:hover strong,.home-hero__lede a:hover{background-size:35% 1px,100% 1px}@media (prefers-reduced-motion:no-preference){.post__body a:hover,.post__byline a:hover,.rule-head a:hover,.text-link:hover,.case__link:hover,.linkish:hover,.foot__all:hover,.foot nav a:hover,.foot__contact:hover,.crumbs a:hover,.ledger a:hover strong,.home-hero__lede a:hover{animation:.9s cubic-bezier(.5,0,.2,1) .3s both link-pulse}}@keyframes link-pulse{0%{background-position:-40% 100%,0 100%}to{background-position:140% 100%,0 100%}}.post__body a{color:var(--text);font-weight:500}.work:hover h3,.notes-list a:hover strong,.postgrid a:hover strong{text-decoration:none}.foot__contact{border:0;border-bottom:1px solid var(--line);color:var(--muted);font:inherit;text-align:left;cursor:pointer;background-color:#0000;align-self:flex-start;width:100%;padding:7px 0;font-size:14px}.foot__contact:hover{color:var(--text)}.work h3,.work:hover h3{text-decoration:none!important}.work>*{grid-column:content}.work>.work__foot{grid-area:-2/full/-1}.work>.work__shot,.work>.work__graph{grid-area:auto}.work__summary{align-self:start}.work__foot{border-top:1px solid var(--line);background:var(--bg);align-items:stretch;gap:0;margin:0;padding:0}.work>:has(+.work__foot){margin-bottom:24px}.work__marks{flex-wrap:nowrap;gap:0;overflow:hidden}.work__marks li{border:0;border-right:1px solid var(--line);background:0 0;border-radius:0;width:44px;height:44px;transition:background .25s}.work__marks li:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}.work__marks li svg{width:21px;height:21px}.work__marks li svg rect[rx]{rx:0}.work__langs{border-left:1px solid var(--line);flex-direction:row;align-items:center;gap:12px;padding:0 28px 0 16px}.work__langbar{width:72px;height:3px}.foot nav[aria-label=Elsewhere] a,.foot__all{box-sizing:border-box;align-items:baseline;width:100%;display:flex}.foot__all{justify-content:space-between;padding:7px 0!important}.foot nav[aria-label=Elsewhere] a{justify-content:space-between}.foot nav[aria-label=Elsewhere] a span{color:var(--faint);font-size:11px;transition:color .25s,transform .35s cubic-bezier(.2,.7,.2,1)}.foot nav[aria-label=Elsewhere] a:hover span{color:var(--text);transform:translate(2px,-2px)}.foot__pending{border-bottom:1px solid var(--line);color:var(--faint);padding:7px 0;display:block}.foot__platforms a{box-sizing:border-box;width:100%}.foot__platforms a>span:last-child{margin-left:auto}.foot nav[aria-label=Elsewhere] a{grid-template-columns:16px 1fr auto;align-items:center;gap:10px;font-size:14px;display:grid!important}.foot nav[aria-label=Elsewhere] a i{width:16px;height:16px;display:inline-grid}.foot nav[aria-label=Elsewhere] a i svg{width:16px;height:16px}.foot nav[aria-label=Elsewhere] a i svg rect[rx]{rx:0}.work__lane{flex:1;min-width:0;display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#000 0 82%,#0000)}.work__lane .work__marks{animation:traits-run var(--run,30s) linear infinite;flex:none}.work:hover .work__lane .work__marks{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.work__lane .work__marks{animation:none}.work__lane .work__marks[aria-hidden=true]{display:none}}.work__langs{padding:0 28px 0 20px}.work__langbar{align-items:center;gap:2px;width:168px;height:8px}.work__langbar i{transform-origin:50%;height:100%;transition:transform .25s cubic-bezier(.2,.7,.2,1),filter .25s}.work__langbar i:hover{filter:brightness(1.25);transform:scaleY(1.9)}.traits{border-block-color:var(--line-strong)}.shell__main:has(.case) .crumbbar .piece-bar{width:min(1440px,100%)}.traits{align-items:stretch;gap:0;padding:0}.traits__open{border:0;border-right:1px solid var(--line-strong);border-radius:0;min-height:46px;padding:0 20px;font-size:13px}.traits__lane{mask-image:linear-gradient(90deg,#0000 0,#000 56px 88%,#0000)}.traits__track{align-items:stretch;gap:0;padding:0}.traits__track li{border:0;border-right:1px solid var(--line);border-radius:0;align-items:center;min-height:46px;padding:0 18px;font-size:13px;transition:background .25s,color .25s;display:flex}.traits__track li:hover{background:color-mix(in srgb, var(--text) 6%, transparent);color:var(--text)}.home-hero+.home-block .rule-head{border-top:0}.home-block{border-top:0!important}.home-block .rule-head{border-top:0;padding-top:0;position:relative}.home-block .rule-head:before{top:calc(var(--ds-space-section) / -2)}.home-hero+.home-block .rule-head:before{top:calc(var(--ds-space-section-sm) / -2)}.bld path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.bld .b-body{fill:var(--bg);stroke-width:1.4px}.bld .b-frame{stroke-width:1.4px}.bld .b-ui{stroke-width:1px;opacity:.7}.bld .b-img{stroke-width:.9px;opacity:.5}.bld .b-text{stroke-width:3px;opacity:.32}.bld .b-thin{stroke-width:1.2px;opacity:.7}.bld .b-head{stroke-width:5px}.bld .b-accent{stroke:var(--accent-red);fill:color-mix(in srgb, var(--accent-red) 14%, transparent);stroke-width:1.2px}.bld .b-accent-text{stroke:var(--accent-red);stroke-width:3px}.bld .b-accent-line{stroke:var(--accent-red);stroke-width:1.6px}.bld .b-load{stroke:var(--accent-red);stroke-width:1.4px}.bld__layout{display:none}.bld__layout.is-on{display:inline}@media (prefers-reduced-motion:no-preference){.bld path{stroke-dasharray:1;stroke-dashoffset:1px}.bld .b-accent{fill-opacity:0}.bld.is-in .bld__dev>path,.bld.is-in .bld__layout.is-on path{animation:bld-draw .9s cubic-bezier(.6, 0, .2, 1) var(--d,0s) forwards}.bld.is-in .bld__layout.is-on .b-load{animation:2.8s cubic-bezier(.3,0,.2,1) .4s forwards bld-load}}@keyframes bld-draw{to{stroke-dashoffset:0;fill-opacity:1}}@keyframes bld-load{0%{stroke-dashoffset:1px;opacity:1}85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}.bld .b-occlude{fill:var(--bg);stroke:none;stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}.postgrid .bld .b-occlude,.postgrid .bld .b-body{fill:var(--panel,var(--bg))}.home-block,.home-block+.home-block{padding-top:var(--ds-space-section);margin-top:0}.home-hero+.home-block{padding-top:var(--ds-space-section-sm)}main>.home-block:last-of-type{padding-bottom:var(--ds-space-section-sm)}.home-block .h-section{margin-bottom:var(--ds-space-head)}.case__section,.case__pager,.post__pager,.shell .foot{margin-top:var(--ds-space-section-sm)}::selection{background:color-mix(in srgb, var(--accent-red,#e5484d) 38%, transparent);color:var(--text)}.foot__word,.bld,.head canvas,.work__graph,.work__shot,.codegraph{-webkit-user-select:none;user-select:none}.home-block .rule-head.is-lit:before{animation-delay:50ms}.home-block .stackindex:before,.home-block .notes-list:before,.home-block .workgrid:before{content:none}.post__body :is(h2,h3,h4){scroll-margin-top:96px;position:relative}@media (width<=960px){.post__body :is(h2,h3,h4){scroll-margin-top:72px}}.post__meta{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;gap:0 8px;margin-top:6px;font-size:12px;display:flex}.rail__label{color:var(--faint);margin:0 0 8px;font-size:13px;font-weight:400}.rail .rail__updated,.rail .rail__reading{color:var(--muted);margin-top:4px;font-size:13px}.rail .rail__reading{font-family:var(--mono);color:var(--faint);font-size:12px}.toc__label{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.toc__count{font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px}.toc__body{position:relative}.toc__track{background:var(--line);width:1px;position:absolute;top:4px;bottom:4px;left:3px}.toc__fill{background:color-mix(in srgb, var(--accent-red,#e5484d) 55%, transparent);transform:scaleY(var(--read,0));transform-origin:top;position:absolute;inset:0}.toc__pin{background:var(--accent-red,#e5484d);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-red,#e5484d) 22%, transparent);opacity:0;transform:translate(-50%, calc(var(--pin-y,0px) - 4px - 50%)) scale(.4);border-radius:50%;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s;position:absolute;top:0;left:50%}.toc.has-active .toc__pin{opacity:1;transform:translate(-50%, calc(var(--pin-y,0px) - 4px - 50%)) scale(1)}.toc__list{flex-direction:column;gap:2px;margin:0;padding:0 0 0 20px;list-style:none;display:flex}.toc__item a{color:var(--muted);grid-template-columns:22px minmax(0,1fr);align-items:baseline;padding:4px 0;font-size:13.5px;line-height:1.35;text-decoration:none;transition:color .25s,transform .25s;display:grid}.toc__item.is-sub a{color:var(--faint);grid-template-columns:minmax(0,1fr);padding-left:22px;font-size:12.5px}.toc__n{font-family:var(--mono);color:var(--faint);font-size:11px;transition:color .25s}.toc__item a:hover{color:var(--text)}.toc__item a[aria-current=location]{color:var(--text);transform:translate(3px)}.toc__item a[aria-current=location] .toc__n{color:var(--accent-red,#e5484d)}.toc__item a:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (prefers-reduced-motion:reduce){.toc__pin,.toc__item a{transition:none}}.heading-anchor{vertical-align:middle;width:1.1em;height:1.1em;color:var(--faint);opacity:0;place-items:center;margin-left:.35em;text-decoration:none;transition:opacity .2s,color .2s;display:inline-grid;position:relative}.heading-anchor svg{width:.7em;height:.7em}:is(h2,h3,h4):hover>.heading-anchor,.heading-anchor:focus-visible,.heading-anchor.is-copied{opacity:1}.heading-anchor:hover{color:var(--text)}.heading-anchor.is-copied{color:var(--accent-red,#e5484d)}.heading-anchor:focus-visible{outline:2px solid var(--text);outline-offset:2px}@media (hover:none){.heading-anchor{opacity:.45}}.heading-anchor__note{border:1px solid var(--line-strong);background:var(--bg);color:var(--text);font-family:var(--mono);letter-spacing:0;white-space:nowrap;opacity:0;pointer-events:none;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:400;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,4px)}.heading-anchor.is-copied .heading-anchor__note{opacity:1;transform:translate(-50%)}.post__body .codeblock{--code-bg:var(--codeblock-bg);--code-bar:var(--codeblock-bar);border:1px solid var(--line-strong);background:var(--code-bg);margin:1.6em 0;overflow:hidden}.codeblock__bar{background:var(--code-bar);min-height:42px;box-shadow:inset 0 -1px 0 var(--codeblock-rule);justify-content:space-between;align-items:stretch;gap:12px;padding:0 10px 0 0;display:flex;position:relative}.codeblock__tab{border-right:1px solid var(--codeblock-rule);background:var(--code-bg);font-family:var(--mono);color:var(--codeblock-tab);white-space:nowrap;align-items:center;gap:8px;padding:13px 26px 12px 16px;font-size:12px;line-height:1;display:inline-flex;position:relative}.codeblock__tab:before{content:"";background:var(--accent-red,#e5484d);height:2px;position:absolute;top:0;left:0;right:0}.codeblock__icon{width:14px;height:14px;color:var(--accent-red,#e5484d);flex:none}.codeblock__copy{z-index:1;color:var(--codeblock-muted);font:11px/1 var(--mono);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-self:center;align-items:center;gap:6px;padding:6px 10px;transition:color .2s,border-color .2s,background-color .2s;display:inline-flex;position:relative}.codeblock__copy svg{width:13px;height:13px}.codeblock__copy:hover{color:var(--codeblock-hover);border-color:var(--codeblock-hover-line);background:var(--codeblock-hover-bg)}.codeblock__copy.is-copied{color:var(--accent-red,#e5484d)}.codeblock__copy:focus-visible{outline:2px solid var(--codeblock-hover);outline-offset:2px}:root[data-theme=light] .astro-code,:root[data-theme=light] .astro-code span{color:var(--shiki-light)!important;font-style:var(--shiki-light-font-style)!important;font-weight:var(--shiki-light-font-weight)!important;text-decoration:var(--shiki-light-text-decoration)!important}.post__body .codeblock pre{border:0;margin:0;padding:16px 20px 18px;font-size:13.5px;line-height:1.7;background:0 0!important}@media (width<=1080px){.toc{flex-basis:100%}}@media (width<=960px){.foot{padding-top:56px}.foot__cols{grid-template-columns:1fr 1fr;gap:40px 28px}.foot__id{flex-flow:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px 20px}.foot nav[aria-label="Work by platform"],.foot__writing{grid-column:span 1}.foot nav[aria-label=Elsewhere]{grid-column:1/-1}.foot nav[aria-label=Elsewhere] ul{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;display:grid}}@media (width<=640px){.foot{padding:48px 0 64px}.foot__cols{grid-template-columns:1fr;gap:40px;width:calc(100% - 40px)}.foot__id,.foot nav[aria-label="Work by platform"],.foot__writing,.foot nav[aria-label=Elsewhere]{grid-column:1/-1}.foot__id{text-align:center;border-top:0;flex-direction:column;order:9;justify-content:center;align-items:center;padding-top:8px}.foot__id .theme-dock button{width:34px;height:34px}.foot__id .theme-dock svg{width:16px;height:16px}.foot__platforms{grid-template-columns:1fr 1fr;column-gap:24px;display:grid}.foot nav[aria-label=Elsewhere] ul{grid-template-columns:1fr 1fr}.foot__writing li a{grid-template-columns:56px 1fr}}@media (hover:none),(width<=640px){.foot a.foot__all{background-size:0 1px,100% 1px}}@media (width<=960px){.foot__word{container-type:size}.foot__wordtrack{font-size:128cqh;line-height:1}html,body{overflow-x:clip}}main>section:first-child{border-top:0}@media screen and (width<=640px){main{padding-bottom:40px}main>.home-block{--ds-space-section:64px}.notes-list li:last-child a{border-bottom:0}.home-close>div:first-child{display:contents}.home-close .display{order:-1}.home-close .home-hero__actions{order:1;margin-top:0}}.home-block .h-section:has(+.home-block__lede){margin-bottom:calc(var(--ds-space-head) - 16px)}.home-block__lede{margin:0 0 32px}:root{--gutter:40px}@media (width<=960px){:root{--gutter:20px}.shell .wrap:has([data-bleed]){grid-template-columns:[full-start] var(--gutter) [content-start] minmax(0, 1fr) [content-end] var(--gutter) [full-end];column-gap:0;width:100%;display:grid}.shell .wrap:has([data-bleed])>*,.shell [data-bleed-host]>*{grid-column:content}.shell .wrap:has([data-bleed])>[data-bleed-host]{grid-column:full;grid-template-columns:subgrid;display:grid}.shell .wrap:has([data-bleed])>[data-bleed]:not([data-bleed=phone]),.shell [data-bleed-host]>[data-bleed]:not([data-bleed=phone]){grid-column:full}}@media (width<=640px){.shell .wrap:has([data-bleed])>[data-bleed=phone],.shell [data-bleed-host]>[data-bleed=phone]{grid-column:full}.traits[data-bleed] .traits__open{padding-left:var(--gutter)}}#contact-dialog.cdlg{opacity:1;border:1px solid var(--line-strong,#ffffff2e);background:var(--bg,#000);transform-origin:0 0;width:min(600px,100% - 32px);padding:28px;transition:none;overflow-x:hidden;transform:none}#contact-dialog.cdlg.is-morphing{overflow:hidden}#contact-dialog.cdlg::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .45s}#contact-dialog.cdlg.is-in::backdrop{opacity:1}#contact-dialog.cdlg.is-shut::backdrop{opacity:0;transition-duration:.35s}.cdlg .dialog__head{flex-wrap:wrap;row-gap:6px}.cdlg .dialog__head h2{flex:auto}.cdlg__eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);flex:1 0 100%;order:-1;align-items:center;gap:8px;margin:0;font-size:11px;display:flex}.cdlg__dot{background:var(--positive);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--positive) 60%, transparent);border-radius:50%}.cdlg__beam{background:linear-gradient(90deg, transparent, var(--text), transparent);opacity:0;pointer-events:none;background-position:-40% 0;background-repeat:no-repeat;background-size:30% 100%;width:100%;height:1px;position:absolute;top:-1px;left:0}@media (prefers-reduced-motion:no-preference){.cdlg form>:not(.cdlg__beam){opacity:0;transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1);transform:translateY(8px)}.cdlg.is-in form>:not(.cdlg__beam){opacity:1;transform:none}.cdlg.is-in form>:nth-child(2){transition-delay:.16s}.cdlg.is-in form>:nth-child(3){transition-delay:.19s}.cdlg.is-in form>:nth-child(4){transition-delay:.22s}.cdlg.is-in form>:nth-child(5){transition-delay:.25s}.cdlg.is-in form>:nth-child(6){transition-delay:.28s}.cdlg.is-in form>:nth-child(7){transition-delay:.31s}.cdlg.is-in form>:nth-child(n+8){transition-delay:.34s}.cdlg.is-shut form>:not(.cdlg__beam){transition-duration:.15s;transition-delay:0s}.cdlg.is-in .cdlg__beam{animation:1.4s cubic-bezier(.5,0,.2,1) .3s cdlg-beam}.cdlg.is-in .cdlg__dot{animation:2.4s ease-out .9s infinite cdlg-ping}}.cdlg .collab{-webkit-text-fill-color:currentColor;color:var(--text);background:0 0;-webkit-background-clip:border-box;background-clip:border-box;animation:none}@keyframes cdlg-beam{0%{opacity:0;background-position:-40% 0}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:140% 0}}@keyframes cdlg-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--positive) 60%, transparent)}70%,to{box-shadow:0 0 0 7px #0000}}@media (width<=720px){#contact-dialog.cdlg{overscroll-behavior:contain;border:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow-y:auto}#contact-dialog.cdlg form{flex-direction:column;gap:18px;min-height:100%;display:flex}#contact-dialog.cdlg form>:not(.cdlg__beam,.dialog__head,.dialog__actions){margin-inline:20px}#contact-dialog.cdlg .dialog__head{z-index:2;padding:16px var(--fixedbar-clear,64px) 16px 20px;padding-top:max(16px, env(safe-area-inset-top));border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(12px);gap:6px;display:grid;position:sticky;top:0}#contact-dialog.cdlg .dialog__head h2{font-size:1.25rem;line-height:1.2}#contact-dialog.cdlg .dialog__close{top:max(var(--mnav-top,6px), env(safe-area-inset-top));right:max(var(--mnav-right,8px), env(safe-area-inset-right));width:var(--mnav-size,44px);height:var(--mnav-size,44px);border-color:var(--line-strong);background:var(--bg);color:var(--text);position:absolute}#contact-dialog.cdlg .dialog__lede{margin-top:2px}#contact-dialog.cdlg .dialog__pitch{font-size:15px}#contact-dialog.cdlg .dialog__actions{z-index:2;padding:12px 20px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);margin-top:auto;position:sticky;bottom:0}#contact-dialog.cdlg .dialog__actions .button{justify-content:center;width:100%}#contact-dialog.cdlg form>:not(.cdlg__beam){transition-delay:0s!important}}.side{isolation:isolate;overflow:hidden}.side:before{content:"";z-index:-1;pointer-events:none;background:repeating-linear-gradient(to bottom, color-mix(in srgb, var(--text) 3.5%, transparent) 0 1px, transparent 1px 3px);opacity:.55;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 70%);mask-image:linear-gradient(90deg,#0000,#000 70%)}.side:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--text) 4%, transparent) 70%, color-mix(in srgb, var(--accent-red) 22%, transparent) 99%, transparent);height:140px;animation:11s cubic-bezier(.45,0,.25,1) 1.5s infinite side-sweep;position:absolute;top:0;left:0;right:0;transform:translateY(-160px)}@keyframes side-sweep{0%{opacity:0;transform:translateY(-160px)}8%{opacity:1}55%{opacity:1;transform:translateY(100vh)}56%,to{opacity:0;transform:translateY(100vh)}}.side .mark__glyph{transition:border-color .3s,color .3s;position:relative}.side .mark__glyph:after{content:"";border:1px dashed var(--line-strong);opacity:0;border-radius:50%;transition:opacity .3s;position:absolute;inset:-4px}.side .mark:hover .mark__glyph{border-color:var(--accent-red);color:var(--accent-red)}.side .mark:hover .mark__glyph:after{opacity:1;animation:6s linear infinite mark-spin}@keyframes mark-spin{to{transform:rotate(360deg)}}.side .mark{padding-inline:20px}.side .sidenav{gap:0;position:relative}.side .sidenav a{z-index:1;color:var(--muted);align-items:baseline;gap:23px;padding:8px 20px 8px 9px;transition:color .2s,transform .25s cubic-bezier(.2,.8,.2,1);display:flex;position:relative}.side .sidenav__idx{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums;font-size:10px;transition:color .2s}.side .sidenav__label{white-space:nowrap}.side .sidenav a:hover,.side .sidenav a:focus-visible{color:var(--text);transform:translate(3px)}.side .sidenav a:hover .sidenav__idx,.side .sidenav a:focus-visible .sidenav__idx{color:var(--text)}.side .sidenav a:focus-visible{outline:none}.side .sidenav a[aria-current=page]{color:var(--text);font-weight:600}.side .sidenav a[aria-current=page] .sidenav__idx{color:var(--accent-red)}.side .sidenav a[aria-current=page]:before{content:"";background:var(--accent-red);width:2px;height:14px;box-shadow:0 0 10px 1px color-mix(in srgb, var(--accent-red) 55%, transparent);animation:.5s cubic-bezier(.2,.8,.2,1) both tick-in;position:absolute;top:50%;left:0;transform:translateY(-50%)}.side .sidenav a[aria-current=page] .sidenav__label:after{content:"";vertical-align:-1px;background:var(--accent-red);opacity:.8;width:6px;height:12px;margin-left:6px;animation:1.1s step-end infinite caret;display:inline-block}@keyframes tick-in{0%{height:0}}@keyframes caret{50%{opacity:0}}.side .sidenav__beam{height:var(--h,0px);transform:translateY(var(--y,0px));opacity:0;pointer-events:none;background:repeating-linear-gradient(to bottom, color-mix(in srgb, var(--text) 7%, transparent) 0 1px, transparent 1px 3px), linear-gradient(to right, color-mix(in srgb, var(--text) 6%, transparent), transparent 85%);border-block:1px solid color-mix(in srgb, var(--text) 8%, transparent);position:absolute;top:0;left:0;right:0}.side .sidenav.is-ready .sidenav__beam{transition:transform .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1),opacity .25s}.side .side__cta{isolation:isolate;border:0;border-top:1px solid var(--line-strong);background:color-mix(in srgb, var(--text) 2.5%, transparent);color:var(--text);text-align:center;cursor:pointer;border-radius:0;align-self:stretch;gap:10px;margin-top:auto;padding:22px 20px 24px;transition:color .3s,border-color .3s;display:grid;position:relative;overflow:hidden}.side .side__cta:before{content:"";z-index:-2;background:var(--accent-red);transform-origin:bottom;transition:transform .45s cubic-bezier(.7,0,.2,1);position:absolute;inset:0;transform:scaleY(0)}.side .side__cta:after{content:"";z-index:-1;pointer-events:none;background:repeating-linear-gradient(to bottom, transparent 0 2px, color-mix(in srgb, var(--text) 5%, transparent) 2px 3px);transition:opacity .3s;position:absolute;inset:0}.side .side__cta-run{background:linear-gradient(to right, transparent, var(--accent-red), transparent);width:56px;height:1px;animation:4.8s cubic-bezier(.6,0,.3,1) infinite cta-run;position:absolute;top:-1px;left:0}@keyframes cta-run{0%{opacity:0;transform:translate(-60px)}10%{opacity:1}60%{opacity:1;transform:translate(240px)}61%,to{opacity:0;transform:translate(240px)}}.side .side__cta-row{justify-content:center;align-items:center;gap:10px;display:flex;position:relative}.side .side__cta-dot{background:var(--accent-red);border-radius:50%;flex:none;width:7px;height:7px;transition:background .3s;animation:2.4s ease-out infinite cta-ping}@keyframes cta-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent-red) 60%, transparent)}70%,to{box-shadow:0 0 0 7px #0000}}.side .side__cta-label{letter-spacing:-.02em;white-space:nowrap;text-align:left;font-size:17px;font-weight:600;line-height:1.15;display:block;overflow:hidden}.side .side__cta-corner{opacity:0;border:0 solid;width:10px;height:10px;transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1);position:absolute}.side .side__cta-corner--tl{border-top-width:1px;border-left-width:1px;top:8px;left:8px;transform:translate(6px,6px)}.side .side__cta-corner--br{border-bottom-width:1px;border-right-width:1px;bottom:8px;right:8px;transform:translate(-6px,-6px)}.side .side__cta:hover,.side .side__cta:focus-visible{color:var(--on-accent);outline:none}.side .side__cta:hover:before,.side .side__cta:focus-visible:before{transform:scaleY(1)}.side .side__cta:hover:after,.side .side__cta:focus-visible:after{background:repeating-linear-gradient(#0000 0 2px,#00000024 2px 3px)}.side .side__cta:hover .side__cta-dot,.side .side__cta:focus-visible .side__cta-dot{background:var(--on-accent);animation-name:cta-ping-lit}@keyframes cta-ping-lit{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--on-accent) 70%, transparent)}70%,to{box-shadow:0 0 0 8px #0000}}.side .side__cta:hover .side__cta-corner,.side .side__cta:focus-visible .side__cta-corner{opacity:.9;transform:none}.side .side__cta:hover .side__cta-run{opacity:0;animation:none}.side .side__cta:active:before{filter:brightness(.9)}@media (width<=960px){.side:after{display:none}.side .sidenav{gap:16px}.side .sidenav a{padding:6px 0}.side .sidenav__idx,.side .sidenav__beam{display:none}.side .sidenav a[aria-current=page]:before{width:auto;height:2px;inset:auto 0 -2px;transform:none}.side .sidenav a[aria-current=page] .sidenav__label:after,.side .side__cta{display:none}}@media (prefers-reduced-motion:reduce){.side:after,.side .side__cta-dot,.side .side__cta-run,.side .sidenav a[aria-current=page] .sidenav__label:after,.side .mark:hover .mark__glyph:after{animation:none}.side .sidenav.is-ready .sidenav__beam,.side .side__cta:before{transition:none}}.mnav-toggle[data-astro-cid-xlat7obg],.mnav-defs[data-astro-cid-xlat7obg]{display:none}.mnav-defs[data-astro-cid-xlat7obg]{width:0;height:0;position:absolute;overflow:hidden}.mnav-glyph[data-astro-cid-xlat7obg]{flex:none;width:30px;height:30px;display:block;position:relative}.mnav-glyph__line[data-astro-cid-xlat7obg]{background:currentColor;border-radius:1px;height:1.5px;transition:transform .42s cubic-bezier(.65,0,.2,1),opacity .3s;position:absolute;top:calc(50% - .75px);left:7px;right:7px}.mnav-glyph__line[data-astro-cid-xlat7obg]:first-child{transform:translateY(-3.5px)}.mnav-glyph__line[data-astro-cid-xlat7obg]:nth-child(2){transform:translateY(3.5px)}.mnav-glyph__ring[data-astro-cid-xlat7obg]{width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.mnav-glyph__ring[data-astro-cid-xlat7obg] circle[data-astro-cid-xlat7obg]{fill:none;stroke:currentColor;stroke-width:1px;stroke-dasharray:100;stroke-dashoffset:100px;transition:stroke-dashoffset .6s cubic-bezier(.65,0,.2,1) .12s,stroke .25s}.mnav-glyph__jo[data-astro-cid-xlat7obg]{font-family:var(--mono);letter-spacing:-.04em;opacity:0;place-items:center;font-size:11px;font-weight:600;line-height:1;transition:opacity .3s .22s,transform .45s cubic-bezier(.2,.8,.2,1) .22s,color .25s;display:grid;position:absolute;inset:0;transform:scale(.6)}.mnav[data-astro-cid-xlat7obg].is-open .mnav-glyph__line[data-astro-cid-xlat7obg]:first-child{opacity:0;transform:translateY(0)rotate(45deg)scaleX(0)}.mnav[data-astro-cid-xlat7obg].is-open .mnav-glyph__line[data-astro-cid-xlat7obg]:nth-child(2){opacity:0;transform:translateY(0)rotate(-45deg)scaleX(0)}.mnav[data-astro-cid-xlat7obg].is-open .mnav-glyph__ring[data-astro-cid-xlat7obg] circle[data-astro-cid-xlat7obg]{stroke-dashoffset:0}.mnav[data-astro-cid-xlat7obg].is-open .mnav-glyph__jo[data-astro-cid-xlat7obg]{opacity:1;transform:none}:root{--fixedbar-h:56px;--mnav-size:44px;--mnav-top:calc((var(--fixedbar-h) - var(--mnav-size)) / 2);--mnav-right:8px;--fixedbar-clear:calc(var(--mnav-right) + var(--mnav-size) + 12px)}@media screen and (width<=960px){.mnav-toggle[data-astro-cid-xlat7obg]{z-index:45;top:max(var(--mnav-top), env(safe-area-inset-top));right:max(var(--mnav-right), env(safe-area-inset-right));width:var(--mnav-size);height:var(--mnav-size);border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(10px);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;place-items:center;padding:0;transition:border-color .2s;display:grid;position:fixed}@media (hover:hover) and (pointer:fine){.mnav-toggle[data-astro-cid-xlat7obg]:hover{border-color:var(--text)}}.mnav-toggle[data-astro-cid-xlat7obg]:focus-visible,.mnav__close[data-astro-cid-xlat7obg]:focus-visible,.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]:focus-visible,.mnav__cta[data-astro-cid-xlat7obg]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}html.has-mnav .mnav-toggle[data-astro-cid-xlat7obg]{opacity:0}.mnav-defs[data-astro-cid-xlat7obg]{display:block}}.mnav[data-astro-cid-xlat7obg]{width:100%;max-width:none;height:100%;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.mnav[data-astro-cid-xlat7obg]::backdrop{background:var(--scrim);opacity:0;transition:opacity .4s}.mnav[data-astro-cid-xlat7obg].is-open::backdrop{opacity:1}.mnav__ripple[data-astro-cid-xlat7obg]{z-index:0;border:1px solid color-mix(in srgb, var(--text) 40%, transparent);opacity:0;pointer-events:none;border-radius:50%;width:44px;height:44px;position:fixed}.mnav__panel[data-astro-cid-xlat7obg]{z-index:1;max-height:100%;display:flex;position:absolute;top:0;left:0;right:0}.mnav__panel[data-astro-cid-xlat7obg].is-water{filter:url(#mnav-water)}.mnav__sheet[data-astro-cid-xlat7obg]{overscroll-behavior:contain;max-height:100dvh;padding:calc(max(12px, env(safe-area-inset-top)) + 64px) max(20px, env(safe-area-inset-right)) 28px max(20px, env(safe-area-inset-left));border-bottom:1px solid var(--line-strong);background:var(--bg);flex:1;overflow-y:auto}.mnav__title[data-astro-cid-xlat7obg]{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:0 0 14px;font-size:11px;font-weight:400}.mnav__list[data-astro-cid-xlat7obg]{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]{border-bottom:1px solid var(--line);min-height:60px;color:var(--muted);letter-spacing:-.025em;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:8px;padding:10px 2px;font-size:clamp(24px,7vw,30px);font-weight:500;line-height:1.1;text-decoration:none;transition:color .2s;display:grid}.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]:hover,.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]:active{color:var(--text)}.mnav__idx[data-astro-cid-xlat7obg]{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums;align-self:center;font-size:11px;font-weight:400}.mnav__label[data-astro-cid-xlat7obg]{overflow-wrap:anywhere}.mnav__arrow[data-astro-cid-xlat7obg]{width:18px;height:18px;color:var(--faint);transition:transform .25s cubic-bezier(.2,.8,.2,1),color .2s}.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]:hover .mnav__arrow[data-astro-cid-xlat7obg]{color:var(--text);transform:translate(3px)}.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg][aria-current=page]{color:var(--text);font-weight:600}.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg][aria-current=page] .mnav__idx[data-astro-cid-xlat7obg],.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg][aria-current=page] .mnav__arrow[data-astro-cid-xlat7obg]{color:var(--accent-red)}.mnav__cta[data-astro-cid-xlat7obg]{border:1px solid var(--line-strong);width:100%;min-height:56px;color:var(--text);font:600 17px/1.15 var(--sans);letter-spacing:-.02em;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:10px;margin-top:24px;padding:0 20px;transition:background-color .25s,border-color .25s,color .25s;display:flex}.mnav__cta[data-astro-cid-xlat7obg]:hover,.mnav__cta[data-astro-cid-xlat7obg]:active{border-color:var(--accent-red);background:var(--accent-red);color:var(--on-accent)}.mnav__cta-dot[data-astro-cid-xlat7obg]{background:var(--accent-red);border-radius:50%;width:7px;height:7px;transition:background-color .25s}.mnav__cta[data-astro-cid-xlat7obg]:hover .mnav__cta-dot[data-astro-cid-xlat7obg],.mnav__cta[data-astro-cid-xlat7obg]:active .mnav__cta-dot[data-astro-cid-xlat7obg]{background:var(--on-accent)}.mnav__close[data-astro-cid-xlat7obg]{z-index:2;top:max(var(--mnav-top), env(safe-area-inset-top));right:max(var(--mnav-right), env(safe-area-inset-right));border:1px solid var(--line-strong);background:var(--bg);height:44px;color:var(--text);font:500 14px/1 var(--sans);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;padding:0 6px;transition:border-color .2s;display:flex;position:fixed}.mnav__close-label[data-astro-cid-xlat7obg]{opacity:0;white-space:nowrap;max-width:0;transition:max-width .45s cubic-bezier(.65,0,.2,1),opacity .3s,padding .45s cubic-bezier(.65,0,.2,1);overflow:hidden}.mnav[data-astro-cid-xlat7obg].is-open .mnav__close-label[data-astro-cid-xlat7obg]{opacity:1;max-width:5em;padding:0 10px;transition-delay:.1s,.2s,.1s}@media (hover:hover) and (pointer:fine){.mnav__close[data-astro-cid-xlat7obg]:hover{border-color:var(--text)}.mnav__close[data-astro-cid-xlat7obg]:hover .mnav-glyph__ring[data-astro-cid-xlat7obg] circle[data-astro-cid-xlat7obg]{stroke:var(--accent-red)}.mnav__close[data-astro-cid-xlat7obg]:hover .mnav-glyph__jo[data-astro-cid-xlat7obg]{color:var(--accent-red)}}.mnav__list[data-astro-cid-xlat7obg] li[data-astro-cid-xlat7obg],.mnav__cta[data-astro-cid-xlat7obg]{opacity:0;transition:opacity .35s,transform .5s cubic-bezier(.2,.8,.2,1);transform:translateY(10px)}.mnav[data-astro-cid-xlat7obg].is-open .mnav__list[data-astro-cid-xlat7obg] li[data-astro-cid-xlat7obg],.mnav[data-astro-cid-xlat7obg].is-open .mnav__cta[data-astro-cid-xlat7obg]{opacity:1;transition-delay:calc(.16s + var(--i,0) * 45ms);transform:none}@media (height<=520px){.mnav__list[data-astro-cid-xlat7obg] a[data-astro-cid-xlat7obg]{min-height:48px;font-size:22px}.mnav__sheet[data-astro-cid-xlat7obg]{padding-top:calc(max(12px, env(safe-area-inset-top)) + 56px)}}@media (prefers-reduced-motion:reduce){.mnav-glyph__line[data-astro-cid-xlat7obg],.mnav-glyph__ring[data-astro-cid-xlat7obg] circle[data-astro-cid-xlat7obg],.mnav-glyph__jo[data-astro-cid-xlat7obg],.mnav__close-label[data-astro-cid-xlat7obg],.mnav__list[data-astro-cid-xlat7obg] li[data-astro-cid-xlat7obg],.mnav__cta[data-astro-cid-xlat7obg]{transition-duration:10ms!important;transition-delay:0s!important}.mnav[data-astro-cid-xlat7obg]::backdrop{transition:opacity .15s}}@media print{.mnav-toggle[data-astro-cid-xlat7obg],.mnav[data-astro-cid-xlat7obg]{display:none!important}}
