@charset "UTF-8";.toc{position:absolute;top:0;right:-240px;height:100%;width:240px}.toc .toc-toggle{display:none}.toc .toc-panel{position:sticky;top:80px;max-height:calc(100vh - 104px);overflow-y:auto;border-left:1px solid var(--color-border);padding-left:16px;scrollbar-width:thin;font-family:var(--global-font)}.toc .toc-title{margin-bottom:.85em;color:var(--color-gray);font-size:.85em;font-weight:700;letter-spacing:.05em}.toc ol{list-style:none;padding-inline-start:0}.toc li{position:relative;border-left:2px solid transparent;transition:border-color .2s ease,transform .2s ease}.toc li a{display:block;overflow:hidden;color:var(--color-text);padding:.25em .6em;text-overflow:ellipsis;white-space:nowrap;font-size:1em;transition:color .2s ease}.toc li.active{border-left-color:var(--color-accent);font-weight:700}.toc li.active a,.toc li:hover a{color:var(--color-accent)}.toc .h1{padding-left:0;font-size:1em;font-weight:700}.toc .h2{padding-left:8px}.toc .h3{padding-left:16px}.toc .h4{padding-left:24px}.toc .h5{padding-left:32px}.toc .h6{padding-left:40px}.toc.embedded{display:none;position:absolute;top:0;right:0;width:220px;height:64px;background:var(--color-surface);border-left:1px solid var(--color-border);pointer-events:none}.toc.embedded .toc-toggle{width:100%;height:64px;border:0;background:transparent;color:var(--color-gray);pointer-events:auto}.toc-skeleton{width:112px;height:16px;margin:24px auto}@media (max-width: 1100px){.toc:not(.embedded){display:none}.toc{top:56px;right:0;left:0;width:100%;height:56px;transform:none;background:var(--color-surface);box-shadow:0 3px 8px -5px var(--color-shadow)}.toc .toc-toggle{top:0;right:0;bottom:0;left:0;display:flex;width:100%;height:56px;align-items:center;justify-content:center;border:0;border-radius:0;padding:0 18px;background:transparent;box-shadow:none;color:var(--color-text)}.toc .toc-toggle:hover,.toc.open .toc-toggle{border-color:transparent;color:var(--color-accent)}.toc .toc-progress{text-align:center;font-size:1em;font-weight:600;color:var(--color-gray)}.toc.embedded{position:relative;top:auto;right:auto;left:auto;display:block;flex:1;min-width:0;width:auto;height:56px;border-left:0;background:transparent}.toc.embedded .toc-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0 8px;border:0;background:transparent;color:var(--color-gray);font-size:14px;pointer-events:auto}.toc.embedded .toc-skeleton{margin:20px auto}.toc .toc-toggle{position:absolute}.toc .toc-panel{position:absolute;display:none;top:56px;right:0;left:0;width:auto;transform:none;max-height:calc(100vh - 72px);border-top:1px solid var(--color-border);border-radius:0;background:var(--color-surface);pointer-events:auto}.toc.open .toc-panel{display:block}}header{position:fixed;top:0;width:100%;height:64px;display:flex;align-items:center;justify-content:space-between;background:var(--color-header);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);box-shadow:0 2px 8px var(--color-shadow);z-index:100;transition:background-color .2s ease,box-shadow .2s ease}header .header-left{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding-left:8px}header .brand{display:flex;align-items:center;gap:6px;padding:0 4px;color:var(--color-text);font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden}header .brand .brand-name{overflow:hidden;text-overflow:ellipsis}header .brand:hover{color:var(--color-accent)}header .container{position:absolute;left:50%;translate:-50%}header .menu-toggle{display:none;border:0;padding:8px;color:var(--color-gray);background:transparent;font:inherit;cursor:pointer}header .other{justify-self:right;display:flex;align-items:center;gap:12px;padding-right:8px}header .other button{color:var(--color-gray)}header .search-box{position:relative}header button.search{padding:0;border:0;color:var(--color-gray);background:transparent;font:inherit;cursor:pointer}header button.search:hover{color:var(--color-accent)}header .search-box.desktop-tool button.search{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);color:var(--color-gray);font-size:14px;transition:border-color .2s ease,color .2s ease}header .search-box.desktop-tool button.search:hover{border-color:var(--color-accent);color:var(--color-accent)}header .search-overlay{position:absolute;top:64px;right:0;left:0;height:calc(100vh - 64px);height:calc(100dvh - 64px);z-index:90;overflow-y:auto;background:#0a142873;animation:overlay-fade-in .18s ease}header .search-overlay .search-dialog{max-width:600px;margin:36px auto 0;padding:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 16px 48px #0000003d}header .search-overlay .search-dialog-input{position:relative;display:flex;align-items:center}header .search-overlay .search-dialog-input>i{position:absolute;left:16px;color:var(--color-gray)}header .search-overlay .search-dialog-input input{width:100%;padding:12px 16px 12px 42px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);color:var(--color-text);font:inherit;font-size:16px}header .search-overlay .search-dialog-input input:focus{outline:none;border-color:var(--color-accent)}header .search-overlay .search-results{margin-top:16px}header .search-overlay .search-results a{padding:12px 4px;font-size:15px}header .search-overlay .search-empty{margin-top:16px;font-size:15px}header .search-results{margin:8px 0 0;padding:0;list-style:none}header .search-results li+li{border-top:1px solid var(--color-border)}header .search-results a{display:block;padding:8px 2px}header .search-empty{margin:8px 2px 0;color:var(--color-gray);font-size:14px}header .font-switcher{position:relative;display:flex;align-items:center;color:var(--color-gray)}header button.font-toggle{padding:0;border:0;color:inherit;background:transparent;font:inherit;cursor:pointer}header button.font-toggle:hover{color:var(--color-accent)}header button.theme-toggle{display:inline-flex;align-items:center;gap:5px;border:0;padding:0;color:var(--color-gray);background:transparent;font:inherit;cursor:pointer}header button.theme-toggle:hover{color:var(--color-accent)}header .font-panel{position:absolute;top:32px;right:0;display:flex;align-items:center;gap:8px;width:max-content;padding:10px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 3px 10px #00000029}header .font-panel select{max-width:120px;border:1px solid var(--color-border);border-radius:4px;padding:4px 6px;color:var(--color-gray);background:var(--color-surface-muted);font:inherit;cursor:pointer}header .search-kbd{margin-left:6px;padding:1px 5px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface-muted);color:var(--color-gray);font-family:inherit;font-size:12px;line-height:1.6;vertical-align:middle}header .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}header .menu .font-switcher,header .menu button.search{color:var(--color-gray)}header .menu .font-switcher,header .menu .search-box{display:none}header .menu ul{margin:0;padding:0;list-style:none}header .menu li{margin:0 12px;display:inline}header .menu a{color:var(--color-gray)}header .menu a.active{color:var(--color-accent);font-weight:600}header a{color:var(--color-gray);transition:color .2s ease-out}header a:hover{color:var(--color-accent)}@media (max-width: 1100px){header{height:56px}header .container{position:static;left:auto;translate:none}header .header-left .menu-toggle{display:block}header .header-left .brand{font-size:15px}header .search-kbd{display:none}header .menu{position:absolute;top:56px;right:0;left:0;height:calc(100vh - 56px);height:calc(100dvh - 56px);z-index:80;display:none;overflow-y:auto;padding:8px 16px 40px;background:var(--color-surface)}header .menu.open{display:block;animation:nav-screen-in .2s ease}header .menu .font-switcher,header .menu .search-box{position:relative;top:auto;right:auto;display:block;margin-top:8px}header .menu .search-box input{box-sizing:border-box;width:100%;padding:10px 16px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);color:var(--color-text);font:inherit;font-size:15px}header .menu .search-box input:focus{border-color:var(--color-accent);outline:none}header .menu .search-results a{padding:10px 4px;font-size:15px}header .menu .font-toggle{display:block;width:100%;padding:12px 8px;text-align:left;font-size:15px}header .menu .font-panel{position:static;width:auto;margin:0 8px 6px;box-shadow:none}header .menu li{display:block;margin:0}header .menu li+li{border-top:1px solid var(--color-border)}header .menu a{display:block;padding:12px 8px}header .other{gap:8px;padding-right:8px}header .other .font-switcher.desktop-tool{display:none}header .other .search-box.desktop-tool button.search{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%}header .other .search-box.desktop-tool .search-label,header .other .search-box.desktop-tool .search-kbd{display:none}header button.theme-toggle{padding:8px 4px;font-size:14px}header .theme-label{display:none}header .search-overlay{display:none}header .font-panel{top:44px;right:-4px}}@keyframes nav-screen-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.glitch{display:block;position:relative;font-weight:700;font-size:80px;color:#fff;text-shadow:rgba(0,0,0,.2) 4px 4px 8px}.glitch:before{content:attr(data-text);position:absolute;top:0;width:100%;clip:rect(0,0,0,0);left:-1px;text-shadow:1px 0 #67e8f9}.glitch:after{content:attr(data-text);position:absolute;top:0;width:100%;clip:rect(0,0,0,0);left:1px;text-shadow:-1px 0 #00a7e0}.glitch:hover:before{text-shadow:4px 0 #67e8f9;animation:glitch-loop-1 .8s infinite ease-in-out alternate-reverse}.glitch:hover:after{text-shadow:-4px 0 #00a7e0;animation:glitch-loop-2 .8s infinite ease-in-out alternate-reverse}@media (max-width: 720px){.glitch{font-size:48px}}@keyframes glitch-loop-1{0%{clip:rect(36px,9999px,9px,0)}25%{clip:rect(25px,9999px,99px,0)}50%{clip:rect(50px,9999px,102px,0)}75%{clip:rect(30px,9999px,92px,0)}to{clip:rect(91px,9999px,98px,0)}}@keyframes glitch-loop-2{0%{top:-1px;left:1px;clip:rect(65px,9999px,119px,0)}25%{top:-6px;left:4px;clip:rect(79px,9999px,19px,0)}50%{top:-3px;left:2px;clip:rect(68px,9999px,11px,0)}75%{top:0;left:-4px;clip:rect(95px,9999px,53px,0)}to{top:-1px;left:-1px;clip:rect(31px,9999px,149px,0)}}.banner{position:relative;overflow:hidden;height:60vh;display:flex;justify-content:center;align-items:center;--banner-star: rgba(71, 85, 105, .5);--banner-star-cool: rgba(59, 130, 246, .55);--banner-star-warm: rgba(217, 119, 6, .5);--banner-galaxy: radial-gradient(ellipse 110% 34% at 46% 42%, rgba(129, 140, 248, .18), transparent 68%);--banner-nebula-violet: rgba(139, 92, 246, .12);--banner-nebula-cyan: rgba(34, 211, 238, .1);--banner-nebula-pink: rgba(244, 114, 182, .1);--banner-shoot-bg: linear-gradient(90deg, rgba(51, 65, 85, 0), rgba(51, 65, 85, .6));--banner-moon-bg: radial-gradient(circle at 32% 32%, #ffffff, #fef3c7 55%, #fcd34d 100%);--banner-moon-shadow-from: rgba(251, 191, 36, .35);--banner-moon-shadow-to: rgba(251, 191, 36, .6);--banner-text: rgba(30, 41, 59, .88);--banner-quote: #6366f1;--banner-border: rgba(79, 70, 229, .5);--banner-glitch-color: #1e293b;--banner-glitch-shadow: rgba(255, 255, 255, .4) 4px 4px 8px;--banner-title-shadow: rgba(255, 255, 255, .35) 2px 2px 10px;background:radial-gradient(ellipse at 85% 8%,rgba(253,186,116,.28),transparent 38%),radial-gradient(ellipse at 22% 16%,rgba(129,140,248,.18),transparent 46%),radial-gradient(ellipse at 82% 80%,rgba(56,189,248,.16),transparent 50%),linear-gradient(180deg,#dbeafe,#c7d2fe 38%,#ddd6fe 72%,#f5f3ff)}.banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,var(--color-background) 100%)}.stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:50%}.stars-far{width:2px;height:2px}.stars-mid{width:3px;height:3px}.stars-near{width:4px;height:4px}.far-a{box-shadow:1881px 160px 0 .5px var(--banner-star),1987px 800px 0 .5px var(--banner-star-cool),511px 322px 0 1px var(--banner-star),1161px 125px 0 .5px var(--banner-star),1615px 99px 0 1px var(--banner-star),977px 256px 0 .5px var(--banner-star),998px 217px 0 .5px var(--banner-star),1292px 812px 0 .5px var(--banner-star),90px 50px 0 .5px var(--banner-star-warm),1994px 967px 0 .5px var(--banner-star-warm),1770px 71px 0 1px var(--banner-star-cool),1110px 366px 0 1px var(--banner-star-cool),1438px 617px 0 1px var(--banner-star-warm),1633px 632px 0 .5px var(--banner-star-warm),1806px 461px 0 1px var(--banner-star),1638px 93px 0 1px var(--banner-star-cool),1447px 724px 0 1px var(--banner-star),987px 78px 0 1px var(--banner-star),81px 213px 0 1px var(--banner-star-cool),269px 211px 0 .5px var(--banner-star),1997px 623px 0 1px var(--banner-star),666px 299px 0 1px var(--banner-star),29px 249px 0 1px var(--banner-star),826px 250px 0 1px var(--banner-star),1069px 676px 0 1px var(--banner-star),133px 384px 0 1px var(--banner-star),950px 94px 0 1px var(--banner-star),837px 682px 0 1px var(--banner-star-cool),1757px 21px 0 .5px var(--banner-star),546px 519px 0 1px var(--banner-star-cool),911px 53px 0 1px var(--banner-star),128px 962px 0 .5px var(--banner-star),1771px 240px 0 1px var(--banner-star-cool),1652px 904px 0 1px var(--banner-star),1851px 294px 0 1px var(--banner-star),983px 199px 0 .5px var(--banner-star),1520px 239px 0 1px var(--banner-star),1933px 664px 0 .5px var(--banner-star-cool),1864px 867px 0 1px var(--banner-star),936px 469px 0 .5px var(--banner-star-warm),805px 149px 0 1px var(--banner-star),1836px 529px 0 1px var(--banner-star),407px 179px 0 1px var(--banner-star),1650px 610px 0 1px var(--banner-star),347px 805px 0 .5px var(--banner-star),1603px 312px 0 .5px var(--banner-star),257px 195px 0 .5px var(--banner-star),7px 702px 0 .5px var(--banner-star-warm),798px 896px 0 1px var(--banner-star),1393px 595px 0 .5px var(--banner-star),1437px 839px 0 .5px var(--banner-star),39px 549px 0 .5px var(--banner-star),1058px 754px 0 .5px var(--banner-star),1356px 799px 0 1px var(--banner-star),848px 650px 0 1px var(--banner-star),1029px 149px 0 1px var(--banner-star),645px 646px 0 1px var(--banner-star),699px 770px 0 1px var(--banner-star-cool),1370px 985px 0 .5px var(--banner-star),1175px 693px 0 .5px var(--banner-star-cool),271px 828px 0 .5px var(--banner-star-warm),1121px 65px 0 1px var(--banner-star),260px 757px 0 1px var(--banner-star-cool),431px 560px 0 1px var(--banner-star),225px 810px 0 1px var(--banner-star),930px 944px 0 .5px var(--banner-star-cool),1599px 734px 0 1px var(--banner-star),1508px 883px 0 .5px var(--banner-star-cool),1115px 123px 0 1px var(--banner-star),1648px 222px 0 1px var(--banner-star),529px 504px 0 .5px var(--banner-star-cool),1238px 418px 0 1px var(--banner-star),1680px 603px 0 .5px var(--banner-star),910px 242px 0 1px var(--banner-star),1964px 751px 0 .5px var(--banner-star),417px 635px 0 .5px var(--banner-star),1179px 979px 0 1px var(--banner-star-warm),1250px 602px 0 .5px var(--banner-star-cool),1681px 629px 0 1px var(--banner-star),578px 237px 0 .5px var(--banner-star),1875px 854px 0 1px var(--banner-star),387px 444px 0 1px var(--banner-star),1535px 888px 0 .5px var(--banner-star),411px 987px 0 1px var(--banner-star),1687px 505px 0 .5px var(--banner-star),202px 40px 0 1px var(--banner-star),180px 529px 0 .5px var(--banner-star),1036px 691px 0 .5px var(--banner-star),221px 772px 0 .5px var(--banner-star),1101px 665px 0 .5px var(--banner-star);animation:twinkle 6.5s ease-in-out infinite alternate}.far-b{box-shadow:974px 937px 0 1px var(--banner-star-warm),837px 589px 0 .5px var(--banner-star-cool),252px 111px 0 .5px var(--banner-star),1951px 633px 0 .5px var(--banner-star),1962px 910px 0 1px var(--banner-star),954px 69px 0 .5px var(--banner-star),1649px 561px 0 .5px var(--banner-star-warm),1640px 652px 0 .5px var(--banner-star),286px 352px 0 .5px var(--banner-star),1428px 245px 0 1px var(--banner-star),479px 675px 0 1px var(--banner-star-warm),123px 619px 0 1px var(--banner-star),1640px 634px 0 1px var(--banner-star),295px 334px 0 1px var(--banner-star-cool),477px 292px 0 1px var(--banner-star-warm),566px 429px 0 1px var(--banner-star-cool),1455px 230px 0 .5px var(--banner-star-warm),1877px 430px 0 1px var(--banner-star),1031px 143px 0 1px var(--banner-star-cool),1175px 423px 0 1px var(--banner-star),1365px 126px 0 1px var(--banner-star-cool),333px 406px 0 1px var(--banner-star),716px 622px 0 1px var(--banner-star-cool),1534px 229px 0 .5px var(--banner-star),1518px 881px 0 .5px var(--banner-star),857px 63px 0 .5px var(--banner-star-cool),1727px 629px 0 1px var(--banner-star),1563px 203px 0 1px var(--banner-star),1073px 950px 0 1px var(--banner-star),1008px 160px 0 .5px var(--banner-star-cool),400px 997px 0 .5px var(--banner-star-warm),1811px 788px 0 .5px var(--banner-star),1869px 318px 0 .5px var(--banner-star),1477px 197px 0 .5px var(--banner-star-cool),1675px 526px 0 1px var(--banner-star),524px 473px 0 1px var(--banner-star-cool),1245px 33px 0 1px var(--banner-star-warm),1987px 681px 0 1px var(--banner-star),1682px 766px 0 1px var(--banner-star),1857px 686px 0 .5px var(--banner-star-warm),807px 372px 0 .5px var(--banner-star),823px 612px 0 1px var(--banner-star),1996px 147px 0 .5px var(--banner-star),328px 609px 0 .5px var(--banner-star-cool),1782px 433px 0 .5px var(--banner-star),1536px 790px 0 1px var(--banner-star),337px 489px 0 1px var(--banner-star),844px 57px 0 .5px var(--banner-star),1314px 1000px 0 .5px var(--banner-star),972px 986px 0 .5px var(--banner-star-cool),1971px 177px 0 .5px var(--banner-star-cool),1426px 599px 0 1px var(--banner-star-warm),141px 159px 0 .5px var(--banner-star),1249px 985px 0 1px var(--banner-star-warm),833px 753px 0 .5px var(--banner-star),661px 506px 0 1px var(--banner-star-warm),459px 942px 0 .5px var(--banner-star),1974px 704px 0 1px var(--banner-star),1440px 340px 0 .5px var(--banner-star),1541px 642px 0 1px var(--banner-star),252px 216px 0 1px var(--banner-star),1649px 677px 0 1px var(--banner-star),1982px 540px 0 .5px var(--banner-star),592px 445px 0 .5px var(--banner-star-cool),183px 161px 0 .5px var(--banner-star-warm),499px 239px 0 1px var(--banner-star),913px 403px 0 1px var(--banner-star-cool),1588px 765px 0 .5px var(--banner-star-warm),1187px 663px 0 1px var(--banner-star),1304px 606px 0 .5px var(--banner-star),1550px 406px 0 .5px var(--banner-star),1178px 437px 0 1px var(--banner-star),1570px 319px 0 .5px var(--banner-star-warm),140px 777px 0 1px var(--banner-star),1460px 863px 0 1px var(--banner-star-cool),1280px 221px 0 1px var(--banner-star),374px 64px 0 1px var(--banner-star),1090px 222px 0 .5px var(--banner-star-cool),1508px 720px 0 .5px var(--banner-star),1151px 271px 0 .5px var(--banner-star-warm),1441px 328px 0 1px var(--banner-star),1263px 727px 0 .5px var(--banner-star-cool),1422px 78px 0 1px var(--banner-star),1877px 438px 0 1px var(--banner-star),578px 419px 0 .5px var(--banner-star-warm),465px 661px 0 1px var(--banner-star),177px 816px 0 1px var(--banner-star),469px 96px 0 .5px var(--banner-star),1468px 378px 0 1px var(--banner-star),482px 132px 0 1px var(--banner-star);animation:twinkle 5s ease-in-out -2.7s infinite alternate-reverse}.mid-a{box-shadow:1010px 400px 0 1px var(--banner-star),670px 566px 0 .5px var(--banner-star),508px 326px 0 1px var(--banner-star),717px 392px 0 1px var(--banner-star),778px 208px 0 1px var(--banner-star),641px 29px 0 1px var(--banner-star),1076px 594px 0 1px var(--banner-star-warm),870px 421px 0 .5px var(--banner-star),827px 197px 0 .5px var(--banner-star),707px 892px 0 1px var(--banner-star),1067px 783px 0 .5px var(--banner-star),1354px 109px 0 .5px var(--banner-star-warm),1103px 221px 0 .5px var(--banner-star-warm),67px 227px 0 1px var(--banner-star),960px 336px 0 1px var(--banner-star),754px 162px 0 .5px var(--banner-star),703px 810px 0 1px var(--banner-star-cool),1041px 528px 0 .5px var(--banner-star),327px 829px 0 .5px var(--banner-star),1454px 831px 0 .5px var(--banner-star),277px 329px 0 1px var(--banner-star),751px 222px 0 1px var(--banner-star),271px 719px 0 .5px var(--banner-star),298px 331px 0 1px var(--banner-star),1917px 88px 0 .5px var(--banner-star-cool),643px 677px 0 .5px var(--banner-star),1818px 636px 0 1px var(--banner-star),639px 168px 0 .5px var(--banner-star),1839px 564px 0 1px var(--banner-star-cool),122px 540px 0 1px var(--banner-star-cool),1229px 472px 0 1px var(--banner-star),410px 747px 0 .5px var(--banner-star),1299px 108px 0 .5px var(--banner-star),344px 190px 0 1px var(--banner-star),684px 206px 0 1px var(--banner-star),595px 978px 0 1px var(--banner-star),452px 969px 0 1px var(--banner-star),1710px 541px 0 1px var(--banner-star),1324px 950px 0 1px var(--banner-star-cool),395px 395px 0 .5px var(--banner-star);animation:twinkle 5.2s ease-in-out infinite alternate}.mid-b{box-shadow:769px 979px 0 1px var(--banner-star),948px 808px 0 1px var(--banner-star-warm),477px 615px 0 1px var(--banner-star),1399px 553px 0 1px var(--banner-star),1937px 872px 0 .5px var(--banner-star),25px 17px 0 1px var(--banner-star),179px 496px 0 .5px var(--banner-star-cool),1140px 608px 0 1px var(--banner-star-warm),1137px 419px 0 1px var(--banner-star),444px 811px 0 .5px var(--banner-star),259px 426px 0 .5px var(--banner-star-cool),285px 613px 0 1px var(--banner-star-warm),459px 590px 0 1px var(--banner-star),182px 655px 0 1px var(--banner-star),900px 953px 0 1px var(--banner-star),558px 504px 0 .5px var(--banner-star),1134px 712px 0 .5px var(--banner-star),670px 728px 0 1px var(--banner-star),1460px 234px 0 .5px var(--banner-star),752px 342px 0 1px var(--banner-star),84px 506px 0 .5px var(--banner-star-cool),1419px 267px 0 .5px var(--banner-star),1149px 162px 0 1px var(--banner-star),1105px 694px 0 1px var(--banner-star),1518px 108px 0 1px var(--banner-star),1769px 321px 0 .5px var(--banner-star),1954px 575px 0 .5px var(--banner-star-warm),737px 449px 0 .5px var(--banner-star),1038px 173px 0 1px var(--banner-star),819px 727px 0 1px var(--banner-star),1734px 521px 0 1px var(--banner-star),200px 355px 0 1px var(--banner-star),1929px 488px 0 .5px var(--banner-star),1037px 446px 0 .5px var(--banner-star-warm),151px 158px 0 .5px var(--banner-star-warm),1254px 1000px 0 1px var(--banner-star),1517px 357px 0 .5px var(--banner-star),1121px 564px 0 1px var(--banner-star-cool),1644px 5px 0 .5px var(--banner-star),494px 483px 0 .5px var(--banner-star);animation:twinkle 3.8s ease-in-out -2.1s infinite alternate-reverse}.near-a{box-shadow:724px 991px 0 1px var(--banner-star),1103px 988px 0 1px var(--banner-star),1464px 984px 0 .5px var(--banner-star),712px 357px 0 .5px var(--banner-star),1733px 99px 0 1px var(--banner-star),1305px 487px 0 1px var(--banner-star),210px 30px 0 1px var(--banner-star-cool),676px 381px 0 1px var(--banner-star-warm),422px 963px 0 1px var(--banner-star),1160px 524px 0 .5px var(--banner-star),1661px 154px 0 1px var(--banner-star),844px 1px 0 .5px var(--banner-star),46px 161px 0 .5px var(--banner-star),1149px 794px 0 1px var(--banner-star),225px 523px 0 1px var(--banner-star);animation:twinkle 4.2s ease-in-out infinite alternate}.near-b{box-shadow:923px 591px 0 .5px var(--banner-star),1857px 20px 0 1px var(--banner-star),1521px 325px 0 .5px var(--banner-star),439px 60px 0 1px var(--banner-star-warm),1603px 764px 0 1px var(--banner-star),952px 97px 0 .5px var(--banner-star-cool),524px 794px 0 1px var(--banner-star-cool),570px 170px 0 .5px var(--banner-star-cool),17px 184px 0 .5px var(--banner-star),177px 157px 0 1px var(--banner-star),760px 228px 0 .5px var(--banner-star-warm),299px 761px 0 .5px var(--banner-star),1259px 147px 0 .5px var(--banner-star-warm),217px 920px 0 1px var(--banner-star-cool),1251px 475px 0 .5px var(--banner-star-cool);animation:twinkle 3.2s ease-in-out -1.6s infinite alternate-reverse}.galaxy{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:var(--banner-galaxy);transform:rotate(-22deg) scale(1.3)}.nebula{position:absolute;border-radius:50%;filter:blur(30px);pointer-events:none}.nebula-violet{top:-18%;left:-12%;width:60vw;aspect-ratio:1;background:radial-gradient(circle,var(--banner-nebula-violet),transparent 65%);animation:nebula-drift 26s ease-in-out infinite alternate}.nebula-cyan{bottom:-24%;right:-8%;width:52vw;aspect-ratio:1;background:radial-gradient(circle,var(--banner-nebula-cyan),transparent 65%);animation:nebula-drift 34s ease-in-out -8s infinite alternate-reverse}.nebula-pink{top:32%;left:44%;width:44vw;aspect-ratio:1;background:radial-gradient(circle,var(--banner-nebula-pink),transparent 65%);animation:nebula-drift 40s ease-in-out -16s infinite alternate}.moon{position:absolute;top:11%;right:14%;width:84px;height:84px;border-radius:50%;background:var(--banner-moon-bg);animation:moon-glow 6s ease-in-out infinite alternate}.moon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 30% 34%,rgba(0,0,0,.07),transparent 16%),radial-gradient(circle at 62% 58%,rgba(0,0,0,.06),transparent 14%),radial-gradient(circle at 80% 26%,rgba(0,0,0,.05),transparent 11%)}.shooting-star{position:absolute;top:14%;left:68%;width:150px;height:2px;border-radius:2px;background:var(--banner-shoot-bg);opacity:0;transform:rotate(-38deg);animation:shoot 9s ease-in infinite}.shooting-star-2{top:16%;left:6%;width:220px;transform:rotate(38deg);animation:shoot-2 13s ease-in 6s infinite}.info{position:relative;z-index:1;width:min(860px,100%);margin:0 auto;padding:0 24px;font-family:var(--global-font);display:flex;flex-direction:column;align-items:flex-start}.motto{position:relative;margin:28px 0 0 8px;padding-left:18px;border-left:3px solid var(--banner-border);color:var(--banner-text);font-size:17px;line-height:1.8;font-weight:500;min-height:1.8em}.motto .fa-quote-left{margin-right:8px;font-size:14px;vertical-align:2px;color:var(--banner-quote)}.motto .motto-text{white-space:pre-wrap;word-break:break-word}.motto .caret{display:inline-block;width:2px;height:1.1em;margin-left:3px;vertical-align:-3px;background:var(--banner-text);animation:caret-blink 1.1s step-end infinite}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}.banner.article-banner{height:400px;margin-top:64px;align-items:flex-end}.banner.article-banner .article-banner-content{position:relative;z-index:1;width:min(800px,100%);margin:0 auto;padding:0 .5em 20px}html[data-theme=dark] .banner{--banner-star: rgba(255, 255, 255, .9);--banner-star-cool: rgba(147, 197, 253, .95);--banner-star-warm: rgba(253, 230, 138, .9);--banner-galaxy: radial-gradient(ellipse 110% 34% at 46% 42%, rgba(255, 255, 255, .14), rgba(226, 232, 240, .04) 45%, transparent 70%);--banner-nebula-violet: rgba(99, 102, 241, .28);--banner-nebula-cyan: rgba(34, 211, 238, .16);--banner-nebula-pink: rgba(244, 114, 182, .12);--banner-shoot-bg: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff);--banner-moon-bg: radial-gradient(circle at 32% 32%, #ffffff, #e0e7ff 55%, #a5b4fc 100%);--banner-moon-shadow-from: rgba(165, 180, 252, .4);--banner-moon-shadow-to: rgba(165, 180, 252, .6);--banner-text: rgba(226, 232, 240, .92);--banner-quote: #a5b4fc;--banner-border: rgba(199, 210, 254, .7);--banner-glitch-color: #fff;--banner-glitch-shadow: rgba(0, 0, 0, .2) 4px 4px 8px;--banner-title-shadow: 2px 2px 10px black;background:radial-gradient(ellipse at 22% 16%,rgba(129,140,248,.22),transparent 46%),radial-gradient(ellipse at 82% 80%,rgba(56,189,248,.16),transparent 50%),linear-gradient(180deg,#020617,#0b1035 42%,#1e1b4b 78%,#312e81)}.banner .glitch{color:var(--banner-glitch-color);text-shadow:var(--banner-glitch-shadow)}.banner.article-banner .titlebox,.banner.article-banner .title{color:var(--banner-glitch-color);text-shadow:var(--banner-title-shadow)}.banner.article-banner .info{color:var(--banner-text);text-shadow:none}@media (max-width: 1100px){.banner .info{padding:0 16px}.banner .motto{font-size:14px;line-height:1.7}.banner.article-banner{height:auto;min-height:240px;margin-top:56px}.banner.article-banner .article-banner-content{padding:32px 12px 28px;box-sizing:border-box}}@keyframes twinkle{0%{opacity:.35}to{opacity:1}}@keyframes moon-glow{0%{box-shadow:0 0 32px 10px var(--banner-moon-shadow-from)}to{box-shadow:0 0 56px 18px var(--banner-moon-shadow-to)}}@keyframes shoot{0%,12%{opacity:0;transform:translate(0) rotate(-38deg)}14%{opacity:1}22%{opacity:0;transform:translate(-60vw,38vw) rotate(-38deg)}to{opacity:0;transform:translate(-60vw,38vw) rotate(-38deg)}}@keyframes shoot-2{0%,20%{opacity:0;transform:translate(0) rotate(38deg)}22.5%{opacity:1}31%{opacity:0;transform:translate(52vw,46vw) rotate(38deg)}to{opacity:0;transform:translate(52vw,46vw) rotate(38deg)}}@keyframes nebula-drift{0%{transform:translate(-2%,-2%) scale(.95)}to{transform:translate(3%,3%) scale(1.08)}}@media (prefers-reduced-motion: reduce){.banner .stars,.banner .moon,.banner .shooting-star,.banner .nebula,.banner .caret{animation:none}}.giscus-container{margin:2rem 0}.abanner{height:400px;width:100%;background-size:cover;background-position:center center;margin-top:64px;position:relative}.abanner .titlebox{position:absolute;max-width:800px;margin-left:auto;margin-right:auto;left:0;right:0;bottom:20px;text-shadow:2px 2px 10px black;color:#fff}.abanner .titlebox,.article-banner .titlebox{color:#fff;text-shadow:2px 2px 10px black}.abanner .title,.article-banner .title{margin-bottom:.5em;color:#fff;font-size:32px;line-height:1.3;overflow-wrap:anywhere}.abanner .info,.article-banner .info{font-size:14px}.abanner .title-skeleton,.article-banner .title-skeleton{width:min(68%,520px);height:42px;margin-bottom:16px}.abanner .info-skeleton,.article-banner .info-skeleton{width:min(52%,360px);height:16px}.article{position:relative;max-width:800px;margin:auto}.article.without-banner{padding-top:64px}.article .content{margin:.5em}.article .nav{display:flex;justify-content:space-between}.content{color:var(--color-text)}.content a{color:var(--color-accent-strong);position:relative;transition:color .2s ease-out}.content a.header-anchor{float:left;margin-top:.125em;margin-left:-.87em;padding-right:.23em;font-size:.85em;opacity:0}.content a:hover{color:var(--color-accent)}.content a:hover:after{transform:scaleX(1);transform-origin:left}.content a:after{content:"";position:absolute;transform:scaleX(0);width:100%;height:2px;bottom:0;left:0;background-color:var(--color-accent);transition:transform .2s ease-out;transform-origin:right}.content h1:hover .header-anchor,.content h2:hover .header-anchor,.content h3:hover .header-anchor,.content h4:hover .header-anchor,.content h5:hover .header-anchor,.content h6:hover .header-anchor{opacity:1}.content h2{padding-bottom:.3em;margin-bottom:1em;border-bottom:1px dashed var(--color-border)}.content p{line-height:1.5em}.content blockquote{margin:1rem 0;padding:.1rem 1rem;border-left:4px solid var(--color-accent);color:var(--color-accent-strong);background:var(--color-accent-soft)}.content blockquote p{margin:.35em 0}.content table{display:block;width:100%;margin:1rem 0;overflow-x:auto;border-collapse:collapse}.content th,.content td{padding:8px 12px;border:1px solid var(--color-border);text-align:left}.content th{background:var(--color-accent-soft)}.content img{height:auto;margin:1rem auto}.content ul,.content ol{margin:1rem 0;padding-left:2em}.content ul{list-style:disc}.content ol{list-style:decimal}.content li{margin-block-end:.3em}.content .contains-task-list{padding-left:0;list-style:none}.content .task-list-item{list-style:none}.content .task-list-item input[type=checkbox]{margin:0 .45em .15em 0;accent-color:var(--color-accent);vertical-align:middle}.article-skeleton{display:grid;gap:12px;min-height:420px;align-content:start;padding-top:1rem}.article-skeleton .skeleton-heading{width:min(58%,420px);height:34px;margin-bottom:8px}.article-skeleton .skeleton-subheading{width:min(42%,300px);height:24px;margin:22px 0 4px}.article-skeleton .skeleton-line{height:15px}.katex-display{overflow:auto hidden}@media (max-width: 1100px){.article{padding-right:12px;padding-left:12px}.article.without-banner{padding-top:56px}.article .content{margin-right:0;margin-left:0}.article .markdown-annotation .annotation-tooltip{position:static;width:auto;max-width:none;margin-top:.35em;transform:none}.article .markdown-annotation:hover .annotation-tooltip,.article .markdown-annotation:focus .annotation-tooltip,.article .markdown-annotation:focus-within .annotation-tooltip{display:block}.abanner{margin-top:56px;display:flex;height:auto;min-height:240px;align-items:flex-end}.abanner .titlebox{position:relative;width:100%;margin:0 auto;padding:32px 12px 28px;box-sizing:border-box}.abanner .title,.article-banner .title{font-size:clamp(24px,7vw,30px)}.abanner .info,.article-banner .info{line-height:1.6}.navbox{margin:12px 0;grid-template-columns:36px minmax(0,1fr)}.navbox:before{min-height:44px}.navbox>.custom-block-title,.navbox>p{padding:10px}}.navbox{display:grid;grid-template-columns:40px minmax(0,1fr);margin:12px 0;padding:0;overflow:hidden;background:#f9ffea;border:1px solid #dceebd;border-left:0;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.navbox:before{content:"";display:flex;align-items:center;justify-content:center;align-self:stretch;min-height:48px;grid-row:1/-1;grid-column:1;background-color:#b9e66b;color:#84b63c;font-family:"Font Awesome 6 Free";font-size:18px;font-weight:900}.navbox>.custom-block-title,.navbox>p{margin:0;grid-column:2;padding:12px 12px 0}.navbox>.custom-block-title{padding-right:0}.navbox>:last-child{padding-bottom:12px}.navbox a{color:#4f8f3a}.navbox a:after{background-color:#84b63c}.navbox a:hover{color:#84b63c}.custom-block.tip,.custom-block.info,.custom-block.warning,.custom-block.danger{margin:1rem 0;border-left:.5rem solid;padding:.1rem 1.5rem;overflow-x:auto}.custom-block.tip{background-color:#f3f5f7;border-color:#3eaf7c}.custom-block.info{background-color:#f3f5f7;border-color:#476582}.custom-block.warning{border-color:#e7c000;color:#6b5900;background-color:#fff7d0}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.danger{border-color:#c00;color:#4d0000;background-color:#ffe6e6}.custom-block.danger .custom-block-title{color:#900000}.custom-block-title{font-weight:700}.markdown-alert{margin:1rem 0;padding:.6rem 1rem;border-left:.4rem solid;border-radius:3px;color:var(--color-text);background:#f6f8fa}.markdown-alert-title{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font-weight:700}.markdown-alert-title .octicon{flex:0 0 auto;fill:currentColor}.markdown-alert>p:last-child{margin:.5rem 0 .2rem}.markdown-alert-note{border-color:#0969da;background:#e5f3ff}.markdown-alert-tip{border-color:#1a7f37;background:#e3f8e8}.markdown-alert-important{border-color:#8250df;background:#f5edff}.markdown-alert-warning{border-color:#9a6700;background:#fff3bf}.markdown-alert-caution{border-color:#cf222e;background:#ffebe7}.markdown-annotation{position:relative;display:inline-block;cursor:help;color:var(--color-accent-strong);font-weight:600;text-decoration:underline dotted var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px}.markdown-annotation .annotation-tooltip{position:absolute;z-index:2;bottom:calc(100% + 6px);left:50%;display:none;width:max-content;max-width:min(320px,80vw);padding:6px 9px;transform:translate(-50%);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);background:#fff;box-shadow:0 2px 8px #0000002e;font-size:.85em;line-height:1.4;white-space:normal;overflow-wrap:anywhere;pointer-events:auto;text-decoration:none;font-weight:400}.markdown-annotation .annotation-tooltip a{overflow-wrap:anywhere;word-break:break-word}.markdown-annotation:before{content:"";position:absolute;right:0;bottom:100%;left:0;height:6px}.markdown-annotation:hover .annotation-tooltip,.markdown-annotation:focus .annotation-tooltip,.markdown-annotation:focus-within .annotation-tooltip{display:block}.bilibili-video-card{width:100%;margin:1.75rem auto;padding:5px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-muted);box-shadow:0 8px 24px var(--color-shadow);overflow:hidden}.bilibili-video-wrapper{position:relative;width:100%;padding-bottom:56.25%;border-radius:6px;background:var(--color-surface);overflow:hidden}.bilibili-video-wrapper iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}@media (max-width: 600px){.bilibili-video-card{margin:1.25rem auto;padding:3px;border-radius:8px}.bilibili-video-wrapper{border-radius:5px}}.content :not(pre)>code{font-size:var(--code-font-size);border-radius:4px;padding:.2em .4em;background-color:#1b1f230d;color:var(--color-accent-strong)}html[data-theme=dark] .content :not(pre)>code{color:#99f6e4;background-color:#343b43;box-shadow:inset 0 0 0 1px #4b5661}html{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}div[class*=language-]{position:relative;line-height:var(--code-line-height);font-size:var(--code-font-size);font-family:var(--code-font-family);display:flex;flex-direction:row-reverse;border-radius:8px;border:1px solid var(--color-border);padding-top:32px;overflow:hidden}div[class*=language-] button.copy{position:absolute;top:8px;right:8px;justify-content:center;align-items:center;width:40px;height:40px;background-color:#fff;background-image:var(--vp-icon-copy);background-repeat:no-repeat;background-position:50%;border-radius:4px;opacity:0;border:1px solid var(--color-border)}div[class*=language-]:hover button.copy{opacity:1}div[class*=language-] .lang{position:absolute;transform:translate(-50%,-28px);left:50%;-webkit-user-select:none;user-select:none}div[class*=language-] pre{margin:0 0 0 16px;flex-grow:1;overflow:scroll}div[class*=language-] code{background-color:transparent;padding:0}div[class*=language-]:before{content:"";position:absolute;left:0;right:0;top:0;height:32px;background:#f6f8fa;border-bottom:1px solid var(--color-border)}div[class*=language-]:after{content:"";position:absolute;top:10px;left:12px;width:12px;height:12px;border-radius:50%;background:#fc625d;box-shadow:20px 0 #fdbc40,40px 0 #35cd4b}.line-numbers-wrapper{padding-left:16px;color:var(--color-gray);-webkit-user-select:none;user-select:none}.bloglist{max-width:800px;margin:auto}.bloglist .section{padding-top:24px}.bloglist .date,.bloglist .view,.bloglist .tags{font-size:14px}.bloglist .fa{font-size:16px}.bloglist .card{color:var(--color-gray);margin:20px 0;padding:24px;border-radius:10px;box-shadow:0 1px 20px -6px #00000080;transition:box-shadow .3s ease;break-inside:avoid}.bloglist .card:hover{box-shadow:0 5px 10px 5px #0003}.bloglist .image{height:170px;margin:-24px -24px 16px;border-radius:10px 10px 0 0;background-size:cover;background-position:center;background-repeat:no-repeat}.bloglist .title{color:var(--color-text);font-size:24px;margin:20px 0;transition:color .2s ease-out}.bloglist .title:hover{color:var(--color-accent)}.bloglist .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.bloglist .tags a{display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);border-radius:4px;padding:.15rem .45rem;color:var(--color-accent-strong);background:var(--color-accent-soft);font-size:12px;text-decoration:none;white-space:nowrap;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.bloglist .tags a:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}@media (min-width: 1200px){.bloglist{max-width:1200px;columns:2;column-gap:24px}.bloglist .section{column-span:all}.bloglist .card{margin:0 0 24px}}@media (min-width: 1600px){.bloglist{max-width:1560px;columns:3}}@media (max-width: 1100px){.bloglist .section{margin:0 12px 12px}.bloglist .card{margin:0 12px 12px;padding:16px;border-radius:10px;box-shadow:0 1px 20px -6px #00000080;background:var(--color-surface)}.bloglist .card:hover{box-shadow:0 5px 10px 5px #0003}.bloglist .image{height:140px;margin:-16px -16px 14px}.bloglist .title{font-size:20px;margin:14px 0}}.sidebar{display:flex;flex-direction:column;gap:20px;min-width:0}.sidebar .side-card{padding:20px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);box-shadow:0 1px 20px -6px #00000080}.sidebar .side-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:16px}.sidebar .side-title .fa{color:var(--color-accent)}.sidebar .author-avatar{margin:0 auto 12px;width:72px;height:72px;border-radius:50%;overflow:hidden;border:2px solid var(--color-accent-soft)}.sidebar .author-avatar img{display:block;width:100%;height:100%;object-fit:cover}.sidebar .author-name{margin:0 0 10px;color:var(--color-text);font-size:15px;font-weight:600;text-align:center}.sidebar .side-text{color:var(--color-gray);font-size:13px;line-height:1.7;word-break:break-word}.sidebar .side-text p{margin:0 0 8px}.sidebar .side-text p:last-child{margin-bottom:0}.sidebar .author-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sidebar .author-links a{display:inline-flex;align-items:center;gap:5px;border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);border-radius:4px;padding:.15rem .45rem;color:var(--color-accent-strong);background:var(--color-accent-soft);font-size:12px;text-decoration:none;white-space:nowrap;transition:border-color .2s ease,background-color .2s ease}.sidebar .author-links a:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.sidebar .notice-item+.notice-item{margin-top:14px;padding-top:14px;border-top:1px dashed var(--color-border)}.sidebar .notice-title{display:block;margin-bottom:6px;color:var(--color-text);font-size:14px}@media (max-width: 1100px){.sidebar{margin:24px 12px 0}}@media (min-width: 1200px){.sidebar{position:sticky;top:80px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}}.tag{margin-top:64px;padding:32px 12px}.tag .tag-search-panel{max-width:800px;margin:0 auto 20px}.tag label{display:block;margin-bottom:8px;color:var(--color-gray);font-size:14px}.tag .search-input{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.tag .search-input:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 14%,transparent)}.tag input{min-width:0;flex:1;border:0;outline:0;color:var(--color-text);background:transparent;font:inherit}.tag .search-input button{border:0;color:var(--color-gray);background:transparent;cursor:pointer}.tag .tag-list{display:flex;flex-wrap:wrap;gap:8px;max-width:800px;margin:0 auto}.tag .item{padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;color:var(--color-gray);background:var(--color-surface);font:inherit;cursor:pointer;transition:all .2s ease-out}.tag .item:hover,.tag .item.active{color:var(--color-accent);border-color:var(--color-accent)}.tag .item span{opacity:.65;font-size:.85em}.tag .empty{max-width:800px;margin:48px auto;color:var(--color-gray);text-align:center}.list-enter-active,.list-leave-active{transition:opacity .2s ease,transform .2s ease}.list-enter-from{opacity:0;transform:translateY(10px)}.list-leave-to{opacity:0;transform:translateY(-10px)}@media (prefers-reduced-motion: reduce){.list-enter-active,.list-leave-active{transition:none}}.totop[data-v-d1ec90e8]{position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:.45rem;min-height:42px;border:1px solid var(--color-border);border-radius:21px;padding:.55rem .85rem;color:var(--color-text);background:var(--color-surface);box-shadow:0 3px 12px var(--color-shadow);font:inherit;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(8px);transition:color .2s,border-color .2s,transform .2s,opacity .2s}.totop.visible[data-v-d1ec90e8]{opacity:1;pointer-events:auto;transform:none}.totop[data-v-d1ec90e8]:hover{border-color:var(--color-accent);color:var(--color-accent)}@media (max-width: 640px){.totop[data-v-d1ec90e8]{right:16px;bottom:72px;width:44px;height:44px;min-height:44px;justify-content:center;border-radius:50%;padding:0}.totop span[data-v-d1ec90e8]{display:none}}.comments-button[data-v-91c4d70b]{position:fixed;right:104px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:.45rem;min-height:42px;border:1px solid var(--color-border);border-radius:21px;padding:.55rem .85rem;color:var(--color-text);background:var(--color-surface);box-shadow:0 3px 12px var(--color-shadow);font:inherit;cursor:pointer;transition:color .2s,border-color .2s,transform .2s}.comments-button[data-v-91c4d70b]:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}@media (max-width: 640px){.comments-button[data-v-91c4d70b]{right:16px;bottom:16px;width:44px;height:44px;min-height:44px;justify-content:center;border-radius:50%;padding:0}.comments-button span[data-v-91c4d70b]{display:none}}html{scroll-behavior:smooth;scrollbar-color:var(--color-accent) transparent;--site-default-font: "Noto Serif SC", "MicroSoft Yahei", serif;--global-font: "Noto Serif SC", "MicroSoft Yahei", serif;--color-accent: #0f9d9a;--color-accent-strong: #087f7c;--color-accent-soft: #e6fffb;--color-gray: #666;--color-text: #02111d;--color-background: #eee;--color-border: #d0d7de;--color-surface: #fff;--color-surface-muted: #f6f8fa;--color-header: rgba(255, 255, 255, .72);--color-code-header: #f6f8fa;--color-shadow: rgba(0, 0, 0, .16);--code-line-height: 24px;--code-font-family: monospace;--code-font-size: 15px}html[data-font=serif]{--global-font: serif}html[data-font=sans-serif]{--global-font: sans-serif}html[data-theme=dark]{--color-gray: #aeb9c2;--color-text: #e6edf3;--color-background: #15191d;--color-border: #39434d;--color-surface: #20262c;--color-surface-muted: #252d34;--color-header: rgba(32, 38, 44, .78);--color-code-header: #252d34;--color-accent: #2dd4bf;--color-accent-strong: #14b8a6;--color-accent-soft: #134e4a;--color-shadow: rgba(0, 0, 0, .42);color-scheme:dark}.skeleton-block{display:block;border-radius:4px;background:linear-gradient(100deg,var(--color-surface-muted) 35%,var(--color-accent-soft) 50%,var(--color-surface-muted) 65%);background-size:300% 100%;animation:skeleton-shimmer 1.6s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.skeleton-block{animation:none}}body{margin:0;padding:0;font-family:var(--global-font);font-size:16px;color:var(--color-text);background:var(--color-background);overflow-x:hidden;transition:color .2s ease,background-color .2s ease}*{box-sizing:border-box}a{text-decoration:none}img{max-width:100%}img.upl-image-preview{display:block;width:auto;height:auto;margin:1rem auto}hr{border:none;border-bottom:1px dashed var(--color-border)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border-radius:4px;background:var(--color-accent)}html[data-theme=dark] .content blockquote{color:#99f6e4;background:#134e4a}html[data-theme=dark] .content th{background:#134e4a}html[data-theme=dark] .navbox{background:#203326;border-color:#50633a}html[data-theme=dark] .navbox:before{background-color:#58733a;color:#c3e68a}html[data-theme=dark] .navbox a{color:#b9e66b}html[data-theme=dark] .custom-block.tip,html[data-theme=dark] .custom-block.info,html[data-theme=dark] .markdown-alert{background:var(--color-surface-muted)}html[data-theme=dark] .custom-block.warning,html[data-theme=dark] .markdown-alert-warning{background:#3b351d}html[data-theme=dark] .custom-block.danger,html[data-theme=dark] .markdown-alert-caution{background:#3d2527}html[data-theme=dark] .markdown-alert-note .markdown-alert-title{color:#79c0ff}html[data-theme=dark] .markdown-alert-tip .markdown-alert-title{color:#7ee787}html[data-theme=dark] .markdown-alert-important .markdown-alert-title{color:#d2a8ff}html[data-theme=dark] .markdown-alert-warning .markdown-alert-title{color:#e3b341}html[data-theme=dark] .markdown-alert-caution .markdown-alert-title{color:#ff7b72}html[data-theme=dark] .markdown-annotation{color:#93c5fd}html[data-theme=dark] .markdown-annotation .annotation-tooltip{border-color:#596773;color:var(--color-text);background:var(--color-surface);box-shadow:0 4px 14px #00000073}html[data-theme=dark] div[class*=language-]{background:var(--color-surface)}html[data-theme=dark] div[class*=language-] pre,html[data-theme=dark] div[class*=language-] code{color:#e6edf3!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#D73A49"]{color:#ff7b72!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#032F62"]{color:#a5d6ff!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#6F42C1"]{color:#d2a8ff!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#005CC5"]{color:#79c0ff!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#22863A"]{color:#7ee787!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#E36209"]{color:#ffa657!important}html[data-theme=dark] div[class*=language-] code span[style*="color:#24292E"]{color:#c9d1d9!important}html[data-theme=dark] div[class*=language-]:before{background:var(--color-code-header)}html[data-theme=dark] .search-panel,html[data-theme=dark] .font-panel,html[data-theme=dark] .font-panel select,html[data-theme=dark] .search-panel input{color:var(--color-text);background:var(--color-surface)}html[data-theme=dark] .bloglist .card{background:var(--color-surface)}html[data-theme=dark] .bloglist .title,html[data-theme=dark] .not-found{color:var(--color-text)}.home-layout{max-width:800px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-bottom:48px}.home-layout .bloglist{min-width:0;max-width:none}.home-layout .sidebar{order:-1}@media (min-width: 1200px){.home-layout{max-width:1280px;grid-template-columns:minmax(0,1fr) 300px;align-items:start}.home-layout .sidebar{order:0;margin-top:24px}}@media (min-width: 1600px){.home-layout{max-width:1560px}}.page-enter-active,.page-leave-active{transition:opacity .22s ease,transform .22s ease}.page-enter-from{opacity:0;transform:translateY(14px)}.page-leave-to{opacity:0;transform:translateY(-14px)}@media (prefers-reduced-motion: reduce){.page-enter-active,.page-leave-active{transition:none}}.not-found{display:grid;min-height:calc(100vh - 64px);place-items:center;padding:88px 16px 40px;background:var(--color-background)}.not-found-card{width:min(560px,100%);padding:40px 32px 36px;border:2px solid color-mix(in srgb,var(--color-accent) 42%,var(--color-border));border-radius:16px;text-align:center;background:color-mix(in srgb,var(--color-surface) 86%,transparent);box-shadow:0 12px 30px color-mix(in srgb,var(--color-shadow) 80%,transparent)}.mascot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:128px;height:82px;margin-bottom:10px;border:4px solid var(--color-accent);border-radius:50% 50% 45% 45%;color:var(--color-accent-strong);background:var(--color-accent-soft);transform:rotate(-2deg)}.face{font-size:24px;letter-spacing:2px}.ear{position:absolute;top:-18px;width:34px;height:34px;border:4px solid var(--color-accent);border-bottom:0;background:var(--color-accent-soft)}.ear.left{left:12px;transform:rotate(-35deg) skewY(12deg)}.ear.right{right:12px;transform:rotate(35deg) skewY(-12deg)}.code{margin:0;color:var(--color-accent);font-family:sans-serif;font-size:72px;font-weight:900;line-height:1}h1{margin:16px 0 10px;color:var(--color-text);font-size:26px}.message{margin:0 auto 24px;max-width:34em;color:var(--color-gray);line-height:1.7}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.actions a,.actions button{display:inline-block;border:1px solid var(--color-accent);border-radius:6px;padding:9px 16px;color:var(--color-accent);background:transparent;font:inherit;cursor:pointer}.actions .primary,.actions a:hover,.actions button:hover{color:#fff;background:var(--color-accent)}@media (max-width: 600px){.not-found{min-height:calc(100vh - 56px);padding:80px 12px 28px}.not-found-card{padding:32px 20px 28px}.code{font-size:58px}h1{font-size:22px}}.tool-directory[data-v-4c8b8e34]{color:var(--color-text);font-family:var(--global-font);margin:1.5rem 0 2rem}.directory-toolbar[data-v-4c8b8e34]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.search-box[data-v-4c8b8e34]{display:flex;flex:1;align-items:center;gap:.6rem;min-height:44px;border:1px solid var(--color-border);border-radius:6px;padding:.65rem .9rem;background:var(--color-surface);transition:border-color .2s ease,box-shadow .2s ease}.search-box[data-v-4c8b8e34]:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 14%,transparent)}.search-box i[data-v-4c8b8e34]{color:var(--color-accent);font-size:.95rem}.search-box input[data-v-4c8b8e34]{width:100%;border:0;outline:0;background:transparent;color:var(--color-text);font:inherit}.search-box input[data-v-4c8b8e34]::placeholder{color:var(--color-gray);opacity:.8}.result-count[data-v-4c8b8e34]{flex:0 0 auto;color:var(--color-gray);white-space:nowrap;font-size:.85rem}.category-tabs[data-v-4c8b8e34]{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.75rem}.category-tabs button[data-v-4c8b8e34]{border:1px solid transparent;border-radius:5px;padding:.4rem .7rem;background:transparent;color:var(--color-gray);cursor:pointer;font:inherit;font-size:.82rem;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.category-tabs button[data-v-4c8b8e34]:hover{color:var(--color-accent-strong);background:var(--color-surface-muted)}.category-tabs button.active[data-v-4c8b8e34]{border-color:var(--color-accent);color:var(--color-accent-strong);background:var(--color-accent-soft)}.category-tabs button[data-v-4c8b8e34]:focus-visible,.tool-card .tool-copy[data-v-4c8b8e34]:focus-visible,.project-link[data-v-4c8b8e34]:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 28%,transparent);outline-offset:2px}.directory-section[data-v-4c8b8e34]{margin:1.75rem 0 2rem}.directory-section[data-v-4c8b8e34]:last-child{margin-bottom:.25rem}.directory-section h2[data-v-4c8b8e34]{display:flex;align-items:center;gap:.55rem;margin-top:0;margin-bottom:.9rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem;color:var(--color-text);font-size:1.2rem}.directory-section h2 small[data-v-4c8b8e34]{color:var(--color-gray);font:.75rem sans-serif;font-weight:400}.tool-grid[data-v-4c8b8e34]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.65rem}.tool-card[data-v-4c8b8e34]{display:flex;min-height:72px;align-items:center;gap:.7rem;border:1px solid var(--color-border);border-radius:7px;padding:.8rem;background:var(--color-surface);color:inherit;transition:border-color .2s ease,background-color .2s ease}.tool-card[data-v-4c8b8e34]:hover{border-color:var(--color-accent);background:var(--color-surface-muted)}.tool-card.unavailable[data-v-4c8b8e34]{cursor:default}.tool-copy[data-v-4c8b8e34]{display:flex;min-width:0;flex:1;flex-direction:column;gap:.2rem;border:0;padding:0;background:none;color:inherit;text-align:left;font:inherit;text-decoration:none;cursor:pointer}.tool-copy strong[data-v-4c8b8e34]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-size:.96rem}.tool-copy span[data-v-4c8b8e34]{overflow:hidden;color:var(--color-gray);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.tool-side[data-v-4c8b8e34]{display:flex;flex:0 0 auto;align-items:center;gap:.5rem}.project-link[data-v-4c8b8e34]{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);border-radius:4px;padding:.15rem .45rem;color:var(--color-accent-strong);background:var(--color-accent-soft);font-size:.7rem;text-decoration:none;white-space:nowrap;transition:border-color .2s ease,background-color .2s ease}.project-link[data-v-4c8b8e34]:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.arrow[data-v-4c8b8e34]{color:var(--color-accent);font:1.1rem sans-serif}.status[data-v-4c8b8e34]{border-radius:4px;padding:.15rem .35rem;color:var(--color-gray);background:var(--color-surface-muted);font-size:.68rem;white-space:nowrap}.tool-card.archived[data-v-4c8b8e34]{background:var(--color-surface-muted);opacity:.8}.tool-card.archived[data-v-4c8b8e34]:hover{opacity:1}.empty[data-v-4c8b8e34]{padding:2rem 1rem;text-align:center;color:var(--color-gray);border:1px dashed var(--color-border);border-radius:6px}.directory-skeleton[data-v-4c8b8e34]{display:grid;gap:1rem}.skeleton-toolbar[data-v-4c8b8e34]{display:flex;align-items:center;gap:1rem}.skeleton-search[data-v-4c8b8e34],.skeleton-count[data-v-4c8b8e34],.skeleton-tabs span[data-v-4c8b8e34],.skeleton-heading[data-v-4c8b8e34],.skeleton-card span[data-v-4c8b8e34]{display:block}.skeleton-search[data-v-4c8b8e34]{height:44px;flex:1;border:1px solid var(--color-border);border-radius:6px}.skeleton-count[data-v-4c8b8e34]{width:68px;height:.85rem;flex:0 0 auto;border-radius:4px}.skeleton-tabs[data-v-4c8b8e34]{display:flex;gap:.4rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.skeleton-tabs span[data-v-4c8b8e34]{height:30px;border-radius:5px}.skeleton-section[data-v-4c8b8e34]{display:grid;gap:.9rem;margin-top:.75rem}.skeleton-heading[data-v-4c8b8e34]{width:28%;height:1.2rem;border-radius:4px}.skeleton-grid[data-v-4c8b8e34]{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.65rem}.skeleton-card[data-v-4c8b8e34]{display:grid;gap:.6rem;min-height:72px;align-content:center;border:1px solid var(--color-border);border-radius:7px;padding:.8rem;background:var(--color-surface)}.skeleton-card span[data-v-4c8b8e34]{height:.8rem;border-radius:3px}.skeleton-card .skeleton-name[data-v-4c8b8e34]{width:62%;height:.95rem}.skeleton-card .skeleton-description[data-v-4c8b8e34]{width:86%}@media (max-width: 640px){.directory-toolbar[data-v-4c8b8e34]{align-items:stretch;flex-direction:column;gap:.55rem}.result-count[data-v-4c8b8e34]{align-self:flex-end}.category-tabs[data-v-4c8b8e34]{flex-wrap:nowrap;padding-bottom:6px;overflow-x:auto;scrollbar-width:thin}.category-tabs button[data-v-4c8b8e34]{flex:0 0 auto;min-height:40px}.tool-grid[data-v-4c8b8e34]{grid-template-columns:1fr}.tool-card[data-v-4c8b8e34]{flex-wrap:wrap}.skeleton-toolbar[data-v-4c8b8e34]{align-items:stretch;flex-direction:column;gap:.55rem}.skeleton-count[data-v-4c8b8e34]{align-self:flex-end}.skeleton-grid[data-v-4c8b8e34]{grid-template-columns:1fr}.directory-section[data-v-4c8b8e34]{margin:1.5rem 0}.tool-copy strong[data-v-4c8b8e34],.tool-copy span[data-v-4c8b8e34]{white-space:normal}.status[data-v-4c8b8e34]{flex:0 0 auto}}.rss-subscribe[data-v-91176168]{display:flex;justify-content:center;margin:1.5rem 0}.rss-subscribe-button[data-v-91176168]{display:inline-flex;align-items:center;gap:.8rem;padding:.75rem 1.1rem;border:1px solid #f59e0b;border-radius:.75rem;color:#92400e!important;background:#fffbeb;box-shadow:0 2px 8px #f59e0b26;text-decoration:none!important;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.rss-subscribe .rss-subscribe-button[data-v-91176168]:after{display:none;content:none}.rss-subscribe-button[data-v-91176168]:hover{color:#78350f!important;background:#fef3c7;box-shadow:0 4px 14px #f59e0b40;transform:translateY(-2px)}.rss-subscribe-button[data-v-91176168]:focus-visible{outline:3px solid rgba(245,158,11,.4);outline-offset:3px}.rss-subscribe-button>i[data-v-91176168]{color:#f97316;font-size:1.65rem}.rss-subscribe-button>span[data-v-91176168]{display:flex;flex-direction:column;gap:.1rem;line-height:1.4}.rss-subscribe-button strong[data-v-91176168]{font-size:1rem}.rss-subscribe-button small[data-v-91176168]{color:#a16207;font-size:.8rem}html[data-theme=dark] .rss-subscribe-button[data-v-91176168]{border-color:#b45309;color:#fde68a!important;background:#422006;box-shadow:0 2px 8px #00000040}html[data-theme=dark] .rss-subscribe-button[data-v-91176168]:hover{color:#fef3c7!important;background:#522b08}html[data-theme=dark] .rss-subscribe-button small[data-v-91176168]{color:#fcd34d}@media (prefers-reduced-motion: reduce){.rss-subscribe-button[data-v-91176168]{transition:none}}
