.crumb[data-astro-cid-vz62ug3c]{z-index:40;padding-top:env(safe-area-inset-top);background:var(--bg);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .14s var(--out), visibility 0s linear .14s;position:fixed;inset:0 0 auto}.crumb[data-astro-cid-vz62ug3c][data-on]{opacity:1;visibility:visible;transition:opacity .22s var(--out), visibility 0s}.crumb-in[data-astro-cid-vz62ug3c]{max-width:calc(var(--col) + 2 * var(--gutter));padding:0 max(var(--gutter), env(safe-area-inset-right)) 0 max(var(--gutter), env(safe-area-inset-left));transition:transform .14s var(--out);margin:0 auto;transform:translateY(4px)}.crumb[data-astro-cid-vz62ug3c][data-on] .crumb-in[data-astro-cid-vz62ug3c]{transition:transform .32s var(--out);transform:none}.crumb-btn[data-astro-cid-vz62ug3c]{text-align:left;width:calc(100% + 20px);height:44px;color:var(--strong);touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:8px;align-items:center;gap:10px;margin-inline:-10px;padding:0 10px;font-size:13px;line-height:1;transition:background-color 80ms;display:flex}.crumb-btn[data-astro-cid-vz62ug3c]:active{background:var(--hover)}.crumb-t[data-astro-cid-vz62ug3c]{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:540;overflow:hidden}.crumb-n[data-astro-cid-vz62ug3c]{min-width:5ch;font-family:var(--mono);text-align:right;color:var(--faint);font-variant-numeric:tabular-nums;font-size:12px}.crumb-btn[data-astro-cid-vz62ug3c] .ic[data-astro-cid-vz62ug3c]{width:14px;height:14px;color:var(--faint);transition:transform .2s var(--out)}.crumb-btn[data-astro-cid-vz62ug3c][aria-expanded=true] .ic[data-astro-cid-vz62ug3c]{transform:rotate(180deg)}.contents[data-astro-cid-vz62ug3c]{overscroll-behavior:contain;background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.contents[data-astro-cid-vz62ug3c]::backdrop{background:0 0}html:has(.contents[open]){overflow:hidden}.scrim[data-astro-cid-vz62ug3c]{background:#0a0a0952;position:absolute;inset:0}.sheet[data-astro-cid-vz62ug3c]{width:min(100%,560px);max-height:86dvh;padding-bottom:env(safe-area-inset-bottom);background:var(--card);box-shadow:0 -1px 0 var(--card-line);border-radius:16px 16px 0 0;flex-direction:column;margin-inline:auto;display:flex;position:absolute;bottom:0;left:0;right:0}.sheet-head[data-astro-cid-vz62ug3c]{touch-action:none;-webkit-user-select:none;user-select:none;flex:none;padding:8px 20px 10px}.grip[data-astro-cid-vz62ug3c]{background:var(--ul);border-radius:3px;width:36px;height:5px;margin:0 auto 14px;display:block}.sheet-head[data-astro-cid-vz62ug3c] h2[data-astro-cid-vz62ug3c]{color:var(--faint);font-size:12px;font-weight:500;line-height:1.4}.sheet-list[data-astro-cid-vz62ug3c]{overscroll-behavior:contain;flex:1;min-height:0;padding:0 8px 12px;list-style:none;overflow-y:auto}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c]{min-height:44px;color:var(--muted);-webkit-touch-callout:none;border-radius:10px;align-items:baseline;gap:12px;padding:11px 12px;font-size:15px;line-height:1.45;text-decoration:none;transition:background-color 80ms,color .15s;display:flex}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c]:active{background:var(--hover)}.sheet-n[data-astro-cid-vz62ug3c]{width:2ch;font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c][aria-current=true]{color:var(--strong);background:var(--hover)}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c][aria-current=true] .sheet-n[data-astro-cid-vz62ug3c]{color:var(--accent)}@media (width>=768px){.contents[data-astro-cid-vz62ug3c]{inset:calc(env(safe-area-inset-top) + 45px) 0 0;width:auto;height:auto}.scrim[data-astro-cid-vz62ug3c]{background:#0a0a0929}.sheet[data-astro-cid-vz62ug3c]{width:auto;max-height:min(70dvh,100% - 32px);padding:12px max(var(--gutter), env(safe-area-inset-right)) 14px max(var(--gutter), env(safe-area-inset-left));background:var(--bg);border-bottom:1px solid var(--line);border-radius:0 0 14px 14px;margin:0;top:0;bottom:auto;box-shadow:0 16px 32px -16px #1414132e}.sheet-head[data-astro-cid-vz62ug3c]{width:var(--col);margin-inline:auto;padding:0 0 6px}.grip[data-astro-cid-vz62ug3c]{display:none}.sheet-list[data-astro-cid-vz62ug3c]{width:calc(var(--col) + 44px);margin-left:calc(50% - var(--col) / 2 - 44px);padding:0}.sheet-n[data-astro-cid-vz62ug3c]{width:20px}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c]{min-height:40px;padding:9px 12px;font-size:14px}}@media (width>=1180px){.crumb[data-astro-cid-vz62ug3c],.contents[data-astro-cid-vz62ug3c]{display:none}}@media (hover:hover) and (pointer:fine){.crumb-btn[data-astro-cid-vz62ug3c]:hover,.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c]:hover{background:var(--hover)}.sheet-list[data-astro-cid-vz62ug3c] a[data-astro-cid-vz62ug3c]:hover{color:var(--strong)}}.post-title{letter-spacing:-.018em;width:fit-content;color:var(--strong);text-wrap:balance;view-transition-class:hero-title;margin-bottom:10px;scroll-margin-top:120px;font-size:22px;font-weight:580;line-height:1.3}.byline{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;gap:6px 14px;margin-bottom:24px;font-size:12.5px;line-height:1.6;display:flex}.byline time{color:var(--muted)}.dek{color:var(--muted);text-wrap:pretty;margin-bottom:32px;font-size:16px;line-height:1.6}.hero{margin-bottom:16px}.hero .stage-in{aspect-ratio:16/10;background:var(--hero-bg,var(--card))}.hero img,.hero video{object-fit:cover;object-position:var(--hero-pos,50% 50%);width:100%;height:100%}.hero.contain img,.hero.contain video{object-fit:contain;padding:5%}.facts{background:var(--line);box-shadow:0 0 0 1px var(--line);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-bottom:48px;display:grid;overflow:hidden}.facts div{background:var(--bg);min-width:0;padding:10px 14px}.facts dt{color:var(--faint);font-size:12px}.facts dd{color:var(--strong);overflow-wrap:anywhere;font-size:13.5px}.facts .links{color:var(--faint);flex-wrap:wrap;gap:0 6px;display:flex}.facts a{color:var(--accent);text-decoration:none}.facts.two{grid-template-columns:repeat(2,minmax(0,1fr))}.toc{top:180px;left:max(24px, calc(50% - var(--col) / 2 - 260px));width:200px;display:none;position:fixed}.toc p{color:var(--faint);margin-bottom:10px;font-size:12px}.toc ol{padding:0;list-style:none}.toc a{color:var(--faint);padding:5px 0 5px 16px;font-size:13px;line-height:1.4;text-decoration:none;transition:color .15s;display:block;position:relative}.toc a:before{content:"";width:7px;height:1px;transition:width .2s var(--out), background-color .15s ease;background:currentColor;position:absolute;top:calc(5px + .7em);left:0}.toc.still a,.toc.still a:before{transition:none}.toc a[aria-current=true]{color:var(--strong)}.toc a[aria-current=true]:before{background:var(--accent);width:11px}@media (width>=1180px){.toc{display:block}}.prose{overflow-wrap:break-word}.prose>*+*{margin-top:20px}.prose>.fig,.prose>.codecard{margin-block:32px}.prose>.fig+*,.prose>.codecard+*{margin-top:0}.prose p{text-wrap:pretty}.prose h2,.prose h3{letter-spacing:-.005em;color:var(--strong);scroll-margin-top:32px;font-size:15px;font-weight:580}.prose h2{align-items:center;gap:12px;margin:56px 0 16px;display:flex}.prose h2:after{content:"";background:var(--line);flex:1;min-width:24px;height:1px}.prose h3{margin:36px 0 12px}@media (width<=1179px){.prose h2,.prose h3{scroll-margin-top:calc(env(safe-area-inset-top) + 68px)}}.prose h2+*,.prose h3+*{margin-top:0}.prose a{text-decoration:underline;text-decoration-color:var(--ul);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .15s}.prose strong{color:var(--strong);font-weight:560}.prose ul,.prose ol:not([class]){padding-left:18px}.prose li{padding-left:4px}.prose li+li{margin-top:6px}.prose li::marker{color:var(--faint)}.prose blockquote{box-shadow:inset 2px 0 0 var(--line);color:var(--muted);padding-left:16px}.prose :not(pre)>code{background:var(--code);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--mono);color:var(--strong);border-radius:5px;padding:2px 5px;font-size:.84em}.prose hr{background:var(--line);border:0;height:1px;margin:48px 0}.codecard{background:var(--code);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;overflow:hidden}.code-h{border-bottom:1px solid var(--line);height:44px;font-family:var(--mono);color:var(--muted);justify-content:space-between;align-items:center;padding:0 8px 0 14px;font-size:12px;display:flex}.copy{width:28px;height:28px;color:var(--faint);transition:color .15s ease, background-color .15s ease, transform .12s var(--out);border-radius:7px;place-items:center;display:grid;position:relative}.copy:active{transform:scale(.94)}.copy .ic{width:14px;height:14px;transition:opacity .15s ease, transform .2s var(--out), filter .2s ease;position:absolute}.copy .ic-done{opacity:0;filter:blur(2px);color:var(--accent);transform:scale(.6)}.copy[data-done] .ic-copy{opacity:0;filter:blur(2px);transform:scale(.6)}.copy[data-done] .ic-done{opacity:1;filter:none;transform:none}.codecard pre{font-family:var(--mono);padding:14px 16px;font-size:12.5px;line-height:1.7;overflow-x:auto;background:0 0!important}.codecard pre code{font-family:inherit}.pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:72px;display:grid}.pager a{box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;transition:background-color .15s;display:block}.pager span{color:var(--faint);margin-bottom:2px;font-size:12px;display:block}.pager b{color:var(--strong);text-wrap:balance;font-size:14px;font-weight:500}.pager .next{text-align:right;grid-column:2}@media (hover:hover) and (pointer:fine){.toc a:hover{color:var(--muted)}.prose a:hover{text-decoration-color:var(--muted)}.copy:hover{color:var(--strong);background:var(--line)}.pager a:hover{background:var(--stage)}}@media (width<=640px){.facts,.facts.two{grid-template-columns:1fr 1fr}.facts div:nth-child(3){grid-column:span 2}.hero,.codecard{margin-inline:-12px}.pager{grid-template-columns:1fr}.pager .next{grid-column:1}}.plink{color:var(--strong);text-decoration:underline;text-decoration-color:var(--ul);text-underline-offset:3px;white-space:nowrap;align-items:baseline;gap:5px;font-weight:500;text-decoration-thickness:1px;transition:text-decoration-color .15s;display:inline-flex}.prose .plink{text-decoration-color:var(--ul)}.plink-ic{width:16px;height:16px;box-shadow:0 0 0 1px var(--thumb-edge);border-radius:4px;flex:none;align-self:center}.related{margin-top:56px}.related .sect{margin:0 0 12px}.related ul{grid-template-columns:minmax(0,1fr);margin:0 -10px;padding:0;list-style:none;display:grid}.related a{min-width:0;color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;line-height:1.5;text-decoration:none;transition:background-color .15s;display:flex;position:relative}.related b{color:var(--strong);flex:none;font-weight:500}.related span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rel-ic{width:20px;height:20px;box-shadow:0 0 0 1px var(--thumb-edge);background:var(--stage);border-radius:5px;flex:none}.rel-letter{color:var(--strong);place-items:center;font-size:11px;font-weight:600;display:grid}@media (hover:hover) and (pointer:fine){.plink:hover{text-decoration-color:var(--muted)}.related a:hover{background:var(--stage)}}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px;line-height:1.5}.prose>table{margin-block:28px}.prose>table+*{margin-top:0}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 14px 8px 0}.prose th:last-child,.prose td:last-child{padding-right:0}.prose th{color:var(--faint);padding-top:0;font-size:12px;font-weight:450}.prose td{color:var(--muted)}.prose td:first-child{color:var(--strong)}@media (width<=640px){.prose table{font-size:13px}.prose th,.prose td{padding-right:10px}}
