.anim.svelte-viw4oe{margin:2.4rem 0 2.6rem}.stage.svelte-viw4oe{width:100%;aspect-ratio:640 / 400}video.svelte-viw4oe{display:block;width:100%;height:100%}.motion-control.svelte-viw4oe{display:block;margin:0 auto;min-height:44px;padding:8px 12px;font:var(--text-meta) / 1.4 var(--font-ui);color:var(--blue)}figcaption.svelte-viw4oe{margin-top:.85rem;text-align:center;font-family:var(--font-ui);font-size:.92rem;line-height:1.45;color:var(--muted)}.post-nav.svelte-14d85tx{max-width:var(--page-width);margin:0 auto;padding:var(--space-page) 24px 0}.post-content.svelte-14d85tx{width:100%;max-width:var(--reading-width);margin:0 auto;padding:16px 24px 96px}.blog-hero.svelte-14d85tx{display:flex;flex-direction:column;align-items:center;text-align:center;margin:1.5rem 0 4.5rem}.hero-figure.svelte-14d85tx{margin:0 0 3rem;display:flex;justify-content:center;animation:svelte-14d85tx-hero-surface .9s var(--ease-out) both}.hero-figure.svelte-14d85tx img:where(.svelte-14d85tx){display:block;width:auto;max-width:70%;max-height:300px;animation:svelte-14d85tx-hero-drift 14s ease-in-out 1.2s infinite}.film.svelte-14d85tx{width:100%;margin-top:1.5rem;font-family:var(--font-ui);font-size:var(--text-ui);color:var(--blue)}.film.svelte-14d85tx summary:where(.svelte-14d85tx){width:-moz-fit-content;width:fit-content;min-height:44px;margin:0 auto;padding:10px 0;cursor:pointer}.film.svelte-14d85tx summary:where(.svelte-14d85tx) span:where(.svelte-14d85tx){margin-left:.5rem;color:var(--muted)}.film.svelte-14d85tx summary:where(.svelte-14d85tx):focus-visible{outline:2px solid var(--blue);outline-offset:4px}.film.svelte-14d85tx video:where(.svelte-14d85tx){display:block;width:100%;aspect-ratio:16 / 9;margin-top:.75rem}.hero-rule.svelte-14d85tx{display:block;width:60px;height:1px;background:var(--rule);opacity:.9;animation:svelte-14d85tx-hero-rule-draw .7s var(--ease-out) .25s both}.hero-title.svelte-14d85tx{margin:2.5rem 0 0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.9rem,4.4vw,2.6rem);line-height:1.14;letter-spacing:-.005em;color:var(--ink);text-wrap:balance;animation:svelte-14d85tx-hero-rise .8s var(--ease-out) .35s both}.hero-meta.svelte-14d85tx{margin:1.85rem 0 2.5rem;font-family:var(--font-ui);font-size:var(--text-meta);color:var(--muted);animation:svelte-14d85tx-hero-rise .8s var(--ease-out) .5s both}@keyframes svelte-14d85tx-hero-surface{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes svelte-14d85tx-hero-rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes svelte-14d85tx-hero-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes svelte-14d85tx-hero-drift{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media (prefers-reduced-motion: reduce){.hero-figure.svelte-14d85tx,.hero-figure.svelte-14d85tx img:where(.svelte-14d85tx),.hero-rule.svelte-14d85tx,.hero-title.svelte-14d85tx,.hero-meta.svelte-14d85tx{animation:none}}@media (max-width: 640px){.blog-hero.svelte-14d85tx{margin-bottom:3.5rem}.hero-figure.svelte-14d85tx{margin-bottom:2.25rem}.hero-figure.svelte-14d85tx img:where(.svelte-14d85tx){max-height:230px;max-width:70%}.hero-meta.svelte-14d85tx{margin:1.5rem 0 2rem}}.katex{font-size:1.1em}.katex-display{overflow-x:auto;overflow-y:hidden;padding:1em 0}.katex-error{color:#c00;background-color:#ffebeb;padding:.2em .4em;border-radius:.2em}.markdown-body{color:inherit}.blog-prose.svelte-14d85tx{color:var(--ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.62;font-weight:400;font-kerning:normal;font-optical-sizing:auto}.blog-prose.svelte-14d85tx h1,.blog-prose.svelte-14d85tx h2,.blog-prose.svelte-14d85tx h3{color:var(--ink);font-family:var(--font-display);font-weight:400;line-height:1.15;letter-spacing:-.005em;text-wrap:balance}.blog-prose.svelte-14d85tx h1{margin:0 0 2rem;font-size:clamp(1.9rem,4.4vw,2.5rem)}.blog-prose.svelte-14d85tx h2{margin:4rem 0 1.35rem;font-size:clamp(1.4rem,2.6vw,1.65rem)}.blog-prose.svelte-14d85tx h3{margin:3rem 0 1rem;font-size:1.2rem}.blog-prose.svelte-14d85tx p,.blog-prose.svelte-14d85tx ul,.blog-prose.svelte-14d85tx ol,.blog-prose.svelte-14d85tx blockquote,.blog-prose.svelte-14d85tx pre{margin:0 0 1.75rem}.blog-prose.svelte-14d85tx strong{color:var(--ink);font-weight:600}.blog-prose.svelte-14d85tx a{color:var(--blue);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em;transition:color var(--motion-fast) ease,text-decoration-color var(--motion-fast) ease;overflow-wrap:anywhere;text-decoration-color:color-mix(in srgb,var(--blue) 45%,transparent)}.blog-prose.svelte-14d85tx a:hover{color:var(--accent-hover);text-decoration-color:currentColor}.blog-prose.svelte-14d85tx hr{margin:2.75rem 0;border:0;border-top:1px solid var(--rule)}.blog-prose.svelte-14d85tx blockquote{padding-left:1.25rem;border-left:2px solid var(--rule);color:var(--muted);font-style:normal;font-weight:400}.blog-prose.svelte-14d85tx ul,.blog-prose.svelte-14d85tx ol{padding-left:1.4rem}.blog-prose.svelte-14d85tx ul{list-style-type:disc}.blog-prose.svelte-14d85tx ol{list-style-type:decimal}.blog-prose.svelte-14d85tx li+li{margin-top:.75rem}.blog-prose.svelte-14d85tx img{display:block;width:100%;margin:2.25rem 0;border-radius:.25rem}.blog-prose.svelte-14d85tx pre{max-width:100%;overflow-x:auto}.blog-prose.svelte-14d85tx code{font-family:var(--font-code);font-size:.88em}.blog-prose.svelte-14d85tx .sn-toggle{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.blog-prose.svelte-14d85tx .sn-dot{display:inline-flex;align-items:center;justify-content:center;width:1.3em;height:1.3em;margin:0 .18em;vertical-align:.25em;border-radius:9999px;background:var(--blue);color:var(--paper);font-family:var(--font-code);font-size:.68em;font-weight:600;line-height:1;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--motion-fast) ease,transform var(--motion-fast) ease}.blog-prose.svelte-14d85tx .sn-dot:hover{background:var(--accent-hover);transform:scale(1.12)}.blog-prose.svelte-14d85tx .sn-toggle:checked+.sn-dot{background:var(--accent-hover)}.blog-prose.svelte-14d85tx .sn-toggle:focus-visible+.sn-dot{outline:2px solid var(--blue);outline-offset:3px}.blog-prose.svelte-14d85tx .sn-gray .sn-dot{background:var(--muted)}.blog-prose.svelte-14d85tx .sn-gray .sn-dot:hover,.blog-prose.svelte-14d85tx .sn-gray .sn-toggle:checked+.sn-dot{background:var(--ink)}.blog-prose.svelte-14d85tx .sn-body{display:none;margin:.85em 0;padding:.8em 1.05em;background:var(--accent-soft);border-left:2px solid var(--blue);border-radius:.25rem;color:var(--muted);font-size:.92em;line-height:1.58}.blog-prose.svelte-14d85tx .sn-toggle:checked~.sn-body{display:block}.blog-prose.svelte-14d85tx .sn-gray .sn-body{background:var(--accent-soft);border-left-color:var(--rule)}@media (max-width: 640px){.blog-prose.svelte-14d85tx{font-size:1.02rem;line-height:1.66}.blog-prose.svelte-14d85tx h1{margin-bottom:1.5rem}.blog-prose.svelte-14d85tx p,.blog-prose.svelte-14d85tx ul,.blog-prose.svelte-14d85tx ol,.blog-prose.svelte-14d85tx blockquote,.blog-prose.svelte-14d85tx pre{margin-bottom:1.45rem}}
