:root{--snow:#f4f8fc;--paper:#fff;--paper-sunk:#ebf2f9;--ink:#1a2a40;--ink-2:#4a5d75;--ink-3:#7d8ea4;--frost:#dbe6f0;--frost-strong:#b5c9dc;--sky:#78b9ea;--sky-deep:#4a98d6;--brand:#2a74b6;--brand-hover:#215f97;--brand-ink:#fff;--brand-soft:#e3effa;--link:#2a6dab;--link-soft:#e6f0fa;--sakura:#eba1b6;--sakura-ink:#a64f6e;--sakura-soft:#fbe9ef;--logo-sky:#4a98d6;--logo-deep:#c95f80;--logo-light:#efa9bd;--t1-fg:#3b72a6;--t1-bg:#e6f0fa;--t2-fg:#a65b72;--t2-bg:#f8eaef;--t3-fg:#6a63a8;--t3-bg:#eeecf8;--t4-fg:#3f8a86;--t4-bg:#e5f3f1;--t5-fg:#9a7a3e;--t5-bg:#f6f0e2;--ok:#2d7f5c;--ok-soft:#e0f1e8;--warn:#a5690c;--warn-soft:#fbf0da;--danger:#c23b45;--danger-soft:#fbe5e7;--pending:#6c56bf;--pending-soft:#ede8fa;--selection:#cfe3f6;--overlay:#101e326b;--shadow-1:0 1px 2px #1a2a400d;--shadow-2:0 1px 2px #1a2a400a, 0 24px 48px -24px #2a74b647;--shadow-lift:0 1px 2px #1a2a400a, 0 28px 56px -28px #2a74b65c;--snowfall:#ffffffd9;--snowfall-paper:#6996c880;--font-brand:"ZCOOL XiaoWei", "Noto Serif SC", "Songti SC", serif;--font-display:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;--font-latin:"Cormorant Garamond", "Noto Serif SC", Georgia, serif;--font-sans:"Noto Sans SC", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1.0625rem;--fs-read:1.0625rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:2rem;--fs-3xl:2.75rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:48px;--sp-9:72px;--r-sm:4px;--r-md:8px;--r-lg:14px;--r-xl:22px;--r-pill:999px;--measure:40em;--page-max:1180px;--gutter:clamp(16px, 4vw, 40px);--header-h:68px;--ease:cubic-bezier(.22, .61, .36, 1);--ease-slow:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--snow:#0b1424;--paper:#111d30;--paper-sunk:#16243a;--ink:#e4ecf6;--ink-2:#a8b8cc;--ink-3:#74869d;--frost:#213249;--frost-strong:#33496a;--sky:#8cc6f2;--sky-deep:#5aa8e6;--brand:#8cc6f2;--brand-hover:#b0d8f7;--brand-ink:#0a1a2e;--brand-soft:#172e4a;--link:#93c9f3;--link-soft:#172c45;--sakura:#f3b7c9;--sakura-ink:#f3b7c9;--sakura-soft:#3a2430;--logo-sky:#8cc6f2;--logo-deep:#f08fae;--logo-light:#fbd3df;--t1-fg:#9cc8ef;--t1-bg:#172c45;--t2-fg:#e5a5b8;--t2-bg:#35222b;--t3-fg:#b6aef0;--t3-bg:#252342;--t4-fg:#8fd1c9;--t4-bg:#15312f;--t5-fg:#e0c487;--t5-bg:#30281a;--ok:#6fcb9d;--ok-soft:#13301f;--warn:#eeb357;--warn-soft:#33270f;--danger:#f2919a;--danger-soft:#3a1b20;--pending:#b4a2ff;--pending-soft:#262046;--selection:#23466c;--overlay:#030812a8;--shadow-1:0 1px 2px #0000004d;--shadow-2:0 1px 2px #0000004d, 0 24px 48px -22px #000000b3;--shadow-lift:0 1px 2px #0000004d, 0 28px 56px -24px #50a0e647;--snowfall:#ebf5ffcc;--snowfall-paper:#d7e8fa99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--snow:#0b1424;--paper:#111d30;--paper-sunk:#16243a;--ink:#e4ecf6;--ink-2:#a8b8cc;--ink-3:#74869d;--frost:#213249;--frost-strong:#33496a;--sky:#8cc6f2;--sky-deep:#5aa8e6;--brand:#8cc6f2;--brand-hover:#b0d8f7;--brand-ink:#0a1a2e;--brand-soft:#172e4a;--link:#93c9f3;--link-soft:#172c45;--sakura:#f3b7c9;--sakura-ink:#f3b7c9;--sakura-soft:#3a2430;--logo-sky:#8cc6f2;--logo-deep:#f08fae;--logo-light:#fbd3df;--t1-fg:#9cc8ef;--t1-bg:#172c45;--t2-fg:#e5a5b8;--t2-bg:#35222b;--t3-fg:#b6aef0;--t3-bg:#252342;--t4-fg:#8fd1c9;--t4-bg:#15312f;--t5-fg:#e0c487;--t5-bg:#30281a;--ok:#6fcb9d;--ok-soft:#13301f;--warn:#eeb357;--warn-soft:#33270f;--danger:#f2919a;--danger-soft:#3a1b20;--pending:#b4a2ff;--pending-soft:#262046;--selection:#23466c;--overlay:#030812a8;--shadow-1:0 1px 2px #0000004d;--shadow-2:0 1px 2px #0000004d, 0 24px 48px -22px #000000b3;--shadow-lift:0 1px 2px #0000004d, 0 28px 56px -24px #50a0e647;--snowfall:#ebf5ffcc;--snowfall-paper:#d7e8fa99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--snow);color:var(--ink);font:400 var(--fs-base)/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--selection)}img,svg,video{max-width:100%}img{height:auto;display:block}h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:600;line-height:1.3}p{margin:0}ul,ol{margin:0;padding:0}a{color:var(--link);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--ink-3)}.eyebrow{font-size:var(--fs-xs);letter-spacing:.12em;color:var(--ink-3);font-weight:500}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.i{vertical-align:-.2em;flex:none;width:1.15em;height:1.15em;display:inline-flex}.i svg{width:100%;height:100%}.mark{flex:none;height:42px;display:inline-flex}.mark svg{width:auto;height:100%;display:block;overflow:visible}.mark .flake{transform-box:fill-box;transform-origin:50%;transition:transform 1.6s var(--ease-slow)}a:hover>.mark .flake,.mark:hover .flake{transform:rotate(60deg)}.mark--sm{height:26px}.mark--lg{height:84px}.btn{border:1px solid var(--frost);border-radius:var(--r-pill);background:var(--paper);height:34px;color:var(--ink);font-size:var(--fs-sm);white-space:nowrap;letter-spacing:.02em;transition:background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease), box-shadow .4s var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:500;display:inline-flex;text-decoration:none!important}.btn:hover{border-color:var(--frost-strong);background:var(--paper-sunk)}.btn--primary{background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 88%, #fff), var(--brand));border-color:var(--brand);color:var(--brand-ink);box-shadow:0 10px 24px -14px var(--brand)}.btn--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover);box-shadow:0 14px 30px -14px var(--brand)}.btn--ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--paper-sunk);color:var(--ink);border-color:#0000}.btn--danger{color:var(--danger)}.btn--danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn--danger-solid{background:var(--danger);border-color:var(--danger);color:var(--paper)}.btn--sm{height:28px;font-size:var(--fs-xs);padding:0 12px}.btn--lg{height:44px;font-size:var(--fs-base);padding:0 24px}.btn--icon{width:34px;padding:0}.btn--icon.btn--sm{width:28px}.btn--lg.btn--icon{width:44px}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.field{gap:6px;min-width:0;display:grid}.field>label,.label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:500}.field .hint{font-size:var(--fs-xs);color:var(--ink-3);justify-content:space-between;gap:var(--sp-2);display:flex}.field .error-text{font-size:var(--fs-xs);color:var(--danger)}.input,.select,.textarea{border:1px solid var(--frost);border-radius:var(--r-md);background:var(--paper);width:100%;min-width:0;height:38px;color:var(--ink);padding:0 12px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;height:auto;padding:10px 12px;line-height:1.6}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--link);box-shadow:0 0 0 3px var(--link-soft);outline:none}.input--invalid{border-color:var(--danger)}.input--invalid:focus{box-shadow:0 0 0 3px var(--danger-soft)}.input-group{align-items:center;display:flex;position:relative}.input-group>.i{color:var(--ink-3);pointer-events:none;position:absolute;left:11px}.input-group>.input{padding-left:34px}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--brand);margin:0}.tag{border-radius:var(--r-pill);color:var(--ink-2);border:1px solid var(--frost);font-size:var(--fs-xs);white-space:nowrap;letter-spacing:.02em;transition:color .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease);background:0 0;align-items:center;gap:4px;padding:0 10px;line-height:20px;display:inline-flex;text-decoration:none!important}a.tag:hover,button.tag:hover{color:var(--link);border-color:color-mix(in srgb, var(--link) 45%, transparent);background:var(--link-soft)}.tag[aria-pressed=true],.tag.is-active{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.tag .count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-family:var(--font-latin);font-size:1.08em;font-style:italic}.tag.is-active .count,.tag[aria-pressed=true] .count{color:inherit;opacity:.8}button.tag{cursor:pointer}.tags{flex-wrap:wrap;gap:6px;display:flex}.badge{border-radius:var(--r-pill);height:22px;font-size:var(--fs-xs);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:0 8px;font-weight:500;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge .i{width:13px;height:13px}.badge--note,.badge--article{border-color:var(--frost);color:var(--ink-2);background:0 0}.badge--published{background:var(--ok-soft);color:var(--ok)}.badge--unpublished{background:var(--paper-sunk);color:var(--ink-2)}.badge--withdrawn{background:var(--warn-soft);color:var(--warn)}.badge--changes{color:var(--link);border:1px dashed color-mix(in srgb, var(--link) 55%, transparent);background:0 0}.save{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.save .i{width:14px;height:14px}.save--saved{color:var(--ok)}.save--saving .i{animation:1s linear infinite spin}.save--dirty{color:var(--warn)}.save--conflict,.save--failed{color:var(--danger)}.save--pending{color:var(--pending)}@keyframes spin{to{transform:rotate(360deg)}}.notice{gap:var(--sp-3);border-radius:var(--r-md);background:var(--paper-sunk);color:var(--ink-2);font-size:var(--fs-sm);border:1px solid var(--frost);align-items:flex-start;padding:12px 14px;display:flex}.notice>.i{margin-top:2px}.notice strong{color:var(--ink);font-weight:600}.notice .notice-body{flex:1;gap:4px;min-width:0;display:grid}.notice .btn-row{margin-top:6px}.notice--info{background:var(--link-soft);border-color:#0000}.notice--info>.i{color:var(--link)}.notice--ok{background:var(--ok-soft);border-color:#0000}.notice--ok>.i{color:var(--ok)}.notice--warn{background:var(--warn-soft);border-color:#0000}.notice--warn>.i{color:var(--warn)}.notice--danger{background:var(--danger-soft);border-color:#0000}.notice--danger>.i{color:var(--danger)}.notice--pending{background:var(--pending-soft);border-color:#0000}.notice--pending>.i{color:var(--pending)}.empty{justify-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--ink-3);display:grid}.empty .empty-mark{font:400 40px/1 var(--font-display);color:var(--frost-strong)}.empty h3{font-size:var(--fs-md);color:var(--ink)}.empty p{max-width:28em;font-size:var(--fs-sm)}.skel{background:linear-gradient(90deg, var(--paper-sunk) 25%, var(--frost) 50%, var(--paper-sunk) 75%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.4s infinite skel}@keyframes skel{to{background-position:-200% 0}}.kbd{border:1px solid var(--frost);background:var(--paper);height:20px;color:var(--ink-3);font:500 11px/1 var(--font-mono);border-bottom-width:2px;border-radius:5px;align-items:center;padding:0 6px;display:inline-flex}.seg{border-radius:var(--r-md);background:var(--paper-sunk);gap:2px;padding:3px;display:inline-flex}.seg button,.seg a{height:28px;color:var(--ink-2);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;padding:0 12px;display:inline-flex;text-decoration:none!important}.seg button:hover,.seg a:hover{color:var(--ink)}.seg [aria-pressed=true],.seg [aria-selected=true],.seg .is-active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}.tabs{gap:var(--sp-5);border-bottom:1px solid var(--frost);scrollbar-width:none;display:flex;overflow-x:auto}.tabs [role=tab]{color:var(--ink-3);font-size:var(--fs-base);white-space:nowrap;background:0 0;border:0;padding:10px 0;font-weight:500;position:relative}.tabs [role=tab]:hover,.tabs [role=tab][aria-selected=true]{color:var(--ink)}.tabs [role=tab][aria-selected=true]:after{content:"";background:var(--brand);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tabs .count{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;margin-left:4px}.table-wrap{position:relative;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th{text-align:left;color:var(--ink-3);font-weight:500;font-size:var(--fs-xs);letter-spacing:.04em;border-bottom:1px solid var(--frost);white-space:nowrap;padding:8px 12px}.table td{border-bottom:1px solid var(--frost);vertical-align:middle;padding:11px 12px}.table tbody tr:hover{background:color-mix(in srgb, var(--paper-sunk) 60%, transparent)}.table .num{text-align:right}.modal-layer{z-index:80;padding:var(--sp-4);background:var(--overlay);animation:fade .18s var(--ease);place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:var(--r-lg);width:min(560px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-2);border:1px solid var(--frost);animation:rise .22s var(--ease);overflow:auto}.modal--wide{width:min(920px,100%)}.modal-head{align-items:flex-start;gap:var(--sp-3);padding:20px 22px 0;display:flex}.modal-head h2{font-size:var(--fs-lg);flex:1}.modal-head p{font-size:var(--fs-sm);color:var(--ink-3);margin-top:4px}.modal-body{gap:var(--sp-4);padding:16px 22px;display:grid}.modal-foot{justify-content:flex-end;gap:var(--sp-2);border-top:1px solid var(--frost);background:color-mix(in srgb, var(--paper-sunk) 45%, var(--paper));border-radius:0 0 var(--r-lg) var(--r-lg);flex-wrap:wrap;padding:14px 22px;display:flex}.modal-foot .spacer{flex:1}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.99)}}.toast-stack{z-index:90;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));gap:8px;width:min(420px,100% - 32px);display:grid;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--r-md);background:var(--ink);color:var(--snow);font-size:var(--fs-sm);box-shadow:var(--shadow-2);align-items:center;gap:10px;padding:11px 14px;display:flex}.toast .i{color:var(--ok)}.toast a{color:inherit;margin-left:auto;text-decoration:underline}.palette-layer{place-items:start center;padding-top:12vh}.palette{width:min(620px,100%);padding:0;overflow:hidden}.palette-input{border-bottom:1px solid var(--frost);align-items:center;gap:10px;padding:14px 18px;display:flex}.palette-input input{min-width:0;font-size:var(--fs-md);background:0 0;border:0;outline:none;flex:1}.palette-list{max-height:50vh;padding:8px;overflow:auto}.palette-group{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.06em;padding:8px 10px 4px}.palette-item{border-radius:var(--r-md);color:var(--ink);align-items:center;gap:10px;padding:9px 10px;display:flex;text-decoration:none!important}.palette-item:hover,.palette-item.is-active{background:var(--link-soft)}.palette-item .i{color:var(--ink-3)}.palette-item .meta{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;margin-left:auto}.palette-item mark{color:var(--link);background:0 0;font-weight:600}.palette-foot{gap:var(--sp-4);border-top:1px solid var(--frost);font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;padding:10px 18px;display:flex}.menu{position:relative}.menu-pop{z-index:60;background:var(--paper);border:1px solid var(--frost);border-radius:var(--r-md);min-width:220px;box-shadow:var(--shadow-2);padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.menu-pop button,.menu-pop a{color:var(--ink);font-size:var(--fs-sm);text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:10px;padding:8px 10px;display:flex;text-decoration:none!important}.menu-pop button:hover,.menu-pop a:hover{background:var(--paper-sunk)}.menu-pop .i{color:var(--ink-3)}.menu-pop hr{border:0;border-top:1px solid var(--frost);margin:6px 0}.menu-pop .danger,.menu-pop .danger .i{color:var(--danger)}.kv{font-size:var(--fs-sm);grid-template-columns:max-content 1fr;gap:8px 16px;display:grid}.kv dt{color:var(--ink-3)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.art{width:120px;height:120px;color:var(--sky-deep);flex:none;display:inline-block}.art svg{width:100%;height:100%;overflow:visible}.art--sm{width:64px;height:64px}.art--lg{width:180px;height:180px}.art .spin{transform-origin:60px 60px;animation:60s linear infinite spin-slow}.art .fall{animation:fall 6s var(--ease) infinite}@keyframes spin-slow{to{transform:rotate(360deg)}}@keyframes fall{0%{opacity:0;transform:translateY(-6px)}30%{opacity:1}to{opacity:0;transform:translateY(14px)}}.empty .art{margin-bottom:4px}.latin{font-family:var(--font-latin);letter-spacing:.02em;font-style:italic;font-weight:400}.burst-flake{z-index:120;pointer-events:none;background:var(--sky);width:6px;height:6px;box-shadow:0 0 6px var(--sky);border-radius:50%;margin:-3px 0 0 -3px;position:fixed}.burst-flake.c2{background:var(--sakura);box-shadow:0 0 6px var(--sakura);width:4px;height:4px}.burst-flake.c3{background:var(--paper);box-shadow:0 0 0 1px var(--frost-strong)}.modal{border-radius:var(--r-xl)}.modal-foot{border-radius:0 0 var(--r-xl) var(--r-xl)}.toast{border-radius:var(--r-pill);padding-inline:18px}.notice{border-radius:var(--r-lg)}.seg,.seg button,.seg a{border-radius:var(--r-pill)}.code-block{border-radius:var(--r-lg)}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out .32s var(--ease) both}::view-transition-new(root){animation:vt-in .6s var(--ease-slow) both}@keyframes vt-out{to{opacity:0;filter:blur(3px)}}@keyframes vt-in{0%{opacity:0;filter:blur(3px);transform:translateY(10px)}}.site-header{view-transition-name:site-header}.sidebar{view-transition-name:ws-sidebar}html.theme-switching::view-transition-old(root){animation:none}html.theme-switching::view-transition-new(root){animation:theme-reveal .8s var(--ease-slow) both}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--vx,50%) var(--vy,0))}to{clip-path:circle(var(--vr,150vmax) at var(--vx,50%) var(--vy,0))}}.btn--primary{isolation:isolate;position:relative;overflow:hidden}.btn--primary:after{content:"";pointer-events:none;transition:transform 1s var(--ease-slow);background:linear-gradient(110deg,#0000 30%,#ffffff73 50%,#0000 70%);position:absolute;inset:0;transform:translate(-130%)}.btn--primary:hover:after{transform:translate(130%)}.site-nav a{position:relative}.site-nav a:before{content:"";background:var(--sky-deep);opacity:.7;height:1px;transition:transform .7s var(--ease-slow), opacity .4s var(--ease);border-radius:1px;position:absolute;bottom:2px;left:12px;right:12px;transform:scaleX(0)}.site-nav a:hover:before{transform:scaleX(1)}.site-nav a[aria-current=page]:before{opacity:1;transform:scaleX(.4)}.site-nav a[aria-current=page]:hover:before{transform:scaleX(1)}.reveal{opacity:0;transition:opacity 1.1s var(--ease-slow), transform 1.1s var(--ease-slow);transition-delay:var(--rd,0s);transform:translateY(18px)}.reveal.is-in{opacity:1;transform:none}.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0));transition:transform .7s var(--ease-slow), box-shadow .7s var(--ease-slow);transform-style:preserve-3d}.tilt.is-tilting{transition:transform .12s linear, box-shadow .7s var(--ease-slow)}.tilt:after{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,0%), #ffffff59, transparent 60%);opacity:0;transition:opacity .6s var(--ease);position:absolute;inset:0}.tilt:hover:after{opacity:1}.stamp{opacity:0}.stamp.is-in{animation:.8s cubic-bezier(.2,.9,.3,1.15) forwards stamp}@keyframes stamp{0%{opacity:0;filter:blur(2px);transform:scale(1.7)rotate(-30deg)}60%{opacity:1;filter:blur();transform:scale(.94)rotate(4deg)}to{opacity:.9;transform:scale(1)rotate(0)}}.stamp-ring{position:relative}.stamp-ring:before{content:"";border:1px solid var(--sky);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-10px}.stamp-ring.is-in:before{animation:ring 1.2s var(--ease-slow) .35s}@keyframes ring{0%{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(1.6)}}.read-progress:after{content:"";background:var(--sky);width:8px;height:8px;box-shadow:0 0 12px 3px var(--sky);border-radius:50%;margin-top:-4px;position:absolute;top:50%;right:-3px}.prose figure{border-radius:var(--r-md);overflow:hidden}.prose figure .img-ph,.prose figure img{transition:transform 1.6s var(--ease-slow)}.prose figure:hover .img-ph,.prose figure:hover img{transform:scale(1.025)}.prose figure figcaption{position:relative}.heatmap i{animation:pop .6s var(--ease-slow) both;animation-delay:calc(var(--i,0) * 3ms)}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.save--saved .i svg path:last-child{stroke-dasharray:14;animation:draw .9s var(--ease-slow) both}@keyframes draw{0%{stroke-dashoffset:14px}}@media (prefers-reduced-motion:reduce){.reveal,.stamp{opacity:1!important;transform:none!important}.tilt{transform:none!important}@view-transition{navigation:none}}.stamp-wrap{display:inline-block;position:relative}.prose{font-family:var(--font-serif);font-size:var(--fs-read);color:var(--ink);max-width:var(--measure);overflow-wrap:break-word;min-width:0;line-height:1.9}.prose>*+*{margin-top:1.15em}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--font-serif);color:var(--ink);scroll-margin-top:calc(var(--header-h) + 16px);font-weight:700}.prose h1{margin-top:2em;font-size:1.6em}.prose h2{margin-top:2.2em;font-size:1.45em;line-height:1.4}.prose h2:before{content:"§";color:var(--brand);opacity:.7;margin-right:.45em;font-weight:400}.prose h3{margin-top:1.8em;font-size:1.18em}.prose h4{color:var(--ink-2);margin-top:1.6em;font-size:1em}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:.7em}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin-bottom:0}.prose a{color:var(--link);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--link) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--link) 35%, transparent);text-underline-offset:4px;text-decoration-thickness:1px}.prose a:hover{text-decoration-color:currentColor}.prose strong{font-weight:700}.prose em{font-style:normal;text-emphasis:dot;text-emphasis-position:under}.prose mark{background:linear-gradient(transparent 52%, var(--t5-bg) 52%);color:inherit;padding:0 2px}.prose hr{text-align:center;border:0;height:24px;margin:2.4em 0}.prose hr:after{content:"＊　＊　＊";color:var(--sky);letter-spacing:.3em;font-size:.8em}.prose blockquote{border-left:3px solid var(--sky);background:var(--link-soft);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--ink-2);margin-inline:0;padding:.8em 1em .8em 1.2em}.prose blockquote>*+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.5em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--ink-3)}.prose .task-list-item{align-items:baseline;gap:.6em;margin-left:-1.4em;list-style:none;display:flex}.prose .task-list-item input{accent-color:var(--brand);margin:0;transform:translateY(2px)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--paper-sunk);color:var(--ink);border-radius:4px;padding:.12em .4em;font-size:.84em}.prose .code-frame{border-radius:var(--r-lg);background:var(--paper-sunk);border:1px solid var(--frost);position:relative;overflow:hidden}.prose .code-head{border-bottom:1px solid var(--frost);font:500 var(--fs-2xs)/1 var(--font-mono);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:6px 8px 6px 14px;display:flex}.prose .code-copy{height:24px;color:var(--ink-3);font:500 var(--fs-2xs)/1 var(--font-sans);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.prose .code-copy:hover{background:var(--paper);color:var(--ink)}.prose pre.code-block{font:400 .8125rem/1.7 var(--font-mono);tab-size:2;background:var(--paper-sunk);border-radius:var(--r-lg);border:1px solid var(--frost);margin:0;padding:14px 16px;overflow-x:auto}.prose .code-frame pre.code-block{border:0;border-radius:0}.prose pre code{background:0 0;padding:0;font-family:inherit}.prose table{border-collapse:collapse;max-width:100%;font-family:var(--font-sans);border:1px solid var(--frost);border-radius:var(--r-md);font-size:.875rem;line-height:1.6;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--frost);padding:9px 14px}.prose th{background:var(--paper-sunk);color:var(--ink-2);white-space:nowrap;font-weight:600}.prose tr:last-child td{border-bottom:0}.prose img{border-radius:var(--r-md);cursor:zoom-in;max-width:100%;height:auto;transition:transform 1.6s var(--ease-slow);margin-inline:auto;display:block}.prose p>img:only-child{margin-block:.6em}.prose .math-block{text-align:center;margin-block:1.6em;padding:.6em 0;overflow-x:auto}.math-error{color:var(--danger);font-family:var(--font-mono);font-size:.85em}.math-source{display:none}.prose .diagram,.prose .diagram-error,.prose .diagram-unavailable{border:1px solid var(--frost);border-radius:var(--r-md);background:var(--paper);margin-block:2em;padding:1.2em;overflow-x:auto}.prose .diagram[data-state=pending] .diagram-output{min-height:3rem}.prose .diagram[data-state=pending] .diagram-output:before{content:"图表加载中…";font:400 var(--fs-sm)/1 var(--font-sans);color:var(--ink-3)}.prose .diagram-output svg{max-width:100%;height:auto;margin:0 auto;display:block}.prose .diagram-error,.prose .diagram-unavailable{font:400 var(--fs-sm)/1.6 var(--font-sans);color:var(--ink-2)}.prose .diagram-error{border-color:color-mix(in srgb, var(--danger) 40%, var(--frost));background:var(--danger-soft);color:var(--danger)}.prose .diagram-error .diagram-source,.prose .diagram-unavailable .diagram-source{font:400 .78rem/1.6 var(--font-mono);white-space:pre-wrap;color:var(--ink-2);margin-top:.6em}.prose a.reference-link{text-decoration-style:dotted}.prose a.reference-link:before{content:"↗";color:var(--ink-3);margin-right:2px;font-size:.8em;text-decoration:none;display:inline-block}.reference-unavailable,.asset-unavailable{background:var(--paper-sunk);color:var(--ink-3);font:400 .82em/1.7 var(--font-sans);white-space:nowrap;cursor:default;border-radius:4px;align-items:center;gap:4px;padding:0 .5em;display:inline-flex}.reference-unavailable:before,.asset-unavailable:before{content:"";border:1.5px solid;border-radius:50%;width:.55em;height:.55em}.prose a.asset-link{text-decoration-style:dashed}.render-issues{margin-bottom:var(--sp-5)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}h1,h2,h3,h4{text-wrap:wrap}.skip-link{z-index:200;border-radius:var(--r-md);background:var(--ink);color:var(--snow);font-size:var(--fs-sm);padding:8px 14px;transition:top .2s;position:absolute;top:-48px;left:12px;text-decoration:none!important}.skip-link:focus{top:12px}.stack{gap:var(--sp-5);align-content:start;min-width:0;display:grid}.stack--tight{gap:var(--sp-2)}.cluster{gap:var(--sp-2) var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.page-title{font:300 var(--fs-2xl)/1.3 var(--font-display);letter-spacing:.1em}.page-lede{color:var(--ink-2);font-size:var(--fs-base);max-width:46em;line-height:1.8}.section-title{font:600 var(--fs-md)/1.4 var(--font-serif);color:var(--ink)}.meta{color:var(--ink-3);font-size:var(--fs-sm)}.list-plain{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.divider{border:0;border-top:1px solid var(--frost);margin:var(--sp-5) 0}.card{background:var(--paper);border:1px solid var(--frost);border-radius:var(--r-lg);min-width:0;padding:16px 18px}.card__title{font:600 var(--fs-md)/1.45 var(--font-serif)}.card__title a{color:var(--ink)}.tags{margin:0;padding:0;list-style:none}.tags>li{display:contents}.tag[aria-current=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.state{border-radius:var(--r-lg);background:var(--paper-sunk);border:1px solid var(--frost);color:var(--ink-2);font-size:var(--fs-sm);gap:4px;padding:12px 14px;display:grid}.state p{margin:0}.state__title{color:var(--ink);font-weight:600}.state--error{background:var(--danger-soft);border-color:#0000}.state--error .state__title{color:var(--danger)}.state--warning{background:var(--warn-soft);border-color:#0000}.state--warning .state__title{color:var(--warn)}.state--success{background:var(--ok-soft);border-color:#0000}.state--success .state__title{color:var(--ok)}.state--pending{background:var(--paper-sunk)}.state--unconfirmed{background:var(--pending-soft);border-color:#0000}.state--unconfirmed .state__title{color:var(--pending)}.button{border:1px solid var(--frost);border-radius:var(--r-pill);background:var(--paper);height:34px;color:var(--ink);font:500 var(--fs-sm)/1 var(--font-sans);letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:background .3s var(--ease), border-color .3s var(--ease), box-shadow .4s var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 16px;display:inline-flex;text-decoration:none!important}.button:hover{border-color:var(--frost-strong);background:var(--paper-sunk)}.button--primary{background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 88%, #fff), var(--brand));border-color:var(--brand);color:var(--brand-ink);box-shadow:0 10px 24px -14px var(--brand)}.button--primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.button--danger{color:var(--danger)}.button--danger:hover{background:var(--danger-soft);border-color:var(--danger)}.button[disabled],.btn[disabled]{opacity:.45;cursor:not-allowed}:where(input:not([type]),input[type=text],input[type=search],input[type=password],input[type=email],textarea,select){font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--frost);border-radius:var(--r-md);padding:8px 12px}:where(input,textarea,select):focus-visible{border-color:var(--link);box-shadow:0 0 0 3px var(--link-soft);outline:none}
