.site-footer[data-astro-cid-bddg4lij]{z-index:1;color:#d8dee96b;text-align:center;padding:28px 24px 34px;font-size:.78rem;position:relative}.site-footer[data-astro-cid-bddg4lij] p[data-astro-cid-bddg4lij]{margin:0}.back-to-top{z-index:30;color:#d8dee999;width:42px;font:inherit;font-family:var(--font-display);text-transform:uppercase;cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:0;justify-items:center;gap:9px;padding:0;transition:opacity .26s,transform .26s,color .2s;display:grid;position:fixed;bottom:clamp(72px,13vh,132px);right:clamp(18px,2.4vw,34px);transform:translateY(12px)}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translate(0,0)}.has-modal-open .back-to-top{opacity:0;pointer-events:none;transform:translateY(12px)}.back-to-top__line{background:linear-gradient(#0000,#9cc7e847 18%,#d8dee973 50%,#9cc7e82e 82%,#0000);width:1px;height:62px;transition:height .22s,background .22s,box-shadow .22s;box-shadow:0 0 18px #9cc7e814}.back-to-top__label{writing-mode:vertical-rl;text-orientation:mixed;color:#d8dee999;letter-spacing:.2em;text-shadow:0 0 24px #070a10d1;font-size:.72rem;font-weight:560;line-height:1;transition:color .2s}.back-to-top__mark{opacity:.82;background:#9cc7e814;border:1px solid #9cc7e86b;width:6px;height:6px;transition:transform .2s,border-color .2s,background .2s,opacity .2s,box-shadow .2s;transform:rotate(45deg);box-shadow:0 0 12px #9cc7e824}.back-to-top:hover{color:#edf3fbe6}.back-to-top:hover .back-to-top__line{background:linear-gradient(#0000,#9cc7e86b 18%,#edf3fbb3 50%,#9cc7e842 82%,#0000);box-shadow:0 0 26px #9cc7e824}.back-to-top:hover .back-to-top__label{color:#edf3fbe0}.back-to-top:hover .back-to-top__mark{opacity:1;background:#9cc7e82e;border-color:#edf3fbad;transform:rotate(45deg)scale(1.12);box-shadow:0 0 18px #9cc7e852}.back-to-top.is-compact{backdrop-filter:blur(8px);background:#070c137a;border:1px solid #9cc7e824;border-radius:10px;place-items:center;gap:0;width:36px;height:36px;bottom:clamp(20px,5vh,42px);right:clamp(16px,2vw,24px);box-shadow:0 12px 34px #0000003d}.back-to-top.is-compact .back-to-top__line,.back-to-top.is-compact .back-to-top__label{display:none}.back-to-top.is-compact .back-to-top__mark{width:7px;height:7px}@media (width<=760px){.back-to-top{backdrop-filter:blur(8px);background:#0a0f1847;border-radius:10px;place-items:center;gap:0;width:34px;height:34px;bottom:18px;right:18px}.back-to-top__line,.back-to-top__label{display:none}.back-to-top__mark{width:7px;height:7px}}@media (prefers-reduced-motion:reduce){.back-to-top,.back-to-top__line,.back-to-top__label,.back-to-top__mark{transition:none}}.starfield{z-index:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 18% 18%,#9cc7e80a,#0000 28rem),radial-gradient(circle at 82% 28%,#d6a7c807,#0000 24rem),linear-gradient(#070a10 0%,#0b0f17 52%,#070a10 100%);animation:2.2s ease-out forwards starfield-reveal;position:fixed;inset:0;overflow:hidden}.starfield:before,.starfield:after{content:"";position:absolute;inset:0}.starfield:before{opacity:.12;background:radial-gradient(circle at 32% 42%,#9cc7e80b,#0000 18rem),radial-gradient(circle at 68% 58%,#d6a7c807,#0000 16rem);animation:18s ease-in-out infinite starfield-breathe}.starfield:after{opacity:.12;background-color:#0000;background-image:linear-gradient(#ffffff03 1px,#0000 1px),linear-gradient(90deg,#ffffff02 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:96px 96px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;mask-image:radial-gradient(circle,#000 0%,#0000 72%)}.starfield__canvas{width:100%;height:100%;position:absolute;inset:0}@keyframes starfield-reveal{0%{opacity:0;filter:saturate(.82)}to{opacity:1;filter:saturate()}}@keyframes starfield-breathe{0%,to{opacity:.1;transform:scale(1)}48%{opacity:.17;transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.starfield{opacity:1;animation:none}.starfield:before{opacity:.14;animation:none}}@font-face{font-family:LXGW WenKai Lite;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/wenkai.e625b48f8e58be1d.DYmc-doL.woff2)format("woff2")}@font-face{font-family:Cinzel;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_astro/cinzel.8f97d6f31da76706.BPWLrTVP.woff2)format("woff2")}@font-face{font-family:MonteCarlo;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/montecarlo.c1f0440efd703960.wYn8N8-b.woff2)format("woff2")}.glass-surface{backdrop-filter:blur(16px)saturate(.98);background:linear-gradient(#ffffff06,#ffffff02),#080c132b;border:1px solid #ffffff12;box-shadow:inset 0 1px #ffffff0b,0 18px 54px #0000002e}.glass-surface--thin{backdrop-filter:blur(10px)saturate(.92);background:linear-gradient(#ffffff02,#ffffff01),#070a100e;border-color:#ffffff08;box-shadow:inset 0 1px #ffffff05,0 8px 26px #00000012}.glass-surface--raised{background:linear-gradient(#ffffff08,#ffffff02),#0a0f1838;border-color:#ffffff15;box-shadow:inset 0 1px #ffffff0d,0 22px 72px #0000003d}.prose{color:#d8dee9cc;font-size:var(--type-prose-size);line-height:var(--type-prose-line)}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:#edf3fbe6;font-family:var(--type-prose-heading-font);font-weight:var(--type-prose-heading-weight);letter-spacing:0;scroll-margin-top:var(--site-header-clearance);line-height:1.35}.prose h2{margin:2.35em 0 .72em;font-size:clamp(1.42rem,3vw,1.92rem)}.prose h3{margin:1.9em 0 .62em;font-size:clamp(1.18rem,2.2vw,1.42rem)}.prose h4{margin:1.55em 0 .5em;font-size:1.05rem}.prose h5{color:#dce4f0d1;margin:1.42em 0 .46em;font-size:1rem;font-weight:640}.prose h6{color:#bec7d6bd;margin:1.32em 0 .42em;font-size:.98rem;font-weight:620}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin:1.18em 0}.prose p{overflow-wrap:anywhere}.prose a{color:#9cc7e8d1;text-underline-offset:.22em;text-decoration:underline #9cc7e847;transition:color .2s,text-decoration-color .2s}.prose a:hover{color:#edf3fbf0;text-decoration-color:#edf3fb94}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.38em}.prose blockquote{color:#bec7d6ad;border-left:1px solid #9cc7e847;padding:.1em 0 .1em 1.2em}.prose code{color:#edf3fbe6;font-size:.9em;font-family:var(--font-code);background:#ffffff0b;border:1px solid #ffffff0f;border-radius:6px;padding:.12em .34em}.prose pre{scrollbar-width:none;-ms-overflow-style:none;border:1px solid #ffffff0f;border-radius:8px;padding:20px 18px;overflow:auto;background:#060a11e6!important}.prose pre::-webkit-scrollbar{display:none}.prose pre code{font-family:var(--font-code);tab-size:2;background:0 0;border:0;padding:0;font-size:.88rem;line-height:1.72}.prose .code-block{margin:1.35em 0;position:relative}.prose .code-block>pre{margin:0;padding:20px 54px 20px 18px}.prose .code-block__copy{z-index:2;color:#bec7d69e;cursor:pointer;width:34px;height:34px;transition:border-color var(--motion-fast) ease, background var(--motion-fast) ease, color var(--motion-fast) ease, transform 70ms ease;background:#070b12c2;border:1px solid #9cc7e814;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.prose .code-block__copy svg{fill:none;stroke:currentColor;stroke-width:1.65px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.prose .code-block__copy:hover,.prose .code-block__copy[data-state=copied]{color:#e2eaf5e6;background:#111b28e6;border-color:#9cc7e833}.prose .code-block__copy[data-state=copied]{color:#9cc7e8f0}.prose .code-block__copy[data-state=error]{color:#d6a7c8e6;border-color:#d6a7c838}.prose .code-block__copy:active{transform:scale(.94)}.prose .code-block__copy:focus-visible{outline-offset:2px;outline:1px solid #9cc7e8c7}.prose .code-block__status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose .katex{color:#e2e9f4e0;font-size:1em}.prose .katex-display{color:#e2e9f4e0;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;overscroll-behavior-y:auto;margin:1.65em 0;padding:.65em .2em .75em;overflow:auto hidden}.prose .katex-display::-webkit-scrollbar{display:none}.prose .katex-display>.katex{min-width:max-content;display:inline-block}.prose img{filter:saturate(.86)brightness(.82);border-radius:8px;max-width:100%;height:auto;margin:2em auto;display:block}.prose .music-score{background:#080c138a;border:1px solid #9cc7e824;border-radius:10px;width:100%;max-width:760px;margin:2.2em 0;overflow:hidden}.prose .music-score__header{border-bottom:1px solid #ffffff0e;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 16px 12px;display:flex}.prose .music-score__header p{color:#bec7d6a8;letter-spacing:.08em;margin:0;font-size:.76rem;line-height:1.5}.prose .music-score__header .music-score__eyebrow{color:#9cc7e8b8;font-family:var(--font-display);letter-spacing:.18em;font-size:.7rem}.prose .music-score__header .music-score__hint{color:#bec7d67a;letter-spacing:.025em;font-size:.68rem;display:none}.prose .music-score__sr-title{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.prose .music-score__viewport{color:#e2e9f4e0;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;padding:20px 18px 18px;overflow:hidden}.prose .music-score__viewport:focus-visible{outline-offset:-3px;outline:1px solid #9cc7e8b8}.prose .music-score__viewport::-webkit-scrollbar{display:none}.prose .music-score__svg{width:100%;min-width:0;height:auto;margin:0;display:block}.prose .music-score__text{border-top:1px solid #ffffff0e}.prose .music-score__text summary{cursor:pointer;color:#9cc7e8bd;padding:12px 18px;font-size:.82rem;line-height:1.5}.prose .music-score__text summary:focus-visible{outline-offset:-3px;outline:1px solid #9cc7e8b8}.prose .music-score__text pre{background:#04070c6b;border:0;border-top:1px solid #ffffff0b;border-radius:0;margin:0;font-size:.76rem;line-height:1.75}.prose table{border-collapse:collapse;width:100%;font-size:.94rem}.prose th,.prose td{text-align:left;border-bottom:1px solid #ffffff0e;padding:10px 12px}.prose th{color:#edf3fbd1;font-weight:650}@media (width<=640px){.prose{font-size:.98rem;line-height:1.9}.prose .music-score{width:100%}.prose .music-score__header{padding-inline:14px}.prose .music-score__header .music-score__hint{display:block}.prose .music-score__viewport{padding:18px 14px 16px;overflow-x:auto}.prose .music-score__svg{width:620px;min-width:620px}}@media (prefers-reduced-motion:reduce){.prose a,.prose .code-block__copy{transition:none}}.text-display-label{font-family:var(--type-display-label-font);font-size:var(--type-display-label-size);font-weight:var(--type-display-label-weight);letter-spacing:var(--type-display-label-tracking);text-transform:uppercase}.text-hero-title{font-family:var(--type-hero-title-font);font-size:var(--type-hero-title-size);font-weight:var(--type-hero-title-weight);line-height:var(--type-hero-title-line);letter-spacing:0}.text-page-title{font-family:var(--type-index-title-font);font-size:var(--type-index-title-size);font-weight:var(--type-index-title-weight);line-height:var(--type-index-title-line);letter-spacing:0}.text-article-title{font-family:var(--type-article-title-font);font-size:var(--type-article-title-size);font-weight:var(--type-article-title-weight);line-height:var(--type-article-title-line);letter-spacing:0}.text-section-title{font-family:var(--type-section-title-font);font-size:var(--type-section-title-size);font-weight:var(--type-section-title-weight);line-height:var(--type-section-title-line);letter-spacing:0}.text-item-title{font-family:var(--type-card-title-font);font-size:var(--type-card-title-size);font-weight:var(--type-card-title-weight);line-height:var(--type-card-title-line);letter-spacing:0}.text-meta{font-family:var(--type-meta-font);font-size:var(--type-meta-size);line-height:var(--type-meta-line)}.text-prose-heading{font-family:var(--type-prose-heading-font);font-weight:var(--type-prose-heading-weight);letter-spacing:0}:root{--color-background:#070a10;--color-background-soft:#0b0f17;--color-text:#d8dee9;--color-text-strong:#edf3fb;--color-text-muted:#8b95a7;--color-accent:#9cc7e8;--color-accent-soft:#d6a7c8;--color-border:#ffffff14;--site-content-width:1080px;--site-header-block-size:64px;--site-header-clearance:28px;--site-page-top-spacing:clamp(68px, 8vw, 104px);--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-display:"Cinzel", "Trajan Pro", "Times New Roman", serif;--font-script:"MonteCarlo", "Brush Script MT", "Segoe Script", cursive;--font-cn-prose:"LXGW WenKai Lite", "KaiTi", "STKaiti", "Songti SC", serif;--font-home-prose:var(--font-cn-prose);--font-code:"Cascadia Code", "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", "Microsoft YaHei UI", monospace;--motion-ease-out:cubic-bezier(.22, 1, .36, 1);--motion-fast:.14s;--motion-medium:.22s;--font-hero-title:var(--font-body);--font-page-title:var(--font-body);--font-article-title:var(--font-body);--font-item-title:var(--font-body);--font-prose-heading:var(--font-body);--font-meta:var(--font-body);--weight-hero-title:680;--weight-page-title:600;--weight-article-title:560;--weight-item-title:650;--weight-prose-heading:660;--font-page-title-weight:var(--weight-page-title);--font-article-title-weight:var(--weight-article-title);--font-item-title-weight:var(--weight-item-title);--font-sans:var(--font-body);--font-heading:var(--font-page-title);--type-display-label-font:var(--font-display);--type-display-label-size:.72rem;--type-display-label-weight:520;--type-display-label-tracking:.14em;--type-hero-title-font:var(--font-display);--type-hero-title-size:clamp(3rem, 7vw, 4.7rem);--type-hero-title-weight:650;--type-hero-title-line:1;--type-page-title-size:clamp(1.9rem, 3vw, 2.5rem);--type-page-title-line:1.2;--type-index-title-font:var(--font-page-title);--type-index-title-size:var(--type-page-title-size);--type-index-title-weight:var(--weight-page-title);--type-index-title-line:var(--type-page-title-line);--type-article-title-font:var(--font-article-title);--type-article-title-size:var(--type-page-title-size);--type-article-title-weight:var(--weight-article-title);--type-article-title-line:var(--type-page-title-line);--type-section-title-font:var(--font-page-title);--type-section-title-size:clamp(1.18rem, 2.4vw, 1.52rem);--type-section-title-weight:620;--type-section-title-line:1.4;--type-card-title-font:var(--font-item-title);--type-card-title-size:clamp(.96rem, 1.3vw, 1.16rem);--type-card-title-weight:var(--weight-item-title);--type-card-title-line:1.28;--type-meta-font:var(--font-meta);--type-meta-size:.76rem;--type-meta-line:1.65;--type-prose-heading-font:var(--font-prose-heading);--type-prose-heading-weight:var(--weight-prose-heading);--type-prose-size:clamp(1rem, 1.4vw, 1.06rem);--type-prose-line:2}*{box-sizing:border-box}html{background:var(--color-background);min-height:100%;color:var(--color-text);color-scheme:dark;font-family:var(--font-sans);scrollbar-width:none;-ms-overflow-style:none}html.is-starfield-interacting{user-select:none}html.is-page-scroll-dragging,html.is-page-scroll-dragging *{cursor:grabbing;user-select:none}html::-webkit-scrollbar{display:none}html.is-page-scroll-locked{overflow:hidden}body{background:var(--color-background);min-height:100%;margin:0;overflow-x:hidden}body::selection{color:var(--color-text-strong);background:#9cc7e847}a{color:inherit;text-decoration:none}.site-shell{z-index:1;isolation:isolate;min-height:100vh;animation:site-page-enter var(--motion-medium) var(--motion-ease-out) backwards;position:relative}@keyframes site-page-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.site-shell{animation:none}}.site-shell:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 28%,#00000061,#0000 36rem),linear-gradient(90deg,#070a106b,#070a1014 46%,#0000 72%);position:fixed;inset:0}.site-header{z-index:10;width:min(100% - 48px, var(--site-content-width));justify-content:space-between;align-items:center;margin:20px auto 0;padding:8px 0;display:flex;position:relative}.site-header__brand,.site-header__nav{align-items:center;display:flex}.site-header__brand{color:#e8eef7d1;font-family:var(--type-display-label-font);letter-spacing:.025em;font-size:.9rem;font-weight:560}.site-header__nav{color:#dae1ecbd;font-family:var(--type-display-label-font);letter-spacing:.055em;text-transform:uppercase;gap:clamp(10px,2.2vw,24px);font-size:.84rem;font-weight:520}.site-header__divider{color:#d8dee957;font-family:var(--type-display-label-font);font-size:.86rem;font-weight:400;line-height:1}.site-header__nav a,.site-header__nav-item,.site-header__brand{transition:color .2s,opacity .45s}.site-header__nav a:hover,.site-header__brand:hover{color:#f4f8fdeb}.site-header__nav a:focus-visible,.site-header__brand:focus-visible{outline-offset:5px;border-radius:2px;outline:1px solid #9cc7e8d1}.site-header__nav-item.is-disabled{cursor:default}.page-scroll-indicator{z-index:30;cursor:grab;opacity:0;touch-action:none;width:30px;height:min(34vh,260px);padding-inline:14px;transition:opacity .28s,filter .24s;position:fixed;top:50%;right:clamp(8px,1.6vw,18px);transform:translateY(-50%)}.page-scroll-indicator:before,.page-scroll-indicator span{content:"";border-radius:999px;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.page-scroll-indicator:before{background:#9cc7e814;transition:background .24s,box-shadow .24s}.page-scroll-indicator span{transform-origin:top;transform:translateX(-50%) scaleY(var(--scroll-progress,0));background:linear-gradient(#9cc7e8bd,#d6a7c857);transition:transform .12s linear;box-shadow:0 0 18px #9cc7e829}.page-scroll-indicator.is-visible,.page-scroll-indicator:hover,.page-scroll-indicator:focus-visible{opacity:.66}.page-scroll-indicator:hover:before,.page-scroll-indicator:focus-visible:before{background:#9cc7e82e;box-shadow:0 0 18px #9cc7e81a}.page-scroll-indicator.is-dragging{cursor:grabbing;opacity:.82}.page-scroll-indicator.is-dragging span{transition:none;box-shadow:0 0 22px #9cc7e838}@media (width<=640px){:root{--site-header-block-size:52px;--site-header-clearance:24px;--site-page-top-spacing:60px}.site-header{width:min(100% - 20px, var(--site-content-width));margin-top:12px;padding:8px 0}.site-header__nav{gap:9px;font-size:.72rem}.page-scroll-indicator{display:none}}
