.nav[data-astro-cid-wpvy4v7s]{align-items:center;gap:.18rem;min-width:0;display:flex}.nav-link{min-height:38px;color:var(--text-soft);white-space:nowrap;letter-spacing:.01em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:.28rem;padding:.38rem .76rem;font-size:.82rem;font-weight:520;transition:color .18s,background-color .18s,border-color .18s;display:inline-flex}.nav-link:hover{color:var(--text);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 86%, transparent 14%), color-mix(in oklab, var(--brand-soft) 14%, transparent 86%));border-color:color-mix(in oklab, var(--line-strong) 72%, transparent 28%);box-shadow:none;transform:none}.nav-link.active{color:var(--text);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 90%, transparent 10%), color-mix(in oklab, var(--brand-soft) 18%, transparent 82%));border-color:color-mix(in oklab, var(--brand) 24%, var(--line) 76%);box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.08)}.nav-more[data-astro-cid-wpvy4v7s]{flex:none;position:relative}.nav-more-btn[data-astro-cid-wpvy4v7s]{user-select:none;list-style:none}.nav-more-btn[data-astro-cid-wpvy4v7s]::-webkit-details-marker{display:none}.nav-more-btn[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{transition:transform .16s}.nav-more[data-astro-cid-wpvy4v7s][open] .nav-more-btn[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{transform:rotate(180deg)}.nav-more-menu[data-astro-cid-wpvy4v7s]{z-index:80;border:1px solid var(--line);background:var(--bg-elev);min-width:148px;box-shadow:var(--card-shadow-strong);border-radius:14px;gap:2px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.nav-more-link[data-astro-cid-wpvy4v7s]{color:var(--text-soft);white-space:nowrap;border-radius:9px;padding:.46rem .72rem;font-size:.84rem;display:block}.nav-more-link[data-astro-cid-wpvy4v7s]:hover{color:var(--text);background:color-mix(in oklab, var(--brand-soft) 40%, transparent 60%)}.nav-more-link[data-astro-cid-wpvy4v7s].active{color:var(--brand);font-weight:600}.nav-inline-more[data-astro-cid-wpvy4v7s]{display:none}@media (width<=900px){.nav[data-astro-cid-wpvy4v7s]{scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;padding-bottom:.08rem;overflow:auto hidden}.nav[data-astro-cid-wpvy4v7s]::-webkit-scrollbar{display:none}.nav-more[data-astro-cid-wpvy4v7s]{display:none}.nav-inline-more[data-astro-cid-wpvy4v7s]{display:inline-flex}.nav-link{min-height:40px;padding:.46rem .82rem}}.theme-switcher[data-astro-cid-l6lhmie6]{border:1px solid color-mix(in oklab, var(--line) 84%, transparent 16%);background:linear-gradient(180deg, color-mix(in oklab, var(--bg-elev) 92%, transparent 8%), color-mix(in oklab, var(--surface-2) 82%, transparent 18%));isolation:isolate;border-radius:999px;grid-template-columns:repeat(2,1fr);align-items:center;width:72px;height:36px;padding:2px;transition:border-color .2s;display:grid;position:relative}.theme-switcher[data-astro-cid-l6lhmie6]:hover{border-color:color-mix(in oklab, var(--brand) 46%, var(--line) 54%)}.theme-thumb[data-astro-cid-l6lhmie6]{background:toggleThumbColor;border:1px solid color-mix(in oklab, var(--brand) 18%, var(--line) 82%);width:calc(50% - 2px);height:calc(100% - 4px);box-shadow:0 10px 24px -20px color-mix(in oklab, var(--brand) 48%, transparent 52%);transition:transform calc((animationMs * 1ms)) ease;z-index:0;border-radius:999px;position:absolute;top:2px;left:2px}.theme-switcher[data-astro-cid-l6lhmie6][data-active=dark] .theme-thumb[data-astro-cid-l6lhmie6]{transform:translate(100%)}.theme-option[data-astro-cid-l6lhmie6]{width:100%;height:30px;color:color-mix(in oklab, var(--text-muted) 90%, transparent 10%);cursor:pointer;z-index:1;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;transition:color .2s,transform .2s;display:inline-flex;position:relative}.theme-option[data-astro-cid-l6lhmie6]:hover{transform:translateY(-1px)}.theme-option[data-astro-cid-l6lhmie6][data-active="1"]{color:var(--text);text-shadow:0 0 12px color-mix(in oklab, var(--brand) 16%, transparent 84%)}.theme-option-light[data-astro-cid-l6lhmie6]{color:color-mix(in oklab, toggleLightColor 78%, var(--text-muted) 22%)}.theme-option-dark[data-astro-cid-l6lhmie6]{color:color-mix(in oklab, toggleDarkColor 78%, var(--text-muted) 22%)}.theme-switcher[data-astro-cid-l6lhmie6]:focus-within{outline:2px solid color-mix(in oklab, var(--brand) 52%, transparent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.theme-thumb[data-astro-cid-l6lhmie6],.theme-option[data-astro-cid-l6lhmie6]{transition:none}}.site-header[data-astro-cid-nen7h5rs]{z-index:60;backdrop-filter:blur(calc(var(--header-blur) + 4px));background:linear-gradient(180deg, color-mix(in oklab, var(--bg-elev) 84%, transparent 16%), color-mix(in oklab, var(--surface-1) 72%, transparent 28%));border-bottom:1px solid color-mix(in oklab, var(--line) 56%, transparent 44%);transition:background-color .2s,border-color .2s;position:fixed;top:0;left:0;right:0;box-shadow:0 18px 46px -42px #0f172a38}.header-inner[data-astro-cid-nen7h5rs]{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:68px;display:grid}.nav{min-width:0}.logo[data-astro-cid-nen7h5rs]{align-items:center;gap:.82rem;display:inline-flex}.logo-mark[data-astro-cid-nen7h5rs]{border:1px solid color-mix(in oklab, var(--line) 72%, transparent 28%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 96%, transparent 4%), color-mix(in oklab, var(--surface-2) 86%, transparent 14%));width:40px;height:40px;color:var(--text);font-family:var(--font-display);letter-spacing:0;border-radius:14px;place-items:center;font-size:.92rem;font-weight:700;display:inline-grid;box-shadow:0 12px 24px -22px #0f172a80}.logo-text[data-astro-cid-nen7h5rs]{font-family:var(--font-display);color:var(--text);letter-spacing:.01em;font-size:1.08rem;font-weight:700}.actions[data-astro-cid-nen7h5rs]{z-index:2;flex-wrap:nowrap;justify-self:end;align-items:center;gap:.5rem;display:inline-flex;position:relative}.icon-btn[data-astro-cid-nen7h5rs]{border:1px solid color-mix(in oklab, var(--line) 72%, transparent 28%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 88%, transparent 12%), color-mix(in oklab, var(--surface-1) 80%, transparent 20%));min-width:38px;height:38px;color:var(--text-soft);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;padding:0 .58rem;font-size:.875rem;transition:color .2s,border-color .2s,background-color .2s,transform .2s;display:inline-flex;box-shadow:0 16px 28px -26px #0f172a61}.icon-btn[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{display:block}.github-link[data-astro-cid-nen7h5rs]{display:inline-flex}.icon-btn[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 94%, transparent 6%), color-mix(in oklab, var(--brand-soft) 20%, transparent 80%));border-color:color-mix(in oklab, var(--brand) 18%, var(--line) 82%);transform:translateY(-1px)}@media (width<=1180px){.logo-text[data-astro-cid-nen7h5rs]{display:none}}@media (width<=1280px){.github-link[data-astro-cid-nen7h5rs]{display:none}}@media (width<=900px){.site-header[data-astro-cid-nen7h5rs]{backdrop-filter:blur(10px);background:color-mix(in oklab, var(--bg-elev) 88%, transparent 12%)}.header-inner[data-astro-cid-nen7h5rs]{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"logo actions""nav nav";gap:.75rem;padding:.75rem 0}.logo[data-astro-cid-nen7h5rs]{grid-area:logo}.nav{grid-area:nav}.actions[data-astro-cid-nen7h5rs]{grid-area:actions;justify-content:flex-end}}.search-modal[data-astro-cid-etsyzymg]{background:0 0;border:0;width:min(860px,100vw - 22px);padding:0}.search-modal[data-astro-cid-etsyzymg]::backdrop{backdrop-filter:blur(7px);background:#080a128c}.search-fallback[data-astro-cid-etsyzymg]{z-index:70;backdrop-filter:blur(7px);background:#080a128c;padding:6vh 12px 12px;display:none;position:fixed;inset:0}.search-fallback[data-astro-cid-etsyzymg].open{display:block}.search-panel[data-astro-cid-etsyzymg]{border:1px solid var(--line);background:radial-gradient(780px 220px at -10% -30%, color-mix(in oklab, var(--brand-soft) 66%, transparent 34%), transparent 72%), radial-gradient(540px 200px at 110% 0%, color-mix(in oklab, var(--accent) 20%, transparent 80%), transparent 74%), var(--bg-elev);border-radius:20px;flex-direction:column;gap:.7rem;padding:1rem 1rem .75rem;display:flex;box-shadow:0 24px 56px -20px #00000073}.search-head[data-astro-cid-etsyzymg]{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.2rem .15rem 0;display:flex}.search-head[data-astro-cid-etsyzymg]>div[data-astro-cid-etsyzymg]{gap:.25rem;display:grid}.search-head[data-astro-cid-etsyzymg] h2[data-astro-cid-etsyzymg]{font-size:1.08rem;font-family:var(--font-sans);letter-spacing:.01em;margin:0}.search-head[data-astro-cid-etsyzymg] p[data-astro-cid-etsyzymg]{color:var(--text-soft);margin:0;font-size:.82rem}.search-input-wrap[data-astro-cid-etsyzymg]{border:1px solid var(--line);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);border-radius:12px;align-items:center;gap:.4rem;padding:.36rem .5rem .36rem .65rem;transition:border-color .16s,box-shadow .16s;display:flex}.search-input-wrap[data-astro-cid-etsyzymg]:focus-within{border-color:color-mix(in oklab, var(--brand) 58%, var(--line) 42%);box-shadow:0 0 0 3px color-mix(in oklab, var(--brand-soft) 50%, transparent 50%)}.search-icon[data-astro-cid-etsyzymg]{color:var(--text-soft);justify-content:center;align-items:center;display:inline-flex;transform:translateY(-1px)}.search-input-wrap[data-astro-cid-etsyzymg] input[data-astro-cid-etsyzymg]{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:.46rem .55rem;font-size:1rem}.search-input-wrap[data-astro-cid-etsyzymg] input[data-astro-cid-etsyzymg]::placeholder{color:color-mix(in oklab, var(--text-soft) 60%, transparent 40%)}.search-results[data-astro-cid-etsyzymg]{gap:.75rem;max-height:min(60vh,520px);margin:0;padding:0 .05rem;list-style:none;display:grid;overflow:auto}.search-close[data-astro-cid-etsyzymg]{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-2) 86%, transparent 14%);width:36px;height:36px;color:var(--text-soft);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;margin-top:-.1rem;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}.search-close[data-astro-cid-etsyzymg]:hover{color:var(--text);border-color:var(--line-strong);background:var(--surface-2)}.result-group-title[data-astro-cid-etsyzymg]{letter-spacing:.03em;text-transform:uppercase;color:var(--text-soft);border-top:1px dashed var(--line);margin:.4rem 0 .2rem;padding:.24rem .45rem;font-size:.76rem}.result-item[data-astro-cid-etsyzymg]{border:1px solid color-mix(in oklab, var(--line) 78%, transparent 22%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 94%, transparent 6%), color-mix(in oklab, var(--surface-2) 96%, transparent 4%));box-shadow:0 10px 22px -20px color-mix(in oklab, var(--text) 32%, transparent 68%);border-radius:14px;transition:border-color .14s,box-shadow .14s,transform .14s}.result-item[data-astro-cid-etsyzymg] a[data-astro-cid-etsyzymg]{color:inherit;gap:.4rem;padding:.84rem .96rem;text-decoration:none;display:grid}.result-title-row[data-astro-cid-etsyzymg]{align-items:baseline;gap:.45rem;display:flex}.result-item[data-astro-cid-etsyzymg] .result-meta[data-astro-cid-etsyzymg]{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;font-size:.76rem;display:flex}.result-item[data-astro-cid-etsyzymg] .result-domain[data-astro-cid-etsyzymg]{color:color-mix(in oklab, var(--text) 70%, var(--text-soft) 30%);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;font-weight:600}.result-path[data-astro-cid-etsyzymg]{text-overflow:ellipsis;white-space:nowrap;border-left:1px solid color-mix(in oklab, var(--line) 84%, transparent 16%);min-width:0;padding-left:.55rem;overflow:hidden}.result-item[data-astro-cid-etsyzymg] h4[data-astro-cid-etsyzymg]{color:var(--text);margin:0;font-size:1rem;font-weight:600}.result-snippet[data-astro-cid-etsyzymg]{color:var(--text-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.05rem 0 0;font-size:.82rem;line-height:1.44;display:-webkit-box;overflow:hidden}.result-item[data-astro-cid-etsyzymg] mark{background:color-mix(in oklab, var(--brand) 24%, #ffd76c 24%);color:color-mix(in oklab, var(--text) 74%, var(--brand) 26%);border-radius:3px;padding:0 3px;font-weight:600}.result-item[data-astro-cid-etsyzymg].active{background:linear-gradient(180deg, color-mix(in oklab, var(--brand-soft) 60%, transparent 40%), color-mix(in oklab, var(--surface-2) 92%, transparent 8%));border-color:color-mix(in oklab, var(--brand) 34%, var(--line) 66%);box-shadow:0 16px 30px -20px color-mix(in oklab, var(--brand) 26%, transparent 74%);transform:translateY(-2px)}.result-item[data-astro-cid-etsyzymg].active h4[data-astro-cid-etsyzymg]{color:color-mix(in oklab, var(--text) 72%, var(--brand) 28%)}.result-empty[data-astro-cid-etsyzymg]{color:var(--text-soft);text-align:center;padding:2rem .8rem;font-size:.9rem;list-style:none}.search-footer[data-astro-cid-etsyzymg]{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.9rem;margin-top:.3rem;padding-top:.68rem;display:flex}.search-count[data-astro-cid-etsyzymg]{color:var(--text-soft);margin-right:auto;font-size:.76rem}.search-shortcut[data-astro-cid-etsyzymg]{color:var(--text-soft);align-items:center;gap:.35rem;font-size:.75rem;display:flex}.kbd-key[data-astro-cid-etsyzymg]{background:var(--bg);border:1px solid var(--line);min-width:19px;height:19px;font-family:var(--font-mono);border-radius:4px;justify-content:center;align-items:center;padding:0 .25rem;font-size:.7rem;display:inline-flex;box-shadow:0 1px 1px #0000000d}@media (width<=760px){.search-modal[data-astro-cid-etsyzymg]::backdrop,.search-fallback[data-astro-cid-etsyzymg]{backdrop-filter:none}.search-panel[data-astro-cid-etsyzymg]{background:var(--bg-elev);border-radius:14px;padding:.8rem .7rem .62rem}.search-results[data-astro-cid-etsyzymg]{max-height:56vh}}.watermark[data-astro-cid-hnsgxr6q]{pointer-events:none;z-index:1;opacity:var(--wm-opacity);position:absolute;inset:0;overflow:hidden}.watermark-global[data-astro-cid-hnsgxr6q]{z-index:5;position:fixed}.watermark-hero[data-astro-cid-hnsgxr6q]{border-radius:inherit}.watermark[data-astro-cid-hnsgxr6q][data-center-readable="1"]{mask-image:radial-gradient(circle,#0000 0 42%,#000 70% 100%)}.mark[data-astro-cid-hnsgxr6q]{transform:rotate(var(--wm-rotate));font-size:var(--wm-font-size);color:color-mix(in oklab, var(--text-soft) 36%, transparent 64%);letter-spacing:.22rem;user-select:none;white-space:nowrap;font-weight:620;position:absolute}.mark-tl[data-astro-cid-hnsgxr6q]{top:9%;left:3.2%}.mark-tr[data-astro-cid-hnsgxr6q]{top:9%;right:3.2%}.mark-bl[data-astro-cid-hnsgxr6q]{bottom:9%;left:3.2%}.mark-br[data-astro-cid-hnsgxr6q]{bottom:9%;right:3.2%}@media (width<=900px){.mark[data-astro-cid-hnsgxr6q]{letter-spacing:.2rem;font-size:clamp(1.2rem,4vw,2rem)}}.jarvis-bot[data-astro-cid-moffcl7c]{bottom:calc(var(--bot-offset-y) + env(safe-area-inset-bottom) + var(--floating-safe-bottom,0px));z-index:81;justify-items:center;gap:.3rem;width:80px;display:grid;position:fixed}.jarvis-bot-trigger[data-astro-cid-moffcl7c]{zoom:.7}.jarvis-bot[data-astro-cid-moffcl7c].is-left{left:var(--bot-offset-x)}.jarvis-bot[data-astro-cid-moffcl7c].is-right{right:var(--bot-offset-x)}.jarvis-bot-trigger[data-astro-cid-moffcl7c]{cursor:pointer;background:0 0;border:0;justify-items:center;width:100%;padding:0;display:grid}.bot-core[data-astro-cid-moffcl7c]{width:90px;height:108px;filter:drop-shadow(0 14px 20px color-mix(in oklab, var(--brand) 35%, transparent 65%));position:relative}.bot-shell[data-astro-cid-moffcl7c]{z-index:2;border:2px solid color-mix(in oklab, var(--line) 64%, var(--brand) 36%);background:linear-gradient(165deg, color-mix(in oklab, var(--surface-1) 92%, transparent 8%), color-mix(in oklab, var(--surface-2) 82%, transparent 18%));border-radius:24px;position:absolute;inset:10px 10px 0}.bot-pack[data-astro-cid-moffcl7c]{z-index:0;border:2px solid color-mix(in oklab, var(--line) 74%, var(--brand) 26%);border-radius:14px;width:30px;height:58px;position:absolute;top:22px;left:50%;transform:translate(-50%)}.bot-pack[data-astro-cid-moffcl7c]:before{content:"";background:oklab(84.7837% -.0855907 -.0525122);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:50%;transform:translate(-50%);box-shadow:0 0 8px oklab(79.7116% -.114121 -.0700163/.52)}.bot-arm[data-astro-cid-moffcl7c]{z-index:4;width:32px;height:12px;position:absolute;top:46px}.bot-arm-left[data-astro-cid-moffcl7c]{transform-origin:32px 6px;left:-18px;transform:rotate(-32deg)}.bot-arm-right[data-astro-cid-moffcl7c]{transform-origin:0 6px;right:-18px;transform:rotate(32deg)}.bot-arm-segment[data-astro-cid-moffcl7c]{background:color-mix(in oklab, var(--line) 36%, var(--brand) 64%);border-radius:999px;width:21px;height:4px;position:absolute;top:4px}.bot-arm-left[data-astro-cid-moffcl7c] .bot-arm-segment[data-astro-cid-moffcl7c]{left:4px}.bot-arm-right[data-astro-cid-moffcl7c] .bot-arm-segment[data-astro-cid-moffcl7c]{right:4px}.bot-hand[data-astro-cid-moffcl7c]{border:1px solid color-mix(in oklab, var(--line) 62%, var(--brand) 38%);background:color-mix(in oklab, var(--surface-1) 88%, var(--brand-soft) 12%);border-radius:50%;width:8px;height:8px;position:absolute;top:1px}.bot-arm-left[data-astro-cid-moffcl7c] .bot-hand[data-astro-cid-moffcl7c]{left:-5px}.bot-arm-right[data-astro-cid-moffcl7c] .bot-hand[data-astro-cid-moffcl7c]{right:-5px}.bot-screen[data-astro-cid-moffcl7c]{border:1px solid color-mix(in oklab, var(--brand) 46%, var(--line) 54%);background:linear-gradient(oklab(23.6454% -.0325585 -.0226216/.92),oklab(16.4648% -.0216451 -.0166962/.94));border-radius:11px;width:62px;height:42px;position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%)}.screen-grid[data-astro-cid-moffcl7c]{opacity:.42;background-color:#0000;background-image:linear-gradient(90deg,oklab(79.7116% -.114121 -.0700163/.12) 1px,#0000 1px),linear-gradient(oklab(79.7116% -.114121 -.0700163/.12) 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:8px 8px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.screen-scan[data-astro-cid-moffcl7c]{opacity:0;background:linear-gradient(90deg,#0000,oklab(86.5073% -.102704 -.0525057/.35),#0000);width:40%;height:100%;position:absolute;top:0;left:-60%}.bot-eyes[data-astro-cid-moffcl7c]{z-index:1;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{background:#67e8f9;border-radius:9px;width:11px;height:8px;transition:all .18s;display:block;box-shadow:0 0 7px oklab(79.7116% -.114121 -.0700163/.64)}.eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]:before,.eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]:after{content:none}.screen-icon[data-astro-cid-moffcl7c]{letter-spacing:.1em;color:oklab(90.5551% -.0718925 -.036754);opacity:.74;font-size:.5rem;font-family:var(--font-tech);position:absolute;bottom:4px;right:6px}.bot-chest-strip[data-astro-cid-moffcl7c]{background:linear-gradient(90deg, oklab(88.936% -.0842169 -.0430547), color-mix(in oklab, var(--brand) 72%, #fff 28%));border-radius:999px;width:36px;height:6px;animation:2.5s ease-in-out infinite bot-breathe;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=dot] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{border-radius:50%;width:10px;height:10px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=arc] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{width:12px;height:7px;box-shadow:none;background:0 0;border:2px solid #67e8f9;border-top:0;border-radius:0 0 9px 9px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=cross] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c],.jarvis-bot[data-astro-cid-moffcl7c][data-expression=heart] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c],.jarvis-bot[data-astro-cid-moffcl7c][data-expression=surprised] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{border-radius:50%;width:12px;height:12px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=cross] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{box-shadow:none;background:0 0;border:2px solid #67e8f9}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=heart] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{background:linear-gradient(#fb7185,#f43f5e);border-radius:3px;transform:rotate(45deg)}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=wink] .eye[data-astro-cid-moffcl7c]:first-child i[data-astro-cid-moffcl7c],.jarvis-bot[data-astro-cid-moffcl7c][data-expression=sleepy] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{border-radius:999px;width:12px;height:2px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=focus] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c],.jarvis-bot[data-astro-cid-moffcl7c][data-expression=loading] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{border-radius:999px;width:12px;height:3px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=loading] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{animation:1s linear infinite bot-loading-eye}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=angry] .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{border-radius:3px;width:12px;height:3px}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=angry] .eye[data-astro-cid-moffcl7c]:first-child i[data-astro-cid-moffcl7c]{transform:rotate(-18deg)}.jarvis-bot[data-astro-cid-moffcl7c][data-expression=angry] .eye[data-astro-cid-moffcl7c]:last-child i[data-astro-cid-moffcl7c]{transform:rotate(18deg)}.jarvis-bot[data-astro-cid-moffcl7c].is-blink .eye[data-astro-cid-moffcl7c] i[data-astro-cid-moffcl7c]{transform:scaleY(.22)}.jarvis-bot[data-astro-cid-moffcl7c].is-waving .bot-arm-primary[data-astro-cid-moffcl7c]{animation:1s bot-wave}.jarvis-bot[data-astro-cid-moffcl7c].is-nodding .bot-core[data-astro-cid-moffcl7c]{animation:.76s bot-nod}.jarvis-bot[data-astro-cid-moffcl7c].is-shaking .bot-core[data-astro-cid-moffcl7c]{animation:.7s bot-shake}.jarvis-bot[data-astro-cid-moffcl7c].is-pulsing .bot-core[data-astro-cid-moffcl7c]{animation:.8s bot-pulse}.jarvis-bot[data-astro-cid-moffcl7c].is-scanning .screen-scan[data-astro-cid-moffcl7c]{opacity:1;animation:.98s bot-scan}.jarvis-bot[data-astro-cid-moffcl7c].is-music-on .bot-core[data-astro-cid-moffcl7c]{animation:1.2s ease-in-out infinite bot-bob}.bot-label[data-astro-cid-moffcl7c],.bot-status[data-astro-cid-moffcl7c]{pointer-events:none;text-align:center;white-space:nowrap;margin:0;display:none}.bot-label[data-astro-cid-moffcl7c]{letter-spacing:.16em;color:color-mix(in oklab, var(--text-soft) 72%, var(--brand) 28%);font-size:.62rem;font-weight:700}.bot-status[data-astro-cid-moffcl7c]{color:var(--text-muted);letter-spacing:.02em;text-overflow:ellipsis;max-width:12rem;font-size:.58rem;overflow:hidden}.jarvis-bot[data-astro-cid-moffcl7c].is-active .bot-status[data-astro-cid-moffcl7c]{color:color-mix(in oklab, var(--brand) 78%, var(--text) 22%)}.jarvis-bot-menu[data-astro-cid-moffcl7c]{border:1px solid color-mix(in oklab, var(--line) 56%, var(--brand) 44%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 96%, transparent 4%), color-mix(in oklab, var(--bg-elev) 96%, transparent 4%));backdrop-filter:blur(12px);z-index:93;border-radius:14px;width:min(290px,100vw - 20px);max-height:min(68vh,460px);padding:.5rem;position:fixed;overflow:auto}.menu-title[data-astro-cid-moffcl7c]{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;margin:.38rem .22rem .18rem;font-size:.62rem}.menu-item[data-astro-cid-moffcl7c]{border:1px solid color-mix(in oklab, var(--line) 84%, transparent 16%);background:color-mix(in oklab, var(--bg) 90%, transparent 10%);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:.55rem;padding:.45rem .52rem;font-size:.82rem;display:flex}.menu-item[data-astro-cid-moffcl7c]:hover{border-color:color-mix(in oklab, var(--brand) 56%, var(--line) 44%);background:color-mix(in oklab, var(--brand-soft) 68%, transparent 32%)}.menu-item[data-astro-cid-moffcl7c].is-disabled{opacity:.5;cursor:not-allowed}@keyframes bot-wave{0%{transform:rotate(-32deg)}20%{transform:rotate(-6deg)}40%{transform:rotate(-50deg)}60%{transform:rotate(14deg)}80%{transform:rotate(-36deg)}to{transform:rotate(-32deg)}}@keyframes bot-nod{0%{transform:translateY(0)}40%{transform:translateY(2px)}to{transform:translateY(0)}}@keyframes bot-shake{0%{transform:translate(0)}25%{transform:translate(-2px)}50%{transform:translate(2px)}75%{transform:translate(-2px)}to{transform:translate(0)}}@keyframes bot-pulse{0%{transform:scale(1)}45%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes bot-scan{0%{transform:translate(0%)}to{transform:translate(320%)}}@keyframes bot-loading-eye{0%{opacity:.35;transform:scaleX(.7)}50%{opacity:1;transform:scaleX(1)}to{opacity:.35;transform:scaleX(.7)}}@keyframes bot-breathe{0%{opacity:.42}50%{opacity:.92}to{opacity:.42}}@keyframes bot-bob{0%{transform:translateY(0)}50%{transform:translateY(-3px)}to{transform:translateY(0)}}:root[data-perf=low] .jarvis-bot[data-astro-cid-moffcl7c]{display:none!important}:root[data-perf=low] .jarvis-bot[data-astro-cid-moffcl7c] .bot-chest-strip[data-astro-cid-moffcl7c]{animation-duration:4s}:root[data-perf=low] .jarvis-bot[data-astro-cid-moffcl7c].is-music-on .bot-core[data-astro-cid-moffcl7c]{animation-duration:2.4s}:root[data-perf=low] .jarvis-bot[data-astro-cid-moffcl7c] .screen-scan[data-astro-cid-moffcl7c]{animation-duration:1.4s}@media (width<=960px){.jarvis-bot[data-astro-cid-moffcl7c]{width:72px}.bot-core[data-astro-cid-moffcl7c]{width:82px;height:98px}}@media (width<=900px){.jarvis-bot[data-astro-cid-moffcl7c]{display:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root[data-theme=aurora-light]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Songti SC", "STSong", serif;--font-display:"Press Start 2P", "Chakra Petch", "Microsoft YaHei", sans-serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#f5f7ff;--bg-elev:#fdfdff;--bg-mesh-a:oklab(82.7586% -.0646681 -.0779426/.14);--bg-mesh-b:oklab(75.3513% -.0842999 -.110505/.12);--text:#0a1022;--text-soft:#334155;--text-muted:#5b6b84;--line:#c4d2ea;--line-soft:#d8e2f3;--line-strong:#9eb2d4;--surface-1:#fefeff;--surface-2:#f4f8ff;--brand:#0ea5e9;--brand-soft:#d9f2ff;--accent:#22c55e;--code-bg:#edf6ff;--code-border:#c8d9ee;--card-shadow:0 10px 22px -16px #0e1e4238;--card-shadow-strong:0 20px 40px -24px #0e1e424d;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-pill:4px;--radius:var(--radius-md);--header-blur:6px}:root[data-theme=aurora-dark]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Songti SC", "STSong", serif;--font-display:"Press Start 2P", "Chakra Petch", "Microsoft YaHei", sans-serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#07121f;--bg-elev:#0d1a2a;--bg-mesh-a:oklab(68.4687% -.0798356 -.124464/.15);--bg-mesh-b:oklab(79.7116% -.114121 -.0700163/.12);--text:#d8ebff;--text-soft:#97b3d3;--text-muted:#7f98b4;--line:#2b4b6d;--line-soft:#345675;--line-strong:#4e7396;--surface-1:#0f2034;--surface-2:#142940;--brand:#38bdf8;--brand-soft:#173654;--accent:#2dd4bf;--code-bg:#0e253c;--code-border:#3b6287;--card-shadow:0 12px 26px -16px #02091380;--card-shadow-strong:0 24px 48px -22px #02091399;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-pill:4px;--radius:var(--radius-md);--header-blur:8px}:root[data-theme=oceanic-light]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#f3f8fd;--bg-elev:#fdfefe;--bg-mesh-a:oklab(82.7586% -.0646681 -.0779426/.18);--bg-mesh-b:oklab(71.374% -.0380177 -.138249/.14);--text:#0d2037;--text-soft:#435f82;--text-muted:#5f7998;--line:#c8d9eb;--line-soft:#d9e6f4;--line-strong:#adc3dc;--surface-1:#fff;--surface-2:#f3f9ff;--brand:#0b7fc2;--brand-soft:#deeffd;--accent:#0ea5a8;--code-bg:#f4f9ff;--code-border:#c4d7ec;--card-shadow:0 16px 30px -26px #0527483d;--card-shadow-strong:0 28px 46px -32px #0527484d;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:10px}:root[data-theme=oceanic-dark]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#081426;--bg-elev:#0f1f34;--bg-mesh-a:oklab(75.3513% -.0842999 -.110505/.17);--bg-mesh-b:oklab(79.7116% -.114121 -.0700163/.14);--text:#dceeff;--text-soft:#9db7d6;--text-muted:#83a0bf;--line:#2f4f73;--line-soft:#395b81;--line-strong:#50789f;--surface-1:#10253c;--surface-2:#162f49;--brand:#41b7ef;--brand-soft:#16324c;--accent:#2dd4bf;--code-bg:#10253c;--code-border:#3f648b;--card-shadow:0 18px 36px -22px #0107118a;--card-shadow-strong:0 30px 56px -24px #0107119e;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:12px}:root[data-theme=ember-light]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#fff7ef;--bg-elev:#fffdf9;--bg-mesh-a:oklab(83.6575% .0468621 .106702/.2);--bg-mesh-b:oklab(71.9186% .164364 .0392419/.14);--text:#392114;--text-soft:#7b5445;--text-muted:#936a5b;--line:#edcfbb;--line-soft:#f2dfd1;--line-strong:#ddb49d;--surface-1:#fffdfa;--surface-2:#fff6ef;--brand:#cc4f1c;--brand-soft:#ffe9dd;--accent:#ef7f35;--code-bg:#fff8f2;--code-border:#ebc9b1;--card-shadow:0 18px 34px -28px #80381438;--card-shadow-strong:0 30px 50px -30px #8038144d;--radius-sm:5px;--radius-md:9px;--radius-lg:18px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:10px}:root[data-theme=ember-dark]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-tech:"Share Tech Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#15100f;--bg-elev:#1f1715;--bg-mesh-a:oklab(75.764% .0890835 .131746/.17);--bg-mesh-b:oklab(64.5032% .206597 .060959/.12);--text:#f7e8dd;--text-soft:#d3b19d;--text-muted:#be9a86;--line:#5a3c2e;--line-soft:#674635;--line-strong:#815a46;--surface-1:#241915;--surface-2:#2b1f1a;--brand:#ff8a4c;--brand-soft:#42271c;--accent:#fda172;--code-bg:#281a15;--code-border:#7a533f;--card-shadow:0 18px 36px -22px #0a060599;--card-shadow-strong:0 30px 54px -24px #0a0605ad;--radius-sm:5px;--radius-md:9px;--radius-lg:18px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:11px}:root[data-theme=mono-light]{--font-sans:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-display:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-tech:"IBM Plex Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#f5f7fa;--bg-elev:#fff;--bg-mesh-a:oklab(65.5758% -.0228181 -.0731316/.06);--bg-mesh-b:oklab(71.9008% -.0977072 -.0249419/.04);--text:#17212d;--text-soft:#4b5a6b;--text-muted:#75859a;--line:#dde4ec;--line-soft:#e7edf3;--line-strong:#c3cfdd;--surface-1:#fff;--surface-2:#f8fafc;--brand:#5c93d2;--brand-soft:#dbe7f6;--accent:#4cb8bf;--code-bg:#e8eef5;--code-border:#cdd7e2;--card-shadow:0 20px 42px -34px #1a2b4224;--card-shadow-strong:0 26px 56px -36px #1a2b422e;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:14px}:root[data-theme=mono-dark]{--font-sans:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-display:"Manrope", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-tech:"IBM Plex Mono", "Cascadia Code", "JetBrains Mono", monospace;--bg:#101822;--bg-elev:#15202b;--bg-mesh-a:oklab(57.4781% -.0315283 -.0775668/.08);--bg-mesh-b:oklab(71.4236% -.105734 -.022333/.05);--text:#d2dce7;--text-soft:#9cadc0;--text-muted:#708194;--line:#273544;--line-soft:#304355;--line-strong:#40566e;--surface-1:#16212c;--surface-2:#1b2836;--brand:#77a8df;--brand-soft:#183248;--accent:#53c1c4;--code-bg:#18232f;--code-border:#314558;--card-shadow:0 24px 54px -36px #00000075;--card-shadow-strong:0 30px 68px -38px #0000008f;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--radius-pill:999px;--radius:var(--radius-md);--header-blur:16px}:root[data-theme=nature-light]{--font-sans:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-tech:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--bg:#fcfbf8;--bg-elev:#fffefc;--bg-mesh-a:oklab(92.2197% -.00814563 -.0179979/.1);--bg-mesh-b:oklab(86.5526% .00193188 .0204059/.08);--text:#25221c;--text-soft:#4c4740;--text-muted:#6a635a;--line:#d7d1c6;--line-soft:#e5dfd5;--line-strong:#c4bbac;--surface-1:#fffefc;--surface-2:#f8f5ef;--brand:#3a5a83;--brand-soft:#e6edf5;--accent:#6d5a3d;--code-bg:#f5f3ee;--code-border:#d6d0c4;--card-shadow:0 10px 20px -18px #2f2a213d;--card-shadow-strong:0 16px 28px -20px #2f2a2152;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:4px;--radius:var(--radius-md);--header-blur:4px}:root[data-theme=nature-dark]{--font-sans:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--font-tech:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--bg:#161412;--bg-elev:#1f1c18;--bg-mesh-a:oklab(49.4706% -.00350034 -.0292403/.1);--bg-mesh-b:oklab(48.1766% .0117403 .0325365/.08);--text:#ece7df;--text-soft:#c3b9ab;--text-muted:#a89e90;--line:#4e463c;--line-soft:#5a5248;--line-strong:#706556;--surface-1:#221f1a;--surface-2:#2a251f;--brand:#8ba6c7;--brand-soft:#2c3643;--accent:#b49a78;--code-bg:#26231e;--code-border:#5d5448;--card-shadow:0 12px 24px -14px #0403028f;--card-shadow-strong:0 18px 34px -14px #040302a3;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:4px;--radius:var(--radius-md);--header-blur:5px}:root[data-theme=game-pixel-light]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-display:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-tech:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--bg:#eef5d9;--bg-elev:#f6fbe9;--bg-mesh-a:oklab(82.5656% -.0942354 .103281/.18);--bg-mesh-b:oklab(73.6017% -.109287 .0960814/.14);--text:#1f2b18;--text-soft:#3c5a34;--text-muted:#55714d;--line:#7fa16f;--line-soft:#9fbe8f;--line-strong:#65885a;--surface-1:#f6fbe9;--surface-2:#e4efcf;--brand:#2b7d3f;--brand-soft:#d9ebbf;--accent:#bc6f3a;--code-bg:#e3eccf;--code-border:#7f9d6d;--card-shadow:0 8px 0 0 #5c824a57;--card-shadow-strong:0 10px 0 0 #496f3985;--radius-sm:2px;--radius-md:2px;--radius-lg:4px;--radius-pill:2px;--radius:var(--radius-md);--header-blur:0px}:root[data-theme=game-pixel-dark]{--font-sans:"Chakra Petch", "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--font-serif:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-display:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-tech:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--bg:#131a22;--bg-elev:#1b2430;--bg-mesh-a:oklab(76.2395% -.144463 .0544292/.16);--bg-mesh-b:oklab(70.2834% -.0666061 -.151451/.12);--text:#d6f5d9;--text-soft:#9ad8a4;--text-muted:#7fb58a;--line:#2f6f53;--line-soft:#3c8663;--line-strong:#4fa176;--surface-1:#1a2631;--surface-2:#203243;--brand:#3dd17a;--brand-soft:#22493a;--accent:#2fb3ff;--code-bg:#1b2c3a;--code-border:#356d7f;--card-shadow:0 8px 0 0 #102724a3;--card-shadow-strong:0 10px 0 0 #0b1d1cc2;--radius-sm:2px;--radius-md:2px;--radius-lg:4px;--radius-pill:2px;--radius:var(--radius-md);--header-blur:0px}:root{--reading-paper-bg:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 98%, transparent 2%), color-mix(in oklab, var(--surface-2) 95%, transparent 5%));--reading-paper-bg-strong:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 96%, transparent 4%), color-mix(in oklab, var(--surface-2) 92%, transparent 8%));--reading-panel-bg:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 95%, transparent 5%), color-mix(in oklab, var(--surface-2) 91%, transparent 9%));--reading-line:color-mix(in oklab, var(--line) 74%, white 26%);--reading-line-soft:color-mix(in oklab, var(--line-soft) 68%, transparent 32%);--reading-strong-line:color-mix(in oklab, var(--brand) 16%, var(--line) 84%);--reading-shadow:0 30px 80px -56px #0f172a6b;--reading-shadow-soft:0 20px 48px -38px #0f172a42;--reading-kicker:color-mix(in oklab, var(--text-muted) 74%, var(--brand) 26%)}.reading-page{isolation:isolate;--reading-title-max-width:min(100%, 28ch);--reading-summary-max-width:min(100%, 66ch);--reading-body-block-max-width:min(100%, 76ch);--reading-heading-max-width:min(100%, 34ch);--reading-rule-max-width:min(100%, 76ch);position:relative}.reading-page:before,.reading-page:after{content:"";pointer-events:none;z-index:-1;position:absolute}:root:lang(zh) .reading-page,:root:lang(ja) .reading-page,:root:lang(ko) .reading-page{--reading-title-max-width:min(100%, 46rem);--reading-summary-max-width:min(100%, 50rem);--reading-body-block-max-width:min(100%, 54rem);--reading-heading-max-width:min(100%, 48rem);--reading-rule-max-width:min(100%, 54rem)}.reading-page:before{background:radial-gradient(circle, color-mix(in oklab, var(--brand-soft) 82%, transparent 18%) 0, transparent 70%);opacity:.48;filter:blur(12px);border-radius:999px;width:min(30vw,360px);height:min(24vw,240px);inset:-1.5rem auto auto 8%}.reading-page:after{background:radial-gradient(circle, color-mix(in oklab, var(--accent) 12%, transparent 88%) 0, transparent 72%);opacity:.28;filter:blur(20px);border-radius:999px;width:min(36vw,460px);height:min(22vw,220px);inset:24rem 6% auto auto}.reading-page .reading-panel{border:1px solid var(--reading-line);background:var(--reading-panel-bg);box-shadow:var(--reading-shadow-soft);backdrop-filter:blur(10px);border-radius:24px;position:relative}.reading-page .reading-sheet{border:1px solid var(--reading-strong-line);background:linear-gradient(120deg, color-mix(in oklab, var(--brand-soft) 34%, transparent 66%) 0, transparent 28%), linear-gradient(180deg, oklab(100% 0 5.96046e-8/.68), transparent 20%), repeating-linear-gradient(0deg, color-mix(in oklab, var(--line) 4%, transparent 96%) 0, color-mix(in oklab, var(--line) 4%, transparent 96%) 1px, transparent 1px, transparent 32px), var(--reading-paper-bg);box-shadow:var(--reading-shadow);border-radius:32px;position:relative;overflow:clip}.reading-page .reading-head{border-bottom:1px solid var(--reading-line-soft);gap:.95rem;padding-bottom:1.35rem;display:grid;position:relative}.reading-page .reading-breadcrumb{font-family:var(--font-tech);letter-spacing:.08em;color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;font-size:.72rem;display:flex}.reading-page .reading-breadcrumb a{color:var(--text-soft)}.reading-page .reading-breadcrumb a:hover{color:var(--brand)}.reading-page .reading-kicker{font-family:var(--font-tech);letter-spacing:.18em;text-transform:uppercase;color:var(--reading-kicker);margin:0;font-size:.72rem;font-weight:700}.reading-page .reading-title{max-width:var(--reading-title-max-width);font-family:var(--font-display);letter-spacing:0;text-wrap:pretty;margin:0;font-size:clamp(1.96rem,2.3vw + 1rem,3.18rem);font-weight:700;line-height:1.08}.reading-page .reading-summary{max-width:var(--reading-summary-max-width);font-family:var(--font-sans);color:var(--text-soft);margin:0;font-size:clamp(.96rem,.22vw + .94rem,1.04rem);line-height:1.76}.reading-page .reading-meta-strip{border-top:1px solid var(--reading-line-soft);gap:.65rem;padding-top:.95rem;display:grid}.reading-page .reading-meta-row,.reading-page .reading-tag-row{flex-wrap:wrap;align-items:center;gap:.48rem;display:flex}.reading-page .chip,.reading-page .tag-badge,.reading-page .meta-chip{border:1px solid color-mix(in oklab, var(--brand) 14%, var(--line) 86%);background:color-mix(in oklab, var(--surface-1) 84%, transparent 16%);color:var(--text-soft);border-radius:999px;box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.22)}.reading-page .tag-badge:hover,.reading-page .chip:hover{border-color:color-mix(in oklab, var(--brand) 28%, var(--line) 72%);background:color-mix(in oklab, var(--brand-soft) 52%, var(--surface-1) 48%)}.reading-page .reading-back-link{border:1px solid color-mix(in oklab, var(--line) 80%, transparent 20%);background:color-mix(in oklab, var(--surface-1) 88%, transparent 12%);color:var(--text-soft);border-radius:999px;box-shadow:0 16px 30px -28px #0f172a57}.reading-page .reading-back-link:hover{color:var(--text);border-color:color-mix(in oklab, var(--brand) 28%, var(--line) 72%);background:color-mix(in oklab, var(--brand-soft) 42%, var(--surface-1) 58%)}.reading-page .post-hero-image,.reading-page .reading-hero-image{border:1px solid color-mix(in oklab, var(--line) 72%, transparent 28%);border-radius:24px;overflow:clip;box-shadow:0 24px 60px -52px #0f172a70}.reading-page .reading-body.article-body{min-width:0;max-width:100%;font-family:var(--font-serif);letter-spacing:.002em;color:var(--text);padding:.15rem 0 1.25rem;font-size:clamp(.96rem,.18vw + .94rem,1.04rem);line-height:1.84}.reading-page .reading-body>*{max-width:var(--reading-body-block-max-width)}.reading-page .reading-body>:is(pre,.diagram-wrapper,.md-tabs,.md-code-group,.md-demo,.md-chartjs,.mdx-admonition,.md-steps,.code-block-wrapper,.expressive-code,table,figure){max-width:100%}.reading-page .reading-body :where(h1,h2,h3,h4){max-width:var(--reading-heading-max-width);font-family:var(--font-display);letter-spacing:0;text-wrap:pretty;color:var(--text);margin-bottom:.8rem;line-height:1.18}.reading-page .reading-body h2{border-top:1px solid var(--reading-line-soft);margin-top:3rem;padding-top:1.3rem;font-size:clamp(1.42rem,.72vw + 1.14rem,1.88rem)}.reading-page .reading-body h3{margin-top:1.9rem;font-size:clamp(1.14rem,.42vw + .98rem,1.36rem)}.reading-page .reading-body h4{margin-top:1.4rem;font-size:1rem}.reading-page .reading-body :where(p,ul,ol,blockquote,dl){max-width:var(--reading-body-block-max-width)}.reading-page .reading-body p{color:color-mix(in oklab, var(--text) 96%, transparent 4%)}.reading-page .reading-body :where(strong,b){color:color-mix(in oklab, var(--text) 78%, var(--brand) 22%);font-weight:760}.reading-page .reading-body :where(em,i){color:color-mix(in oklab, var(--text) 70%, var(--brand) 30%);font-style:italic}.reading-page .reading-body :where(del,s){color:color-mix(in oklab, var(--text-soft) 82%, transparent 18%);text-decoration-line:line-through;text-decoration-thickness:2px;text-decoration-color:color-mix(in oklab, #dc2626 56%, var(--line-strong) 44%)}.reading-page .reading-body mark:not([class]),.reading-page .reading-body mark:not([class*=md-mark]),.reading-page .reading-body :where(p,li,td,th,blockquote)>mark:not([class*=md-mark]){background:linear-gradient(180deg, oklab(94.0936% -.00899029 .0893478), color-mix(in oklab, #fbbf24 30%, var(--surface-2) 70%));color:color-mix(in oklab, var(--text) 90%, #78350f 10%);border-radius:.4rem;padding:.08em .38em;box-shadow:inset 0 -.09em oklab(76.8591% .0560995 .154808/.34),0 0 0 1px oklab(76.8591% .0560995 .154808/.16)}.reading-page .reading-body kbd{border-color:color-mix(in oklab, var(--brand) 18%, var(--line-strong) 82%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 88%, white 12%), color-mix(in oklab, var(--surface-2) 84%, var(--brand-soft) 16%));color:color-mix(in oklab, var(--text) 78%, var(--brand) 22%)}.reading-page .reading-body abbr[title]{text-decoration-color:color-mix(in oklab, var(--brand) 58%, transparent 42%)}.reading-page .reading-body :where(ul,ol){padding-left:1.35rem}.reading-page .reading-body li+li{margin-top:.42rem}.reading-page .reading-body li :where(ul,ol){margin-top:.55rem}.reading-page .reading-body blockquote{border-left:2px solid color-mix(in oklab, var(--brand) 22%, var(--line) 78%);color:var(--text-soft);font-family:var(--font-sans);margin:1.6rem 0;padding:.1rem 0 .1rem 1.1rem}.reading-page .reading-body blockquote :where(strong,b){color:color-mix(in oklab, var(--text) 70%, var(--brand) 30%)}.reading-page .reading-body blockquote :where(em,i){color:color-mix(in oklab, var(--text-soft) 66%, var(--brand) 34%)}.reading-page .reading-body hr{width:var(--reading-rule-max-width);background:linear-gradient(90deg, transparent, color-mix(in oklab, var(--line) 90%, transparent 10%), transparent);border:0;height:1px;margin:2.7rem 0}.reading-page .reading-body :where(p,li,td,blockquote) a{color:color-mix(in oklab, var(--brand) 84%, var(--text) 16%);text-decoration:underline;text-decoration-color:color-mix(in oklab, var(--brand) 36%, transparent 64%);text-underline-offset:.18em;text-decoration-thickness:1px}.reading-page .reading-body :where(p,li,td,blockquote) a:hover{color:var(--brand);text-decoration-color:color-mix(in oklab, var(--brand) 68%, transparent 32%)}.reading-page .reading-body img{border:1px solid color-mix(in oklab, var(--line) 62%, transparent 38%);border-radius:20px;box-shadow:0 26px 48px -42px #0f172a75}.reading-page .reading-body .article-table-scroll{overscroll-behavior-x:contain;scrollbar-gutter:stable both-edges;-webkit-overflow-scrolling:touch;border:1px solid color-mix(in oklab, var(--line) 76%, transparent 24%);background:var(--reading-paper-bg-strong);border-radius:18px;inline-size:fit-content;max-inline-size:100%;margin:1.6rem 0;overflow:auto hidden;box-shadow:0 18px 40px -36px #0f172a4d}.reading-page .reading-body .article-table-scroll>table{border-collapse:collapse;border-spacing:0;inline-size:max-content;min-inline-size:100%;max-inline-size:none;box-shadow:none;white-space:normal;background:0 0;border:0;border-radius:0;margin:0;display:table;overflow:visible}.reading-page .reading-body .article-table-scroll>table th,.reading-page .reading-body .article-table-scroll>table td{border-bottom:1px solid color-mix(in oklab, var(--line) 72%, transparent 28%);text-align:left;padding:.8rem .9rem}.reading-page .reading-body .article-table-scroll>table th{font-family:var(--font-sans);color:var(--text-soft);background:color-mix(in oklab, var(--surface-2) 80%, transparent 20%);white-space:nowrap;font-size:.84rem}.reading-page .reading-body .article-table-scroll>table td{white-space:normal;overflow-wrap:break-word}.reading-page .reading-body .article-table-scroll::-webkit-scrollbar{height:10px}.reading-page .reading-body .article-table-scroll::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--line-strong) 64%, transparent 36%);border-radius:999px}.reading-page .reading-body :is(.md-tabs,.md-code-group,.md-demo,.md-chartjs,.mdx-admonition,.diagram-wrapper){border-color:color-mix(in oklab, var(--line) 76%, transparent 24%);background:var(--reading-paper-bg-strong);border-radius:20px;box-shadow:0 18px 40px -36px #0f172a4d}.reading-page .reading-body :is(.md-tabs-nav,.md-code-group-nav,.md-demo-head,.md-chartjs-head){border-bottom-color:color-mix(in oklab, var(--line) 68%, transparent 32%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-2) 82%, transparent 18%), color-mix(in oklab, var(--surface-1) 94%, transparent 6%))}.reading-page .reading-body :is(.md-tabs-tab,.md-code-group-tab){font-family:var(--font-tech);letter-spacing:.04em;border-radius:999px;font-size:.76rem}.reading-page .reading-body :is(.md-tabs-tab[data-active="1"],.md-code-group-tab[data-active="1"]){box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.14)}.reading-page .reading-body :is(.md-step-item,.md-chartjs-host,.md-demo-source,.md-demo-preview){border-radius:18px}.reading-page .reading-body .md-step-item{border-color:color-mix(in oklab, var(--line) 70%, transparent 30%);background:color-mix(in oklab, var(--surface-1) 82%, transparent 18%)}.reading-page .reading-switcher{border:1px solid var(--reading-line);background:var(--reading-panel-bg);box-shadow:var(--reading-shadow-soft);border-radius:24px;gap:.9rem;display:grid}.reading-page .reading-switcher a,.reading-page .reading-switcher .switcher-empty{min-width:0}.reading-page .reading-switcher a{background:color-mix(in oklab, var(--surface-1) 76%, transparent 24%);border:1px solid #0000;border-radius:18px}.reading-page .reading-switcher a:hover{border-color:color-mix(in oklab, var(--brand) 20%, var(--line) 80%);background:color-mix(in oklab, var(--brand-soft) 34%, var(--surface-1) 66%)}@media (width<=900px){.reading-page:before,.reading-page:after{display:none}.reading-page .reading-sheet,.reading-page .reading-panel,.reading-page .reading-switcher{border-radius:22px}.reading-page .reading-title{max-width:100%}.reading-page .reading-body.article-body{font-size:.98rem;line-height:1.8}}@font-face{font-family:Zpix;src:url(/fonts/pixel/zpix.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--ease-out-soft:cubic-bezier(.22, 1, .36, 1);--space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--floating-safe-bottom:0px;--font-regular-sans:"PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-regular-serif:"Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--font-regular-display:"PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-regular-tech:"Bahnschrift", "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-regular-mono:"Cascadia Code", "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-pixel-sans:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-pixel-serif:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-pixel-display:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-pixel-tech:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Microsoft YaHei", sans-serif;--font-pixel-mono:"Zpix", "Press Start 2P", "Fusion Pixel", "Pixelify Sans", "Cascadia Code", "JetBrains Mono", monospace;--font-sans:var(--font-regular-sans);--font-serif:var(--font-regular-serif);--font-display:var(--font-regular-display);--font-tech:var(--font-regular-tech);--font-mono:var(--font-regular-mono);--code-panel:#f6f8fc;--code-border:#d7dfec;--code-header:#eef3fb;--code-text:#1f2937;--code-muted:#6b7280;--code-comment:#8a93a3;--code-keyword:#c62828;--code-string:#0c7d4d;--code-number:#b45309;--code-function:#004ecb;--code-operator:#334155;--code-class:#0f766e;--code-variable:#7c3aed;--code-punctuation:#4b5563;--pager-height:36px;--pager-radius:11px;--pager-gap:.42rem;--line-number-digits:2;--pixel-grid-size:14px;--layout-container-width:1160px;--layout-main-grid-gap:32px;--layout-main-sidebar-width:300px;--layout-card-border-width:2px;--layout-radius-scale:1}:root[data-font-preset=regular]{--font-sans:var(--font-regular-sans);--font-serif:var(--font-regular-serif);--font-display:var(--font-regular-display);--font-tech:var(--font-regular-tech);--font-mono:var(--font-regular-mono)}:root[data-font-preset=pixel]{--font-sans:var(--font-pixel-sans);--font-serif:var(--font-pixel-serif);--font-display:var(--font-pixel-display);--font-tech:var(--font-pixel-tech);--font-mono:var(--font-pixel-mono)}:root[data-perf=low] .site-bg-image{--site-bg-opacity:.1!important;--site-bg-blur:0px!important;--site-bg-saturate:100%!important;--site-bg-grayscale:0%!important}:root[data-perf=low] .site-bg-overlay{--site-bg-overlay-opacity:0!important;display:none!important}:root[data-perf=low] .aurora-bg{display:none!important}:root[data-perf=low] .aurora-orb{opacity:.12!important;animation:none!important}:root[data-perf=low] .site-bg-image img{filter:none!important}:root[data-perf=low] body:before,:root[data-perf=low] body:after{display:none!important}:root[data-perf=low] *,:root[data-perf=low] .surface,:root[data-perf=low] .site-footer,:root[data-perf=low] .global-copy-toast,:root[data-perf=low] .search-fallback,:root[data-perf=low] .site-header,:root[data-perf=low] .toc,:root[data-perf=low] .toc-mobile-overlay,:root[data-perf=low] .tutorial-sidebar-mobile-overlay,:root[data-perf=low] .search-modal::backdrop{-webkit-backdrop-filter:none!important}:root[data-perf=low] .site-header{background:color-mix(in oklab, var(--bg-elev) 96%, var(--bg) 4%)!important}:root[data-perf=low] .toc{background:color-mix(in oklab, var(--surface-1) 96%, var(--bg) 4%)!important}:root[data-perf=low].theme-anim *,:root[data-perf=low].theme-anim :before,:root[data-perf=low].theme-anim :after{transition:none!important}:root[data-theme$=-light],:root[data-theme=ocean],:root[data-theme=plume],:root[data-theme=sunset]{color-scheme:light}:root[data-theme$=-dark],:root[data-theme=night],:root[data-theme=tech]{color-scheme:dark}html[data-code-theme=mac-light]{--code-panel:#f6f8fc;--code-border:#d7dfec;--code-header:#eef3fb;--code-text:#1f2937;--code-muted:#6b7280;--code-comment:#8a93a3;--code-keyword:#c62828;--code-string:#0c7d4d;--code-number:#b45309;--code-function:#004ecb;--code-operator:#334155;--code-class:#0f766e;--code-variable:#7c3aed;--code-punctuation:#4b5563}html[data-code-theme=mac-dark]{--code-panel:#2b313d;--code-border:#47566d;--code-header:#353f50;--code-text:#d7dde8;--code-muted:#7d8799;--code-comment:#6e7681;--code-keyword:#ff7b72;--code-string:#a5d6ff;--code-number:#f6c177;--code-function:#79c0ff;--code-operator:#c9d1d9;--code-class:#7ee787;--code-variable:#d2a8ff;--code-punctuation:#9da7b5}html[data-code-theme=github-light]{--code-panel:#f6f8fa;--code-border:#d0d7de;--code-header:#eef2f7;--code-text:#24292f;--code-muted:#57606a;--code-comment:#6e7781;--code-keyword:#cf222e;--code-string:#0a3069;--code-number:#0550ae;--code-function:#8250df;--code-operator:#24292f;--code-class:#953800;--code-variable:#24292f;--code-punctuation:#57606a}html[data-code-theme=github-dark]{--code-panel:#222b36;--code-border:#3b4b61;--code-header:#2a3445;--code-text:#d6dee8;--code-muted:#9aa5b4;--code-comment:#8d99a9;--code-keyword:#ff7b72;--code-string:#a5d6ff;--code-number:#79c0ff;--code-function:#d2a8ff;--code-operator:#d6dee8;--code-class:#ffa657;--code-variable:#ffa657;--code-punctuation:#a6b0bc}html[data-code-theme=idea-dark]{--code-panel:#2f333b;--code-border:#444b57;--code-header:#3a404d;--code-text:#a9b7c6;--code-muted:#808891;--code-comment:#808891;--code-keyword:#cc7832;--code-string:#6a8759;--code-number:#6897bb;--code-function:#ffc66d;--code-operator:#a9b7c6;--code-class:#a9b7c6;--code-variable:#9876aa;--code-punctuation:#a9b7c6}html[data-code-theme=idea-light]{--code-panel:#f8f8f8;--code-border:#d7d7d7;--code-header:#efefef;--code-text:#2b2b2b;--code-muted:#7a7a7a;--code-comment:#8c8c8c;--code-keyword:#0033b3;--code-string:#067d17;--code-number:#1750eb;--code-function:#00627a;--code-operator:#2b2b2b;--code-class:#2b2b2b;--code-variable:#871094;--code-punctuation:#4f4f4f}html[data-code-theme=one-light]{--code-panel:#fafafa;--code-border:#d9e1ee;--code-header:#eef2fb;--code-text:#383a42;--code-muted:#7f848e;--code-comment:#a0a1a7;--code-keyword:#a626a4;--code-string:#50a14f;--code-number:#986801;--code-function:#4078f2;--code-operator:#383a42;--code-class:#c18401;--code-variable:#e45649;--code-punctuation:#4f525d}html[data-code-theme=one-dark]{--code-panel:#2a303b;--code-border:#404958;--code-header:#353d4c;--code-text:#abb2bf;--code-muted:#5c6370;--code-comment:#5c6370;--code-keyword:#c678dd;--code-string:#98c379;--code-number:#d19a66;--code-function:#61afef;--code-operator:#abb2bf;--code-class:#e5c07b;--code-variable:#e06c75;--code-punctuation:#abb2bf}html[data-code-theme=nord-dark]{--code-panel:#2e3440;--code-border:#434c5e;--code-header:#3b4252;--code-text:#d8dee9;--code-muted:#aeb8c7;--code-comment:#7d8694;--code-keyword:#81a1c1;--code-string:#a3be8c;--code-number:#b48ead;--code-function:#88c0d0;--code-operator:#e5e9f0;--code-class:#8fbcbb;--code-variable:#d08770;--code-punctuation:#c0c7d2}html[data-code-theme=dracula]{--code-panel:#282a36;--code-border:#44475a;--code-header:#343746;--code-text:#f8f8f2;--code-muted:#bcc2d3;--code-comment:#6272a4;--code-keyword:#ff79c6;--code-string:#f1fa8c;--code-number:#bd93f9;--code-function:#8be9fd;--code-operator:#f8f8f2;--code-class:#50fa7b;--code-variable:#ffb86c;--code-punctuation:#f8f8f2}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:color-mix(in oklab, var(--line) 80%, transparent 20%) transparent}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}body{min-height:100vh;font-family:var(--font-sans);letter-spacing:0;color:var(--text);background:radial-gradient(920px 460px at -10% -12%, color-mix(in oklab, var(--bg-mesh-a) 68%, transparent 32%), transparent 74%), radial-gradient(720px 300px at 100% -8%, color-mix(in oklab, var(--bg-mesh-b) 54%, transparent 46%), transparent 80%), radial-gradient(960px 520px at 50% 120%, color-mix(in oklab, var(--brand) 2%, transparent), transparent 88%), var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}:root[data-font-preset=pixel] body{text-rendering:geometricprecision}button,input,select,textarea{font:inherit}button:not(:disabled),summary{cursor:pointer}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid color-mix(in oklab, var(--brand) 72%, white 28%);outline-offset:3px}body:before{content:"";pointer-events:none;background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 20%, transparent 80%), transparent 32%);opacity:.09;z-index:-1;position:fixed;inset:0}body:after{content:"";pointer-events:none;background:radial-gradient(circle at top, color-mix(in oklab, var(--brand) 2.5%, transparent 97.5%), transparent 58%);opacity:.2;z-index:-1;position:fixed;inset:0}:root[data-theme-surface-style=plain] body{background:radial-gradient(760px 280px at 0% -5%, color-mix(in oklab, var(--bg-mesh-a) 56%, transparent 44%), transparent 78%), radial-gradient(680px 280px at 100% -10%, color-mix(in oklab, var(--bg-mesh-b) 50%, transparent 50%), transparent 82%), radial-gradient(900px 420px at 50% 130%, color-mix(in oklab, var(--brand) 2%, transparent), transparent 88%), var(--bg)}:root[data-theme-surface-style=plain] body:after{opacity:.05;background:linear-gradient(180deg, color-mix(in oklab, var(--brand) 4%, transparent), transparent 36%)}:root[data-theme-pack=mono] body:before{opacity:.12;background:radial-gradient(circle at 12% 12%, color-mix(in oklab, var(--brand) 7%, transparent 93%), transparent 28%), linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 16%, transparent 84%), transparent 36%), repeating-linear-gradient(90deg, color-mix(in oklab, var(--line) 7%, transparent 93%) 0, color-mix(in oklab, var(--line) 7%, transparent 93%) 1px, transparent 1px, transparent 28px), repeating-linear-gradient(0deg, color-mix(in oklab, var(--line) 6%, transparent 94%) 0, color-mix(in oklab, var(--line) 6%, transparent 94%) 1px, transparent 1px, transparent 28px)}:root[data-theme-pack=mono] body:after{opacity:.14;background:radial-gradient(circle at top, color-mix(in oklab, var(--brand) 6%, transparent 94%), transparent 42%), radial-gradient(circle at 85% 14%, color-mix(in oklab, var(--accent) 7%, transparent 93%), transparent 36%);display:block}:root[data-theme-pack=nature]{--pixel-grid-size:24px;--layout-card-border-width:1px;--layout-radius-scale:.95}:root[data-theme-pack=nature] body:before{opacity:.02}:root[data-theme-pack=nature] body:after{display:none}:root[data-theme-pack=nature] .section-title{font-family:var(--font-serif);text-transform:none;letter-spacing:.01em}:root[data-theme-pack=nature] .nav-link{text-transform:none;letter-spacing:.01em;font-family:var(--font-tech)}:root[data-theme-pack=nature] .prose{letter-spacing:.004em;line-height:1.9}:root[data-theme-pack=nature] .prose h1,:root[data-theme-pack=nature] .prose h2,:root[data-theme-pack=nature] .prose h3,:root[data-theme-pack=nature] .prose h4{font-family:var(--font-serif);text-transform:none;letter-spacing:.01em}:root[data-theme-pack=game-pixel]{--pixel-grid-size:10px;--layout-card-border-width:2px;--layout-radius-scale:.82;--pager-height:32px}:root[data-theme-pack=game-pixel] body:after{opacity:.28;mix-blend-mode:normal;background:repeating-linear-gradient(0deg, color-mix(in oklab, var(--brand) 14%, transparent 86%) 0, color-mix(in oklab, var(--brand) 14%, transparent 86%) 1px, transparent 1px, transparent 3px)}:root[data-theme-pack=game-pixel] .surface{backdrop-filter:none;box-shadow:var(--card-shadow), inset 0 0 0 1px color-mix(in oklab, var(--line-strong) 78%, transparent 22%)}:root[data-theme-pack=game-pixel] .nav-link,:root[data-theme-pack=game-pixel] .chip,:root[data-theme-pack=game-pixel] .pager-btn{text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-tech);border-radius:2px}:root[data-theme-pack=game-pixel] .section-title{letter-spacing:.1em}body.has-overlay{overflow:hidden}html.theme-anim *,html.theme-anim :before,html.theme-anim :after{transition:background-color .22s,border-color .22s,color .22s,box-shadow .22s}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--brand)}img{max-width:100%;height:auto}.container{width:min(var(--layout-container-width,1160px), calc(100% - var(--space-6)));margin:0 auto}.surface{background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 97%, transparent 3%), color-mix(in oklab, var(--surface-2) 95%, transparent 5%));border:1px solid color-mix(in oklab, var(--line) 88%, transparent 12%);border-radius:calc(var(--radius-md) * var(--layout-radius-scale,1));box-shadow:var(--card-shadow);backdrop-filter:blur(8px);transition:box-shadow .2s,border-color .2s,background-color .2s}.surface:hover{box-shadow:var(--card-shadow-strong);border-color:color-mix(in oklab, var(--line-strong) 72%, transparent 28%)}:root[data-theme-surface-style=plain] .surface{background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 95%, transparent 5%), color-mix(in oklab, var(--surface-2) 94%, transparent 6%))}.surface-soft{background:var(--surface-1);border:1px solid var(--line-soft);border-radius:calc(var(--radius-md) * var(--layout-radius-scale,1))}.chip{border-radius:var(--radius-pill);border:1px solid color-mix(in oklab, var(--line) 84%, transparent 16%);color:var(--text-soft);background:color-mix(in oklab, var(--surface-1) 94%, transparent 6%);font-size:.76rem;font-weight:600;font-family:var(--font-sans);align-items:center;gap:.3rem;padding:.26rem .64rem;transition:background-color .2s,color .2s;display:inline-flex}.chip:hover{background:color-mix(in oklab, var(--brand-soft) 42%, var(--surface-1) 58%);color:var(--brand)}.tag-badge{border:1px solid color-mix(in oklab, var(--line) 74%, var(--brand) 26%);border-radius:var(--radius-pill);background:color-mix(in oklab, var(--brand-soft) 32%, var(--surface-1) 68%);color:color-mix(in oklab, var(--text) 72%, var(--brand) 28%);font-family:var(--font-tech)}.pager-shell{justify-content:center;align-items:center;gap:var(--pager-gap);flex-wrap:wrap;display:flex}.pager-shell.surface{border-radius:14px;padding:.65rem .74rem}.pager-pages{flex-wrap:wrap;align-items:center;gap:.32rem;display:inline-flex}.pager-meta{color:var(--text-soft);font-family:var(--font-tech);letter-spacing:.04em;align-items:baseline;gap:.34rem;padding:0 .3rem;font-size:.78rem;display:inline-flex}.pager-meta strong{color:var(--text);font-size:.98rem}.pager-btn{height:var(--pager-height);min-width:var(--pager-height);border-radius:var(--pager-radius);border:1px solid color-mix(in oklab, var(--line) 88%, transparent 12%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 96%, transparent 4%), color-mix(in oklab, var(--surface-2) 94%, transparent 6%));color:var(--text-soft);cursor:pointer;justify-content:center;align-items:center;padding:0 .72rem;font-size:.82rem;line-height:1;transition:border-color .18s,color .18s,transform .18s,box-shadow .18s;display:inline-flex}.pager-btn:hover{color:var(--text);border-color:color-mix(in oklab, var(--brand) 36%, var(--line) 64%);transform:translateY(-1px)}.pager-btn.pager-btn-num{min-width:34px;padding:0 .56rem}.pager-ellipsis{min-width:24px;color:var(--text-muted);font-family:var(--font-tech);justify-content:center;align-items:center;font-size:.92rem;display:inline-flex}.pager-btn.is-active,.pager-btn.active{color:var(--brand);border-color:color-mix(in oklab, var(--brand) 48%, var(--line) 52%);background:linear-gradient(180deg, color-mix(in oklab, var(--brand-soft) 74%, transparent 26%), color-mix(in oklab, var(--surface-2) 86%, transparent 14%));box-shadow:0 10px 24px -18px color-mix(in oklab, var(--brand) 56%, transparent 44%)}.pager-btn.is-disabled,.pager-btn:disabled{opacity:.48;pointer-events:none;cursor:not-allowed}.pager-jump{flex-wrap:wrap;align-items:center;gap:.42rem;margin-left:.2rem;display:inline-flex}.pager-jump-label{color:var(--text-muted);font-family:var(--font-tech);letter-spacing:.04em;font-size:.76rem}.pager-jump-input{width:72px;height:var(--pager-height);border-radius:var(--pager-radius);border:1px solid color-mix(in oklab, var(--line) 86%, transparent 14%);background:color-mix(in oklab, var(--surface-1) 92%, transparent 8%);color:var(--text);font-family:var(--font-mono);outline:none;padding:0 .7rem;font-size:.82rem}.pager-jump-input:focus{border-color:color-mix(in oklab, var(--brand) 46%, var(--line) 54%);box-shadow:0 0 0 3px color-mix(in oklab, var(--brand-soft) 34%, transparent 66%)}.pager-go{white-space:nowrap}@media (width<=760px){.container{width:min(100%, calc(100% - var(--space-4)))}.prose{font-family:var(--font-regular-sans);letter-spacing:0;font-size:1rem;line-height:1.72}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-regular-sans);letter-spacing:.01em;text-transform:none}.pager-shell.surface{border-radius:12px;padding:.56rem}.pager-btn{min-width:34px;height:34px;padding:0 .58rem}.pager-jump{justify-content:center;width:100%;margin-left:0}.pager-jump-input{width:64px}}.section-title{font-family:var(--font-display);color:var(--text);letter-spacing:0;text-transform:none;margin:0;font-size:clamp(1rem,.8vw + .92rem,1.28rem);font-weight:700}:root[data-layout-preset=editorial] .section-title{font-family:var(--font-display);letter-spacing:0;text-transform:none}:root[data-layout-preset=compact] .chip{padding:.18rem .58rem;font-size:.75rem}:root[data-layout-preset=showcase] .surface{box-shadow:var(--card-shadow-strong)}.grid-main{grid-template-columns:minmax(0, 1fr) minmax(0, var(--layout-main-sidebar-width,300px));gap:var(--layout-main-grid-gap,var(--space-5));align-items:start;display:grid}.grid-main>*{min-width:0}.profile-rail{gap:var(--space-4);top:calc(var(--layout-header-height,72px) + var(--space-2));align-content:start;width:100%;height:fit-content;display:grid;position:sticky}@media (width<=1024px){.grid-main{grid-template-columns:minmax(0,1fr)}.profile-rail{position:static;top:auto}}.prose{letter-spacing:.002em;color:var(--text);font-size:1.06rem;line-height:1.75}.prose p{color:color-mix(in oklab, var(--text) 92%, var(--text-soft) 8%);margin:.95em 0}.prose ul,.prose ol{margin:1.05em 0;padding-left:1.45em}.prose table{border-collapse:collapse;border:1px solid var(--line-strong);background:color-mix(in oklab, var(--surface-1) 88%, transparent 12%);border-radius:10px;width:100%;margin:1.5em 0;font-size:.95rem;overflow:hidden}.prose th,.prose td{border-bottom:1px solid var(--line-soft);text-align:left;padding:.6rem .72rem}.prose th{background:color-mix(in oklab, var(--surface-2) 72%, var(--brand-soft) 28%);font-weight:600}.prose .article-table-scroll{-webkit-overflow-scrolling:touch;width:fit-content;max-width:100%;margin:1.5em 0;overflow:auto hidden}.prose .article-table-scroll>table{white-space:normal;width:max-content;min-width:100%;max-width:none;margin:0}.fade-up{animation:.28s ease-out both fade-up}@media (prefers-reduced-motion:reduce){.fade-up{animation:none}}@media (width<=900px){body{background:var(--bg)}body:before,body:after{display:none}.surface{-webkit-backdrop-filter:none;background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 97%, transparent 3%), color-mix(in oklab, var(--surface-2) 96%, transparent 4%));box-shadow:var(--card-shadow)}.surface:hover{box-shadow:var(--card-shadow)}.fade-up{animation:none}}@media (hover:none){.surface:hover,.pager-btn:hover,.chip:hover,a:hover{box-shadow:none;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.prose h1,.prose h2,.prose h3,.prose h4{scroll-margin-top:calc(var(--layout-header-height,68px) + 16px);font-family:var(--font-display);color:var(--text);letter-spacing:0;text-transform:none;font-weight:700;line-height:1.24}.prose h1{font-size:clamp(1.72rem,1.4vw + 1.2rem,2.32rem)}.prose h2{border-bottom:1px solid var(--line-strong);margin-top:2.6rem;margin-bottom:1.35rem;padding-bottom:.3em;font-size:clamp(1.24rem,.9vw + .98rem,1.6rem)}.prose h3{margin-top:1.75rem;margin-bottom:.9rem;font-size:1.1rem}.prose a{color:var(--brand);font-weight:500;text-decoration:none}.prose a:hover{text-underline-offset:4px;text-decoration:underline}.prose :where(strong,b){color:color-mix(in oklab, var(--text) 82%, var(--brand) 18%);font-weight:720}.prose :where(em,i){color:color-mix(in oklab, var(--text) 74%, var(--brand) 26%);font-style:italic}.prose :where(del,s){color:color-mix(in oklab, var(--text-soft) 86%, transparent 14%);text-decoration-line:line-through;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in oklab, #dc2626 48%, var(--line-strong) 52%)}.prose mark:not([class]),.prose mark:not([class*=md-mark]),.prose :where(p,li,td,th,blockquote)>mark:not([class*=md-mark]){background:color-mix(in oklab, #facc15 38%, var(--surface-2) 62%);color:color-mix(in oklab, var(--text) 90%, #7c2d12 10%);border-radius:.35rem;padding:.08em .35em;box-shadow:inset 0 -.08em oklab(76.8591% .0560995 .154808/.28)}.prose kbd{border:1px solid color-mix(in oklab, var(--line-strong) 72%, transparent 28%);background:linear-gradient(180deg, color-mix(in oklab, var(--surface-1) 94%, white 6%), color-mix(in oklab, var(--surface-2) 84%, transparent 16%));min-width:1.7em;box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.3), 0 2px 0 color-mix(in oklab, var(--line-strong) 36%, transparent 64%);color:color-mix(in oklab, var(--text) 82%, var(--brand) 18%);font-family:var(--font-mono);border-radius:.5rem;justify-content:center;align-items:center;margin:0 .12em;padding:.14em .45em;font-size:.82em;line-height:1.1;display:inline-flex}.prose abbr[title]{text-underline-offset:.18em;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in oklab, var(--brand) 44%, transparent 56%);cursor:help}.prose :where(p,li,td,th,blockquote)>code{font-family:var(--font-mono);background:color-mix(in oklab, var(--code-bg) 80%, var(--brand-soft) 20%);color:color-mix(in oklab, var(--brand) 84%, var(--text) 16%);border:1px solid color-mix(in oklab, var(--code-border) 78%, transparent 22%);border-radius:6px;padding:.12em .42em;font-size:.82em}.prose pre{border:1px solid var(--code-border);border-radius:10px;margin:.88rem 0;padding:.64rem .78rem;font-size:.8rem;line-height:1.34;overflow:auto;box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.18);background:linear-gradient(180deg, color-mix(in oklab, var(--code-panel) 94%, #fff 6%), var(--code-panel))!important;background-color:var(--code-panel)!important;background-image:linear-gradient(180deg, color-mix(in oklab, var(--code-panel) 94%, #fff 6%), var(--code-panel))!important;color:var(--code-text)!important}.prose pre code{color:var(--code-text);white-space:pre;tab-size:2;background-color:#0000;border-radius:0;padding:0;line-height:1.34;display:block}.prose pre[class*=language-],.prose code[class*=language-]{font-family:var(--font-mono);color:var(--code-text)!important;background:0 0!important}.prose pre[class*=language-]{background:var(--code-panel)!important;background-color:var(--code-panel)!important;background-image:none!important}.prose pre.astro-code{background:var(--code-panel)!important;background-color:var(--code-panel)!important;color:var(--code-text)!important;background-image:none!important}.prose pre.astro-code code{color:inherit!important;background:0 0!important}.prose pre[style],.prose pre.astro-code[style],.code-block-wrapper pre[style]{background:var(--code-panel)!important;background-color:var(--code-panel)!important;background-image:none!important}.prose pre code[style]{background:0 0!important}.prose .token.comment,.prose .token.prolog,.prose .token.doctype,.prose .token.cdata{color:var(--code-comment)}.prose .token.punctuation{color:var(--code-punctuation)}.prose .token.namespace{opacity:.75}.prose .token.keyword,.prose .token.boolean,.prose .token.constant,.prose .token.atrule{color:var(--code-keyword)}.prose .token.string,.prose .token.char,.prose .token.attr-value{color:var(--code-string)}.prose .token.number,.prose .token.unit{color:var(--code-number)}.prose .token.function,.prose .token.regex{color:var(--code-function)}.prose .token.operator,.prose .token.entity{color:var(--code-operator)}.prose .token.class-name,.prose .token.builtin{color:var(--code-class)}.prose .token.variable,.prose .token.parameter,.prose .token.property{color:var(--code-variable)}main pre.has-global-copy{padding-top:1.95rem;position:relative}.global-pre-copy{border:1px solid color-mix(in oklab, var(--line) 76%, transparent 24%);background:color-mix(in oklab, var(--bg) 88%, transparent 12%);width:30px;height:30px;color:var(--text-soft);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex;position:absolute;top:.45rem;right:.45rem}.global-pre-copy:hover{color:var(--brand);border-color:color-mix(in oklab, var(--brand) 45%, var(--line) 55%)}.global-pre-copy.copied{color:#10b981;border-color:#10b981}.code-block-wrapper{border:1px solid var(--code-border);box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.16), 0 22px 44px -30px color-mix(in oklab, var(--text) 38%, transparent);border-radius:14px;margin:1rem 0;position:relative;overflow:hidden;background:linear-gradient(180deg, color-mix(in oklab, var(--code-panel) 94%, #fff 6%), var(--code-panel))!important}.code-block-wrapper pre{--line-number-digits:2;border:none;border-radius:0;margin:0;padding:.75rem .92rem .82rem;overflow-x:auto;background:var(--code-panel)!important;background-color:var(--code-panel)!important;color:var(--code-text)!important}.code-block-wrapper pre[data-line-numbers="1"]{--line-number-gutter:calc(var(--line-number-digits) * .72ch);padding-left:calc(1rem + var(--line-number-gutter) + .95rem)}.code-block-wrapper pre[data-line-numbers="1"] code{counter-reset:code-line}.code-block-wrapper pre[data-line-numbers="1"] .code-line{min-height:1.34em;display:block;position:relative}.code-block-wrapper pre[data-line-numbers="1"] .code-line:before{counter-increment:code-line;content:counter(code-line);left:calc(-1rem - var(--line-number-gutter));width:var(--line-number-gutter);text-align:right;color:color-mix(in oklab, var(--code-muted) 88%, transparent 12%);font-variant-numeric:tabular-nums;user-select:none;pointer-events:none;position:absolute}.code-block-header{background:var(--code-header,color-mix(in oklab, var(--surface-2) 80%, transparent 20%));border-bottom:1px solid var(--code-border);min-height:1.9rem;font-family:var(--font-mono);color:var(--code-muted);align-items:center;padding:.36rem .72rem .36rem .9rem;font-size:.8rem;display:flex;position:relative;overflow:hidden}.code-block-title{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.code-block-meta{z-index:2;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.28rem;min-width:0;margin-left:auto;padding-left:.3rem;display:inline-flex;position:relative}.code-block-lang{text-transform:uppercase;letter-spacing:.02em;color:var(--code-muted);white-space:nowrap;border-radius:999px;order:1;align-items:center;font-size:.68rem;font-weight:560;line-height:1.1;display:inline-flex;border:1px solid color-mix(in oklab, var(--code-border) 76%, transparent 24%)!important;background:color-mix(in oklab, var(--code-header) 70%, var(--code-panel) 30%)!important;box-shadow:none!important;padding:.12rem .46rem!important}.code-block-copy-wrap{order:2;align-items:center;display:inline-flex}.code-block-copy{color:var(--text-soft);cursor:pointer;opacity:1;pointer-events:auto;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;padding:.16rem;transition:opacity .18s,transform .18s,background-color .18s,color .18s;display:flex;transform:none}.code-block-wrapper:hover .code-block-copy,.code-block-wrapper:focus-within .code-block-copy,.code-block-copy:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.code-block-copy:hover{background:color-mix(in oklab, var(--line-soft) 72%, transparent 28%);color:var(--text)}.code-block-copy.copied{color:var(--brand)}.prose .expressive-code{border:1px solid var(--code-border);box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.16), 0 22px 44px -30px color-mix(in oklab, var(--text) 38%, transparent);border-radius:14px;margin:1rem 0;overflow:hidden;background:var(--code-panel)!important}.prose .expressive-code .frame{border-radius:inherit!important;background:var(--code-panel)!important;background-color:var(--code-panel)!important;border:none!important;margin:0!important}.prose .expressive-code .frame>figcaption.header{min-height:1.9rem;font-family:var(--font-mono);justify-content:flex-start;align-items:center;gap:.28rem;display:flex;position:relative;overflow:hidden;border-bottom:1px solid var(--code-border)!important;background:var(--code-header,color-mix(in oklab, var(--surface-2) 80%, transparent 20%))!important;color:var(--code-muted)!important;margin:0!important;padding:.36rem .72rem .36rem .9rem!important}.prose .expressive-code .frame>figcaption.header .title{text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;margin:0;font-size:.68rem;font-weight:560;line-height:1.1;display:inline-flex;color:var(--code-muted)!important;border:1px solid color-mix(in oklab, var(--code-border) 76%, transparent 24%)!important;background:color-mix(in oklab, var(--code-header) 70%, var(--code-panel) 30%)!important;box-shadow:none!important;padding:.12rem .46rem!important}.prose .expressive-code .frame>figcaption.header>.code-block-meta{z-index:2;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.28rem;min-width:0;margin-left:auto;padding-left:.3rem;display:inline-flex;position:relative}.prose .expressive-code .frame[data-lang-label-initialized="1"]>.copy:not(.code-block-copy-wrap){display:none!important}.prose .expressive-code .frame>figcaption.header .copy.code-block-copy-wrap{z-index:2;align-items:center;margin:0!important;padding:0!important;display:inline-flex!important;position:static!important;inset:auto!important;transform:none!important}.prose .expressive-code .frame>figcaption.header .copy.code-block-copy-wrap>div[aria-live]{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose .expressive-code .frame>figcaption.header .code-block-copy{opacity:1;pointer-events:auto;transform:none}.prose .expressive-code .frame:hover>figcaption.header .code-block-copy,.prose .expressive-code .frame:focus-within>figcaption.header .code-block-copy,.prose .expressive-code .frame>figcaption.header .code-block-copy:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0)}@media (hover:none){.code-block-wrapper .code-block-copy,.prose .expressive-code .frame>figcaption.header .code-block-copy{opacity:1;pointer-events:auto;transform:none}}.prose .expressive-code .frame>pre{overflow-x:auto;background:var(--code-panel)!important;background-color:var(--code-panel)!important;color:var(--code-text)!important;border:none!important;border-radius:0!important;margin:0!important;padding:.75rem .92rem .82rem!important}.prose .expressive-code .frame>pre code{font-family:var(--font-mono)!important}.diagram-wrapper{background:var(--surface-1);border:1px solid var(--line-soft);border-radius:10px;margin:2rem 0;position:relative}.diagram-wrapper .diagram-host{border:none;margin:0}.diagram-copy-btn{background:var(--surface-1);border:1px solid var(--line-soft);color:var(--text-soft);cursor:pointer;z-index:10;opacity:0;border-radius:6px;justify-content:center;align-items:center;padding:.25rem;transition:all .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.diagram-wrapper:hover .diagram-copy-btn{opacity:1}.diagram-copy-btn:hover{color:var(--brand);border-color:var(--brand)}.diagram-copy-btn.copied{color:#10b981;border-color:#10b981}.math-wrapper{position:relative}.math-copy-btn{color:var(--text-soft);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:.25rem;transition:all .2s;display:flex;position:absolute;top:0;right:0}.math-wrapper:hover .math-copy-btn{opacity:1}.math-copy-btn:hover{background:color-mix(in oklab, var(--line-soft) 72%, transparent 28%);color:var(--text)}.math-copy-btn.copied{color:var(--brand)}.prose blockquote{border-left:4px solid var(--brand);background:color-mix(in oklab, var(--surface-2) 84%, transparent 16%);color:var(--text-soft);border-top:1px solid var(--line-soft);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);border-radius:0 10px 10px 0;margin:1.5rem 0;padding:.7rem 1rem;font-style:normal}.prose blockquote :where(strong,b){color:color-mix(in oklab, var(--text) 74%, var(--brand) 26%)}.prose blockquote :where(em,i){color:color-mix(in oklab, var(--text-soft) 70%, var(--brand) 30%)}.prose hr{background:linear-gradient(90deg, transparent, color-mix(in oklab, var(--line-strong) 78%, transparent 22%), transparent);border:0;width:min(100%,72ch);height:1px;margin:2.4rem 0}.md-figure{margin:2rem 0}.md-figure figcaption{text-align:center;color:var(--text-soft);margin-top:.75rem;font-size:.875rem}.img-mark-tip{outline:2px dashed var(--accent);border-radius:8px}.katex-display{overflow:auto hidden}.sr-only{white-space:nowrap;clip-path:inset(50%);clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:color-mix(in oklab, var(--line) 80%, transparent 20%);border:3px solid var(--bg);border-radius:12px}::-webkit-scrollbar-thumb:hover{background-color:var(--text-soft)}html{--layout-header-height:72px;--layout-footer-height:56px}body{min-height:100dvh}main[data-astro-cid-z4jru4n3]{padding:calc(var(--layout-header-height) + 1.05rem) 0 var(--space-6);z-index:2;min-height:calc(100dvh - var(--layout-header-height) - var(--layout-footer-height));position:relative}.skip-link[data-astro-cid-z4jru4n3]{z-index:120;border:1px solid var(--brand);background:var(--bg-elev);color:var(--text);box-shadow:var(--card-shadow-strong);border-radius:10px;padding:.58rem .82rem;font-weight:650;transition:transform .16s ease-out;position:fixed;top:.65rem;left:.75rem;transform:translateY(calc(-100% - 1rem))}.skip-link[data-astro-cid-z4jru4n3]:focus-visible{transform:translateY(0)}.site-footer[data-astro-cid-z4jru4n3]{border-top:1px solid color-mix(in oklab, var(--line) 84%, transparent 16%);z-index:2;background:0 0;position:relative}.footer-inner[data-astro-cid-z4jru4n3]{min-height:56px;color:var(--text-soft);font-size:.8rem;font-family:var(--font-sans);justify-content:space-between;align-items:center;gap:1rem;line-height:1.25;display:flex}.footer-meta[data-astro-cid-z4jru4n3]{align-items:center;gap:.9rem;display:inline-flex}.footer-runtime[data-astro-cid-z4jru4n3]{font-variant-numeric:tabular-nums;opacity:.92}.footer-inner[data-astro-cid-z4jru4n3] p[data-astro-cid-z4jru4n3],.footer-inner[data-astro-cid-z4jru4n3] small[data-astro-cid-z4jru4n3]{margin:0}.site-bg-image[data-astro-cid-z4jru4n3],.site-bg-overlay[data-astro-cid-z4jru4n3]{pointer-events:none;z-index:0;position:fixed;inset:0}.site-bg-image[data-astro-cid-z4jru4n3][data-enabled="0"],.site-bg-overlay[data-astro-cid-z4jru4n3][data-enabled="0"]{display:none}.site-bg-image[data-astro-cid-z4jru4n3] img[data-astro-cid-z4jru4n3]{object-fit:cover;width:100%;height:100%;opacity:var(--site-bg-opacity,.14);filter:blur(var(--site-bg-blur,14px)) saturate(var(--site-bg-saturate,102%)) grayscale(var(--site-bg-grayscale,0%));transform-origin:50%;transition:opacity .22s,transform .32s;transform:scale(1.06)}.site-bg-image[data-astro-cid-z4jru4n3] img[data-astro-cid-z4jru4n3].is-switching{opacity:.05;transform:scale(1.1)}.site-bg-overlay[data-astro-cid-z4jru4n3]{background:linear-gradient(180deg, color-mix(in oklab, var(--bg) 54%, transparent 46%), color-mix(in oklab, var(--bg) 86%, transparent 14%)), radial-gradient(60% 60% at 50% 0%, color-mix(in oklab, var(--brand-soft) 10%, transparent 90%), transparent 74%);opacity:var(--site-bg-overlay-opacity,.42)}.aurora-bg[data-astro-cid-z4jru4n3]{pointer-events:none;z-index:1;filter:blur(44px);position:fixed;inset:-20vh -20vw;overflow:hidden}.aurora-orb[data-astro-cid-z4jru4n3]{opacity:.16;border-radius:999px;animation:18s ease-in-out infinite aurora-float;position:absolute}.orb-a[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand) 52%, transparent 48%);width:38vw;min-width:320px;height:38vw;min-height:320px;top:8%;left:0}.orb-b[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--accent) 48%, transparent 52%);width:30vw;min-width:260px;height:30vw;min-height:260px;animation-delay:-6s;top:3%;right:6%}.orb-c[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand) 40%, transparent 60%);width:26vw;min-width:220px;height:26vw;min-height:220px;animation-delay:-11s;bottom:10%;left:28%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=none]{display:none}.aurora-bg[data-astro-cid-z4jru4n3][data-style=mesh]{filter:blur(56px)saturate(108%)}.aurora-bg[data-astro-cid-z4jru4n3][data-style=mesh] .orb-a[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand) 44%, transparent 56%);width:44vw;height:40vw;top:-4%;left:-4%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=mesh] .orb-b[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--accent) 40%, transparent 60%);width:36vw;height:32vw;top:8%;right:-4%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=mesh] .orb-c[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand-soft) 42%, transparent 58%);width:48vw;height:34vw;bottom:-8%;left:18%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=flare]{filter:blur(62px)saturate(118%)}.aurora-bg[data-astro-cid-z4jru4n3][data-style=flare] .orb-a[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand) 50%, transparent 50%);width:42vw;height:38vw;top:12%;left:6%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=flare] .orb-b[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--accent) 52%, transparent 48%);width:34vw;height:34vw;top:0;right:4%}.aurora-bg[data-astro-cid-z4jru4n3][data-style=flare] .orb-c[data-astro-cid-z4jru4n3]{background:color-mix(in oklab, var(--brand-soft) 34%, transparent 66%);width:22vw;height:22vw;bottom:4%;left:38%}@keyframes aurora-float{0%{transform:translate(0,0)scale(1)}50%{transform:translate(2.5vw,-1.8vh)scale(1.06)}to{transform:translate(0,0)scale(1)}}.global-copy-toast[data-astro-cid-z4jru4n3]{bottom:calc(var(--layout-footer-height) + 16px);z-index:120;border-radius:var(--radius-sm);border:1px solid color-mix(in oklab, var(--brand) 40%, var(--line) 60%);max-width:min(60vw,320px);color:var(--text);background:color-mix(in oklab, var(--bg-elev) 90%, transparent 10%);box-shadow:0 8px 20px color-mix(in oklab, var(--bg) 75%, transparent 25%);backdrop-filter:blur(8px);letter-spacing:.01em;font-size:.78rem;line-height:1.4;font-family:var(--font-tech);opacity:0;pointer-events:none;padding:.52rem .78rem;transition:opacity .18s,transform .18s;position:fixed;transform:translateY(8px)}.global-copy-toast[data-astro-cid-z4jru4n3].bottom-right{right:18px}.global-copy-toast[data-astro-cid-z4jru4n3].bottom-center{left:50%;transform:translate(-50%)translateY(8px)}.global-copy-toast[data-astro-cid-z4jru4n3].is-visible{opacity:1;transform:translateY(0)}.global-copy-toast[data-astro-cid-z4jru4n3].bottom-center.is-visible{transform:translate(-50%)translateY(0)}@media (width<=900px){.site-footer[data-astro-cid-z4jru4n3]{backdrop-filter:none;background:0 0}.site-bg-image[data-astro-cid-z4jru4n3],.site-bg-overlay[data-astro-cid-z4jru4n3],.aurora-bg[data-astro-cid-z4jru4n3]{display:none!important}}@media (width<=760px){.global-copy-toast[data-astro-cid-z4jru4n3]{left:12px;right:12px;bottom:calc(var(--layout-footer-height) + 10px);max-width:none}.global-copy-toast[data-astro-cid-z4jru4n3].bottom-center,.global-copy-toast[data-astro-cid-z4jru4n3].bottom-right{left:12px;right:12px;transform:translateY(8px)}.global-copy-toast[data-astro-cid-z4jru4n3].bottom-center.is-visible,.global-copy-toast[data-astro-cid-z4jru4n3].bottom-right.is-visible{transform:translateY(0)}.footer-inner[data-astro-cid-z4jru4n3]{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.35rem 0}.footer-meta[data-astro-cid-z4jru4n3]{flex-wrap:wrap;gap:.3rem .9rem}}
