:root,[data-theme=light]{color-scheme:light;--volo-bg:#f6f7f3;--volo-surface:#fff;--volo-raised:#f0f3ee;--volo-text:#293d36;--volo-muted:#60756a;--volo-line:#dfe6de;--volo-shadow:0 8px 26px #173f3b0f;--shadow-sm:0 4px 14px #10251b14;--shadow-md:0 12px 34px #10251b26;--volo-accent:#246b51;--volo-button:#246b51;--volo-button-hover:#1b5741;--volo-accent-soft:#246b511a;--volo-accent-contrast:#f4f8f5;--volo-danger:#b34656;--volo-danger-solid:#b42318;--volo-on-danger:#fff;--volo-warn:#9a671f;--volo-code-bg:#eef2ed;--volo-syn-kw:#1e6349;--volo-syn-str:#8a511b;--volo-syn-num:#245f7d;--volo-syn-fn:#5f3d7a;--volo-syn-c:#596c62;--volo-syn-cm:#596c62;--volo-syn-ty:#25686c;--volo-syn-var:#2c5973;--volo-header-h:64px;--volo-radius:16px;--volo-radius-sm:10px;--volo-font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--volo-font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}html[data-theme=dark],[data-theme=dark]{color-scheme:dark;--volo-bg:#1b2021;--volo-surface:#242b2c;--volo-raised:#2b3434;--volo-text:#d6dfda;--volo-muted:#a1b1a8;--volo-line:#3c4945;--volo-shadow:0 12px 32px #00000047;--shadow-sm:0 4px 16px #00000057;--shadow-md:0 14px 38px #00000073;--volo-accent:#9bcab1;--volo-button:#476e59;--volo-button-hover:#527c65;--volo-accent-soft:#9bcab126;--volo-accent-contrast:#f5f8f5;--volo-danger:#e09aa4;--volo-danger-solid:#fda4af;--volo-on-danger:#2a080d;--volo-warn:#dfb069;--volo-code-bg:#202729;--volo-syn-kw:#9bcab1;--volo-syn-str:#e0b583;--volo-syn-num:#8cc2dd;--volo-syn-fn:#c6aad8;--volo-syn-c:#82958c;--volo-syn-cm:#82958c;--volo-syn-ty:#88c7c9;--volo-syn-var:#9ac2da}[data-accent=forest]{--volo-accent:#246b51;--volo-button:#246b51;--volo-button-hover:#1b5741;--volo-accent-soft:#246b511a}[data-theme=dark][data-accent=forest]{--volo-accent:#9bcab1;--volo-button:#476e59;--volo-button-hover:#527c65;--volo-accent-soft:#9bcab126}[data-accent=ocean]{--volo-accent:#2d6583;--volo-button:#2d6583;--volo-button-hover:#23516b;--volo-accent-soft:#2d65831c}[data-theme=dark][data-accent=ocean]{--volo-accent:#a2c5dd;--volo-button:#476b85;--volo-button-hover:#527c94;--volo-accent-soft:#a2c5dd26}[data-accent=teal]{--volo-accent:#286c70;--volo-button:#286c70;--volo-button-hover:#20575a;--volo-accent-soft:#286c701c}[data-theme=dark][data-accent=teal]{--volo-accent:#9acbcc;--volo-button:#416e71;--volo-button-hover:#4c7e80;--volo-accent-soft:#9acbcc26}[data-accent=amber]{--volo-accent:#855c27;--volo-button:#855c27;--volo-button-hover:#6e4a20;--volo-accent-soft:#855c271c}[data-theme=dark][data-accent=amber]{--volo-accent:#d6bd91;--volo-button:#795f3c;--volo-button-hover:#886d48;--volo-accent-soft:#d6bd9126}[data-accent=plum]{--volo-accent:#70517d;--volo-button:#70517d;--volo-button-hover:#5a4167;--volo-accent-soft:#70517d1c}[data-theme=dark][data-accent=plum]{--volo-accent:#c8b5d7;--volo-button:#6d567d;--volo-button-hover:#7d658d;--volo-accent-soft:#c8b5d726}[data-accent=rose]{--volo-accent:#87525f;--volo-button:#87525f;--volo-button-hover:#714450;--volo-accent-soft:#87525f1c}[data-theme=dark][data-accent=rose]{--volo-accent:#d6b1bd;--volo-button:#7d5865;--volo-button-hover:#8d6572;--volo-accent-soft:#d6b1bd26}*,:before,:after{box-sizing:border-box}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--volo-muted) 32%, transparent);border-radius:999px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--volo-muted) 32%, transparent);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--volo-accent) 55%, var(--volo-muted))}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--volo-accent) 55%, var(--volo-muted))}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-corner{background:0 0}@supports not selector(::-webkit-scrollbar){*,:before,:after{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--volo-muted) 34%, transparent) transparent}}[hidden]{display:none!important}html{scroll-padding-top:calc(var(--volo-header-h,64px) + 20px);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--volo-bg);min-height:100dvh;color:var(--volo-text);font:14px/1.8 var(--volo-font-sans);flex-direction:column;margin:0;transition:background-color .2s,color .2s;display:flex;overflow-x:clip}a{color:var(--volo-accent);text-decoration:none}a:hover{text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}input,progress,audio{accent-color:var(--volo-accent)}img{max-width:100%;height:auto}::selection{background:color-mix(in srgb, var(--volo-accent) 24%, transparent)}input:-webkit-autofill{caret-color:var(--volo-text);transition:background-color 99999s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--volo-surface) inset!important;-webkit-text-fill-color:var(--volo-text)!important}input:-webkit-autofill:hover{caret-color:var(--volo-text);transition:background-color 99999s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--volo-surface) inset!important;-webkit-text-fill-color:var(--volo-text)!important}input:-webkit-autofill:focus{caret-color:var(--volo-text);transition:background-color 99999s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--volo-surface) inset!important;-webkit-text-fill-color:var(--volo-text)!important}textarea:-webkit-autofill{caret-color:var(--volo-text);transition:background-color 99999s ease-in-out;-webkit-box-shadow:0 0 0 1000px var(--volo-surface) inset!important;-webkit-text-fill-color:var(--volo-text)!important}@keyframes voloMainIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes voloZoomIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.volo-pjax-bar{opacity:0;pointer-events:none;z-index:220;background:linear-gradient(90deg, var(--volo-accent), color-mix(in srgb, var(--volo-accent) 70%, #fff));width:0%;height:3px;box-shadow:0 0 10px color-mix(in srgb, var(--volo-accent) 55%, transparent);transition:width .24s cubic-bezier(.22,1,.36,1),opacity .26s;position:fixed;top:0;left:0}.volo-pjax-bar.is-active{opacity:1}.volo-read-bar{opacity:0;pointer-events:none;z-index:210;background:var(--volo-accent);width:0%;height:2.5px;transition:width 80ms linear,opacity .2s;position:fixed;top:0;left:0}.volo-read-bar.is-visible{opacity:.9}.studio-skip,.studio-sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.studio-skip:focus{clip-path:none;z-index:1000;background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:8px;width:auto;height:auto;padding:10px 14px;position:fixed;top:10px;left:10px}.studio-container{width:min(1140px,100% - 64px);margin-inline:auto}#studio-main{flex:1;min-width:0}#studio-main.is-transitioning{animation:.22s cubic-bezier(.22,1,.36,1) voloMainIn}.studio-header{z-index:80;border-bottom:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.studio-header__inner{align-items:center;gap:20px;min-height:72px;display:flex;position:relative}.studio-header-widgets{margin-top:14px}.studio-inline-form{margin:0;padding:0;display:inline-flex}.studio-brand{color:var(--volo-text);flex-shrink:0;align-items:center;gap:11px;min-width:0;font-size:15px;font-weight:600;display:flex}.studio-brand__avatar-wrap{flex-shrink:0;place-items:center;width:38px;height:38px;display:inline-grid}.studio-brand__logo{object-fit:cover;border:1px solid color-mix(in srgb, var(--volo-line) 80%, transparent);background:var(--volo-surface);border-radius:11px;flex-shrink:0;width:38px;height:38px;display:block}.studio-brand__mark,.studio-mark{color:#f0f6f2;background:var(--volo-button);letter-spacing:-.05em;border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:20px;font-weight:760;display:grid}.studio-brand-copy,.studio-brand__copy{flex-direction:column;min-width:0;max-width:220px;line-height:1.32;display:flex}.studio-brand__title,.studio-brand-title{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.studio-brand small,.studio-brand__tagline,.studio-brand-subtitle{color:var(--volo-muted);letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;font-weight:450;display:block;overflow:hidden}.studio-brand small:empty,.studio-brand__tagline:empty,.studio-brand-subtitle:empty{display:none}.studio-nav{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:8px 0;display:flex}.studio-nav__track{display:contents}.studio-custom-links{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.studio-nav__link{appearance:none;color:var(--volo-muted);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;line-height:1.4;transition:color .16s,background-color .16s,border-color .16s;display:inline-flex}.studio-nav__link:hover{color:var(--volo-accent);background:color-mix(in srgb, var(--volo-accent) 7%, transparent)}.studio-nav__link.is-active{color:var(--volo-accent);background:color-mix(in srgb, var(--volo-accent) 12%, transparent);border-color:color-mix(in srgb, var(--volo-accent) 18%, transparent);font-weight:600}.studio-nav__link.is-active:not(.studio-nav-more__summary):before{content:"";background:var(--volo-accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.studio-nav-icon{object-fit:contain;flex-shrink:0;width:15px;height:15px;display:inline-block}[data-theme=dark] img.studio-nav-icon[src*=github-icon\.png]{filter:invert()brightness(1.25)}.studio-nav-more{display:inline-flex;position:relative}.studio-nav-more__summary svg{transition:transform .18s cubic-bezier(.16,1,.3,1)}.studio-nav-more__summary[aria-expanded=true] svg{transform:rotate(180deg)}.volo-popover{opacity:0;transform-origin:100% 0;transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1);transform:translateY(-6px)}.volo-popover.is-open{opacity:1;transform:none}.volo-popover.is-closing{opacity:0;pointer-events:none;transform:translateY(-6px)}.studio-nav-more__menu{border:1px solid var(--volo-line);background:var(--volo-surface);min-width:172px;box-shadow:var(--shadow-md);z-index:120;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.studio-nav-more__item{color:var(--volo-text);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;align-items:center;gap:8px;max-width:100%;padding:8px 10px;font-size:12.5px;transition:background-color .14s,color .14s;display:flex;overflow:hidden}.studio-nav-more__item>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.studio-nav-more__item:hover,.studio-nav-more__item.is-active{background:var(--volo-raised);color:var(--volo-accent)}.studio-nav-more__item.is-active{font-weight:600}.studio-nav-more__btn{appearance:none;cursor:pointer;text-align:left;background:0 0;border:0;width:100%;font-family:inherit}#volo-nav-more-menu .studio-inline-form{width:100%}.studio-more-menu__auth{flex-direction:column;width:100%;display:flex}.studio-reader-entry{align-items:center;gap:8px;display:inline-flex}.studio-only-mobile{display:none!important}.studio-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.studio-icon-btn,.header-icon-btn{border:1px solid var(--volo-line);background:var(--volo-surface);min-width:36px;height:36px;color:var(--volo-muted);white-space:nowrap;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:12px;transition:color .16s,border-color .16s,background-color .16s,transform .16s;display:inline-flex}.studio-icon-btn--square{width:36px;padding:0}.studio-icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px}.studio-icon-btn:hover{color:var(--volo-accent);border-color:color-mix(in srgb, var(--volo-accent) 45%, var(--volo-line));background:var(--volo-raised)}.studio-auth-btn{color:var(--volo-text)}.studio-auth-btn__label{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.volo-appearance,.volo-lang-pop{display:inline-flex;position:relative}#volo-theme-btn .volo-theme-icon{display:none}html[data-mode=light] #volo-theme-btn .volo-theme-icon[data-theme-icon=light],html[data-mode=dark] #volo-theme-btn .volo-theme-icon[data-theme-icon=dark],html[data-mode=system] #volo-theme-btn .volo-theme-icon[data-theme-icon=system],html:not([data-mode=light]):not([data-mode=dark]):not([data-mode=system]) #volo-theme-btn .volo-theme-icon[data-theme-icon=auto]{display:block}.volo-appearance__menu{border:1px solid var(--volo-line);background:var(--volo-surface);width:248px;max-width:calc(100vw - 24px);box-shadow:var(--shadow-md);z-index:120;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 9px);right:0}.volo-appearance__item{appearance:none;width:100%;color:var(--volo-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;transition:background-color .14s,color .14s;display:flex}.volo-appearance__lead{align-items:center;gap:10px;min-width:0;display:flex}.volo-appearance__icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;color:var(--volo-muted);flex-shrink:0;transition:color .14s}.volo-appearance__copy{flex-direction:column;min-width:0;line-height:1.3;display:flex}.volo-appearance__title{font-size:12.5px}.volo-appearance__sub{color:var(--volo-muted);margin-top:2px;font-size:11px;font-weight:400}.volo-appearance__item:hover,.volo-appearance__item.is-selected{background:var(--volo-raised);color:var(--volo-accent)}.volo-appearance__item:hover .volo-appearance__icon,.volo-appearance__item.is-selected .volo-appearance__icon{color:var(--volo-accent)}.volo-appearance__item.is-selected{font-weight:600}.volo-menu-check{opacity:0;color:var(--volo-accent);flex-shrink:0;font-size:12px;font-weight:700}.volo-appearance__item.is-selected .volo-menu-check{opacity:1}.volo-appearance__divider{background:var(--volo-line);height:1px;margin:6px 4px}.volo-lang-btn__text{text-overflow:ellipsis;white-space:nowrap;max-width:84px;overflow:hidden}.volo-lang-caret{opacity:.72;transition:transform .18s cubic-bezier(.16,1,.3,1);width:12px!important;height:12px!important}#volo-lang-btn[aria-expanded=true] .volo-lang-caret{transform:rotate(180deg)}.volo-lang-menu{width:198px;max-height:264px;overflow-y:auto}.volo-lang-meta{color:var(--volo-muted);font-size:11px;font-family:var(--volo-font-mono)}.volo-appearance__item.is-selected .volo-lang-meta{color:var(--volo-accent);font-family:var(--volo-font-sans);font-weight:700}.studio-hero{border:1px solid color-mix(in srgb, var(--volo-accent) 16%, var(--volo-line));border-radius:var(--volo-radius);background:linear-gradient(110deg, color-mix(in srgb, var(--volo-accent) 6%, var(--volo-surface)), var(--volo-surface));grid-template-columns:minmax(0,1fr) 140px;align-items:center;gap:24px;margin:24px 0 26px;padding:20px 28px;display:grid}.studio-hero--simple{grid-template-columns:minmax(0,1fr)}.studio-hero.studio-page-head{margin:0;padding:18px 24px}.studio-feed>.studio-hero.studio-page-head{margin-bottom:18px}.studio-hero-label{color:var(--volo-muted);letter-spacing:.12em;margin:0 0 6px;font-size:11px;font-weight:600}.studio-hero-notice{color:var(--volo-text);overflow-wrap:anywhere;font-size:15.5px;line-height:1.8}.studio-hero-notice>:first-child{margin-top:0}.studio-hero-notice>:last-child{margin-bottom:0}.studio-hero__back{font-family:var(--volo-font-sans);letter-spacing:normal;color:var(--volo-muted);background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:999px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 11px;font-size:12.5px;font-weight:500;text-decoration:none;transition:color .16s,border-color .16s,background .16s;display:inline-flex}.studio-hero__back:hover{color:var(--volo-accent);border-color:var(--volo-accent);background:var(--volo-accent-soft)}.studio-hero__title{margin:0 0 4px;font-size:21px;font-weight:600;line-height:1.4}.studio-hero__subtitle{color:var(--volo-muted);margin:0;font-size:13px}.studio-hero-graphic{width:140px;height:88px;color:var(--volo-accent);display:block}.studio-hero-orbit{fill:currentColor;opacity:.06}.studio-notice-horn{fill:color-mix(in srgb, currentColor 7%, var(--volo-surface));stroke:currentColor;stroke-opacity:.45;stroke-width:1.5px;stroke-linejoin:round}.studio-notice-sound,.studio-notice-detail{fill:none;stroke:currentColor;stroke-opacity:.45;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.studio-layout{grid-template-columns:minmax(0,1fr) 268px;align-items:start;gap:30px;margin:28px 0 60px;display:grid}.studio-layout:has(.studio-section-heading)>.studio-sidebar{padding-top:44px}.studio-layout--article{max-width:850px;margin:28px auto 60px;display:block}.studio-layout--article.has-toc{grid-template-columns:minmax(0,850px) 224px;align-items:start;gap:28px;max-width:1102px;display:grid}.studio-layout--article.studio-layout--tpl-wide,.studio-layout--article:has(article[data-page-template=wide]){max-width:1120px}.studio-layout--article.studio-layout--tpl-wide.has-toc,.studio-layout--article:has(article[data-page-template=wide]).has-toc{grid-template-columns:minmax(0,1fr) 224px;max-width:1140px}article[data-page-template=wide]{max-width:1120px}.studio-layout--article.studio-layout--tpl-minimal,.studio-layout--article:has(article[data-page-template=minimal]){max-width:720px}.studio-layout--article.studio-layout--tpl-minimal.has-toc,.studio-layout--article:has(article[data-page-template=minimal]).has-toc{grid-template-columns:minmax(0,720px) 224px;max-width:972px}article[data-page-template=minimal]{max-width:720px;box-shadow:none;background:0 0;border-color:#0000;margin-inline:auto;padding-inline:8px}.studio-article-col,.studio-feed,.studio-stack{min-width:0}.studio-stack{flex-direction:column;gap:18px;display:flex}.studio-side-rail{flex-direction:column;gap:18px;min-width:0;display:flex}.studio-section-heading{justify-content:space-between;align-items:center;margin:0 0 18px;display:flex}.studio-section-heading h2{margin:0;font-size:16px;font-weight:600}.studio-posts{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.article__item{border:1px solid var(--volo-line);border-radius:var(--volo-radius);background:var(--volo-surface);min-width:0;padding:24px;overflow:hidden}.studio-posts .article__item{cursor:pointer;grid-template-columns:160px minmax(0,1fr);align-content:start;align-items:start;gap:8px 24px;transition:border-color .2s,transform .2s,box-shadow .2s;display:grid;position:relative}.studio-posts .article__item:hover{border-color:color-mix(in srgb, var(--volo-accent) 45%, var(--volo-line));box-shadow:var(--volo-shadow);transform:translateY(-2px)}.studio-post-cover{z-index:2;aspect-ratio:3/2;isolation:isolate;background:var(--volo-raised);border-radius:10px;grid-area:1/1/4;align-self:center;width:160px;line-height:0;display:block;position:relative;overflow:hidden}.studio-post-cover img,.studio-post-cover svg{aspect-ratio:3/2;object-fit:cover;width:100%;height:100%;transition:transform .28s;display:block}.studio-posts .article__item:hover .studio-post-cover img{transform:scale(1.03)}.studio-cover-fallback{width:100%;height:100%;display:block}[data-theme=dark] .studio-post-cover img{filter:brightness(.9)}.studio-art-wash{fill:color-mix(in srgb, var(--volo-accent) 8%, transparent)}.studio-art-paper rect{fill:none;stroke:color-mix(in srgb, var(--volo-accent) 20%, var(--volo-line));stroke-width:2px}.studio-art-sheet rect{fill:var(--volo-surface);stroke:var(--volo-line);stroke-width:2px}.studio-art-ink,.studio-art-spark{fill:none;stroke:var(--volo-accent);stroke-width:5px;stroke-linecap:round;opacity:.45}.studio-art-spark{stroke-width:2px;opacity:.3}.studio-post-meta{color:var(--volo-muted);letter-spacing:.05em;font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-area:1/2;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;display:flex}.studio-post-badges{flex-wrap:wrap;align-items:center;gap:6px;max-width:100%;display:inline-flex}.studio-badge,.volo-badge{vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;background:var(--volo-raised);max-width:min(220px,100%);color:var(--volo-accent);letter-spacing:0;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block;overflow:hidden}.studio-posts .article__title{overflow-wrap:anywhere;grid-area:2/2;margin:0;font-size:19px;font-weight:580;line-height:1.5}.article__title a{color:var(--volo-text);transition:color .16s}.studio-posts .article__title a:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.studio-posts .article__item--full,.studio-posts .article__item:has(.studio-card-full){cursor:default}.studio-posts .article__item--full .article__title a:after,.studio-posts .article__item:has(.studio-card-full) .article__title a:after{display:none}.studio-posts .article__item--full:hover,.studio-posts .article__item:has(.studio-card-full):hover{transform:none}.studio-posts .article__item--full .studio-post-cover,.studio-posts .article__item--title-only .studio-post-cover{grid-row:1/3}.studio-posts .article__item:hover .article__title a,.article__title a:hover{color:var(--volo-accent)}.studio-posts .studio-abstract{color:var(--volo-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:3/2;margin:0;font-size:13px;line-height:1.75;display:-webkit-box;overflow:hidden}.studio-posts .studio-card-full{border-top:1px dashed var(--volo-line);z-index:2;grid-area:3/1/auto/-1;min-width:0;margin-top:10px;padding-top:14px;position:relative}.studio-post-foot{border-top:1px solid var(--volo-line);flex-wrap:wrap;grid-area:4/1/auto/-1;justify-content:space-between;align-items:center;gap:8px 10px;margin-top:4px;padding-top:13px;font-size:11.5px;display:flex}.studio-post-tags{color:var(--volo-muted);flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}.studio-post-tags a{z-index:2;color:var(--volo-muted);transition:color .15s;position:relative}.studio-post-tags a:hover{color:var(--volo-accent)}.studio-cat-chip{vertical-align:middle;text-overflow:ellipsis;white-space:nowrap;background:var(--volo-accent-soft);border-radius:999px;max-width:min(220px,100%);padding:2px 9px;font-weight:600;display:inline-block;overflow:hidden;color:var(--volo-accent)!important}.studio-cat-chip:hover{background:color-mix(in srgb, var(--volo-accent) 18%, transparent)}.studio-post-foot__right{color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:inline-flex}.studio-post-views{white-space:nowrap}.article__more{z-index:2;color:var(--volo-accent);white-space:nowrap;font-weight:500;transition:opacity .15s;position:relative}.article__more:hover{opacity:.85}.studio-empty{background:var(--volo-surface);border:1px dashed color-mix(in srgb, var(--volo-accent) 26%, var(--volo-line));border-radius:var(--volo-radius);text-align:center;padding:44px 32px}.studio-empty__icon{background:var(--volo-accent-soft);width:64px;height:64px;color:var(--volo-accent);border-radius:18px;place-items:center;margin:0 auto 14px;display:grid}.studio-empty h2{color:var(--volo-text);margin:0 0 6px;font-size:18px;font-weight:600}.studio-empty p{color:var(--volo-muted);margin:0;font-size:13.5px}.studio-sidebar,.studio-side{flex-direction:column;gap:18px;min-width:0;display:flex}.sidebar-card{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:var(--volo-radius);min-width:0;padding:20px 22px}.sidebar-card__title{color:var(--volo-text);margin:0 0 14px;font-size:13px;font-weight:600}.sidebar-notice-text{color:var(--volo-muted);overflow-wrap:anywhere;font-size:13px;line-height:1.75}.sidebar-notice-text>:first-child{margin-top:0}.sidebar-notice-text>:last-child{margin-bottom:0}.studio-side-links{flex-direction:column;align-items:flex-start;gap:9px;display:flex}.studio-side-links a{color:var(--volo-muted);align-items:center;gap:5px;font-size:13px;line-height:1.5;transition:color .15s;display:inline-flex}.studio-side-arrow{opacity:.78;font-size:12px;transition:transform .16s,opacity .16s}.studio-side-links a:hover{color:var(--volo-accent)}.studio-side-links a:hover .studio-side-arrow{opacity:1;transform:translate(2px)}.studio-side-cats a{overflow-wrap:anywhere;justify-content:space-between;width:100%;min-width:0}.studio-side-count{font-variant-numeric:tabular-nums;background:var(--volo-raised);color:var(--volo-muted);border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:11.5px}.studio-side-more{border-top:1px dashed var(--volo-line);margin-top:12px;padding-top:10px}.studio-side-more__link{color:var(--volo-accent);align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.studio-side-more__link:hover{text-underline-offset:2px;text-decoration:underline}.studio-side-articles{margin:0;padding:0;list-style:none}.studio-side-articles li+li{margin-top:11px}.studio-side-articles a{-webkit-line-clamp:2;color:var(--volo-muted);-webkit-box-orient:vertical;font-size:13px;line-height:1.65;transition:color .15s;display:-webkit-box;overflow:hidden}.studio-side-articles a:hover{color:var(--volo-accent)}.studio-recent-comments .studio-side-articles a strong{color:var(--volo-text);font-weight:600}.tag-cloud{flex-wrap:wrap;gap:7px;display:flex}.tag-chip{overflow-wrap:anywhere;border:1px solid var(--volo-line);background:var(--volo-raised);max-width:100%;color:var(--volo-accent);border-radius:6px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;transition:border-color .15s,background-color .15s;display:inline-flex}.tag-chip:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.studio-toc-slot{top:calc(var(--volo-header-h,64px) + 20px);align-self:start;min-width:0;position:sticky}.volo-toc-card{border-radius:12px;padding:0;overflow:hidden}.volo-toc-head{width:100%;color:var(--volo-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:10px 14px;font-size:13.5px;font-weight:600;line-height:1.4;transition:background-color .15s,color .15s;display:flex}.volo-toc-head:hover{background:color-mix(in srgb, var(--volo-raised) 65%, transparent)}.volo-toc-head__icon,.volo-toc-head__chevron{width:16px;height:16px;color:var(--volo-muted);flex-shrink:0}.volo-toc-head__chevron{margin-left:auto;transition:transform .24s cubic-bezier(.22,1,.36,1)}.volo-toc-card.is-collapsed .volo-toc-head__chevron{transform:rotate(180deg)}.volo-toc-body{grid-template-rows:1fr;transition:grid-template-rows .24s cubic-bezier(.22,1,.36,1);display:grid}.volo-toc-card.is-collapsed .volo-toc-body{grid-template-rows:0fr}.volo-toc-body__inner{overflow:hidden}.volo-toc-nav,.volo-toc__list{overscroll-behavior:contain;flex-direction:column;gap:2px;max-height:calc(100dvh - 190px);padding:0 8px 10px;display:flex;position:relative;overflow-y:auto}.volo-toc-nav::-webkit-scrollbar{width:5px;height:5px}.volo-toc__list::-webkit-scrollbar{width:5px;height:5px}.volo-toc-nav::-webkit-scrollbar-thumb{background:var(--volo-line);border-radius:999px}.volo-toc__list::-webkit-scrollbar-thumb{background:var(--volo-line);border-radius:999px}.volo-toc-nav::-webkit-scrollbar-button{width:0;height:0;display:none}.volo-toc__list::-webkit-scrollbar-button{width:0;height:0;display:none}@supports not selector(::-webkit-scrollbar){.volo-toc-nav,.volo-toc__list{scrollbar-width:thin;scrollbar-color:var(--volo-line) transparent}}.volo-toc-link{color:var(--volo-text);border:0;border-radius:6px;padding:7px 12px;font-size:13px;line-height:1.5;text-decoration:none;transition:color .15s,background-color .15s,box-shadow .15s;display:block}.volo-toc-link.is-sub{color:var(--volo-muted);font-size:12.5px}.volo-toc-label{-webkit-line-clamp:2;overflow-wrap:anywhere;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.volo-toc-link:hover{color:var(--volo-text);background:var(--volo-raised)}.volo-toc-link.is-active{color:var(--volo-accent);background:var(--volo-raised);box-shadow:inset 2px 0 0 var(--volo-accent);font-weight:600}.volo-toc-drawer{z-index:165;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);backface-visibility:hidden;opacity:0;background:#0c12106b;justify-content:center;align-items:flex-end;padding:16px;transition:opacity .18s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;transform:translateZ(0)}.volo-toc-drawer.is-open{opacity:1}.volo-toc-drawer.is-closing{opacity:0;pointer-events:none}.volo-toc-drawer__panel{background:var(--volo-surface);border:1px solid var(--volo-line);width:min(520px,100%);max-height:74dvh;padding:16px 18px max(20px, env(safe-area-inset-bottom,0px));border-radius:18px;flex-direction:column;transition:transform .2s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;transform:translateY(18px);box-shadow:0 18px 48px #0000003d}.volo-toc-drawer.is-open .volo-toc-drawer__panel{transform:none}.volo-toc-drawer.is-closing .volo-toc-drawer__panel{transform:translateY(14px)}.volo-toc-drawer__head{border-bottom:1px solid var(--volo-line);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.volo-toc-drawer .volo-toc-nav{max-height:58dvh;padding:0}.studio-mobile-toc-bar{top:calc(var(--volo-header-h,64px) + 8px);z-index:26;margin:0 0 14px;position:sticky;display:none!important}.studio-mobile-toc-bar__btn{appearance:none;border:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);height:34px;color:var(--volo-text);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.studio-mobile-toc-bar__btn:hover{border-color:var(--volo-accent);color:var(--volo-accent)}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:28px 0 0;display:flex}.pagination__ellipsis{color:var(--volo-muted);padding:0 2px}.pagination__item,.page-btn,.page-num{border:1px solid var(--volo-line);background:var(--volo-surface);min-width:38px;height:38px;color:var(--volo-text);font-variant-numeric:tabular-nums;border-radius:9px;justify-content:center;align-items:center;padding:0 11px;font-size:12.5px;transition:border-color .15s,color .15s;display:inline-flex}.pagination__item:hover,.page-btn:hover,.page-num:hover{border-color:var(--volo-accent);color:var(--volo-accent)}.pagination__item--current{border-color:var(--volo-button);background:var(--volo-button);font-weight:600;color:#f5f8f5!important}.studio-article{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:var(--volo-radius);min-width:0;padding:40px 44px}.studio-card-pad{padding:24px 28px}.studio-card-title{margin:0 0 14px;font-size:1.1rem;font-weight:600}.studio-article__header{border-bottom:1px solid color-mix(in srgb, var(--volo-line) 75%, transparent);margin-bottom:22px;padding-bottom:18px}.studio-article__title{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 0 12px;font-size:28px;font-weight:620;line-height:1.38}.studio-article__header>.studio-article__title:last-child{margin-bottom:0}.studio-pin-sup{vertical-align:super;background:var(--volo-accent-soft);color:var(--volo-accent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.3;display:inline-block}.article__meta-top{color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12.5px;display:flex}.studio-article-tags{flex-wrap:wrap;align-items:center;gap:6px 8px;display:inline-flex}.studio-article-tag{color:var(--volo-muted);transition:color .15s}.studio-article-tag:hover{color:var(--volo-accent)}.studio-article-counts{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:inline-flex}.studio-meta-link{color:var(--volo-muted);transition:color .15s}.studio-meta-link:hover{color:var(--volo-accent)}@media (width<=640px){.studio-article__title{font-size:21px;line-height:1.4}.article__meta-top,.studio-article-meta{gap:6px 10px}.studio-article-counts{margin-left:0}.studio-article-tags{flex-basis:100%;order:3}}.studio-alternates{color:var(--volo-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:.86rem;display:flex}.volo-banner{background:color-mix(in srgb, var(--volo-accent) 6%, var(--volo-surface));border:1px solid color-mix(in srgb, var(--volo-accent) 22%, var(--volo-line));color:var(--volo-text);border-radius:10px;margin-bottom:20px;padding:12px 16px;font-size:13px;line-height:1.6}.volo-banner--warn{background:color-mix(in srgb, var(--volo-warn) 7%, var(--volo-surface));border:1px solid color-mix(in srgb, var(--volo-warn) 24%, var(--volo-line));color:var(--volo-text)}.volo-banner--err{background:color-mix(in srgb, var(--volo-danger) 7%, var(--volo-surface));border:1px solid color-mix(in srgb, var(--volo-danger) 24%, var(--volo-line));color:var(--volo-danger);border-radius:10px}.volo-series-box{background:var(--volo-raised);border:1px solid var(--volo-line);padding:0;overflow:hidden}.volo-series-box__summary{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:12px 16px;list-style:none;display:flex}.volo-series-box__summary::-webkit-details-marker{display:none}.volo-series-box__title{color:var(--volo-text);overflow-wrap:anywhere;min-width:0;font-weight:600}.volo-series-box__quick{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.volo-series-box__step,.volo-series-box__overview{border:1px solid var(--volo-line);background:var(--volo-surface);color:var(--volo-accent);white-space:nowrap;border-radius:6px;align-items:center;padding:2px 8px;font-weight:600;transition:border-color .14s,background-color .14s;display:inline-flex}.volo-series-box__step:hover,.volo-series-box__overview:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-series-box__chevron{width:15px;height:15px;color:var(--volo-muted);flex-shrink:0;transition:transform .2s}.volo-series-box[open] .volo-series-box__chevron{transform:rotate(180deg)}.volo-series-box__list{border-top:1px solid var(--volo-line);flex-direction:column;gap:3px;max-height:220px;margin:0;padding:8px 12px 12px;list-style:none;display:flex;overflow-y:auto}@supports not selector(::-webkit-scrollbar){.volo-series-box__list{scrollbar-width:thin;scrollbar-color:var(--volo-line) transparent}}.volo-series-box__link{color:var(--volo-text);border-radius:6px;align-items:baseline;gap:8px;padding:5px 8px;font-size:13px;line-height:1.45;transition:background-color .14s,color .14s;display:flex}a.volo-series-box__link:hover{background:var(--volo-surface);color:var(--volo-accent)}.volo-series-box__link.is-current{background:var(--volo-accent-soft);color:var(--volo-accent);font-weight:600}.volo-series-box__num{font-family:var(--volo-font-mono);color:var(--volo-muted);flex-shrink:0;font-size:11.5px}.volo-series-box__link.is-current .volo-series-box__num{color:var(--volo-accent)}.volo-series-box__ep-title{overflow-wrap:anywhere;min-width:0}.studio-article__foot-tags{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.studio-tags-more-btn{appearance:none;cursor:pointer;font-family:var(--volo-font-sans);color:var(--volo-muted);background:var(--volo-surface);font-weight:600}.studio-tags-more-btn:hover{color:var(--volo-accent);border-color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-license-banner{color:var(--volo-muted);overflow-wrap:anywhere;word-break:break-word;margin-top:24px;margin-bottom:0;font-size:.85rem}.volo-license-box{border:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-raised) 72%, var(--volo-surface));color:var(--volo-muted);overflow-wrap:anywhere;word-break:break-word;border-radius:12px;align-items:flex-start;gap:10px;margin-top:22px;padding:13px 16px;font-size:12.5px;line-height:1.65;display:flex}.volo-license-box__mark{background:var(--volo-accent-soft);width:22px;height:22px;color:var(--volo-accent);border-radius:6px;flex-shrink:0;place-items:center;margin-top:1px;font-size:12px;font-weight:700;display:inline-grid}.volo-license-box__body{flex:1;min-width:0}.volo-license-link{color:var(--volo-accent);text-underline-offset:2px;text-decoration:underline}.volo-license-url{font-family:var(--volo-font-mono);margin-top:4px;font-size:12px}.volo-prose{word-break:break-word;overflow-wrap:anywhere;margin-top:20px;font-size:15px;line-height:1.9}.volo-prose figure,.volo-codeblock{max-width:100%;margin:1.3em 0}.volo-codeblock>.volo-code-block{margin:0}.volo-prose :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:calc(var(--volo-header-h,64px) + 20px)}.volo-prose h1,.volo-prose h2,.volo-prose h3,.volo-prose h4{margin-top:1.7em;margin-bottom:.6em;line-height:1.4}.volo-prose img{cursor:zoom-in;border-radius:10px}.volo-prose :is([align=center],center){text-align:center}.volo-prose [align=right]{text-align:right}html[data-theme=dark] .volo-prose img[src*="/images/github-icon.svg"],html[data-theme=dark] .volo-prose img[src*="/images/admin-"]{filter:invert()brightness(1.15)}.volo-prose blockquote{border-left:3px solid var(--volo-accent);background:var(--volo-raised);color:var(--volo-muted);border-radius:0 8px 8px 0;margin:1.2em 0;padding:10px 18px}.volo-prose code{font-family:var(--volo-font-mono);background:var(--volo-code-bg);border-radius:5px;padding:2px 6px;font-size:.88em}.volo-prose mark{background:color-mix(in srgb, var(--volo-warn) 24%, transparent);color:var(--volo-text);border-radius:4px;padding:1px 5px}.volo-prose kbd{font-family:var(--volo-font-mono);color:var(--volo-text);background:var(--volo-raised);border:1px solid var(--volo-line);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:.82em;line-height:1.45;display:inline-block}.volo-prose hr{background:var(--volo-line);border:0;height:1px;margin:2em 0}.volo-inline-toc{border:1px solid var(--volo-line);background:var(--volo-raised);border-radius:10px;margin:1.2em 0;padding:14px 18px}.volo-inline-toc__title{color:var(--volo-text);margin:0 0 8px;font-size:13.5px;font-weight:650}.volo-inline-toc__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.volo-inline-toc__item a{color:var(--volo-accent);font-size:13.5px;line-height:1.55;text-decoration:none}.volo-inline-toc__item a:hover{text-decoration:underline}.volo-inline-toc__item--d1{padding-left:16px}.volo-inline-toc__item--d2{padding-left:32px}.volo-inline-toc__item--d3{padding-left:48px}.volo-inline-toc__item--d4{padding-left:64px}.volo-media-figure video{background:#0b0e11;border-radius:10px;width:100%;max-height:540px;display:block}.volo-media-figure--audio audio{width:100%;display:block}.volo-media-embed{aspect-ratio:16/9;border:1px solid var(--volo-line);background:#0b0e11;border-radius:10px;width:100%;position:relative;overflow:hidden}.volo-media-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.volo-callout{--callout-accent:var(--volo-accent);border:1px solid color-mix(in srgb, var(--callout-accent) 26%, var(--volo-line));border-left:3.5px solid var(--callout-accent);background:color-mix(in srgb, var(--callout-accent) 7%, var(--volo-surface));color:var(--volo-text);border-radius:0 10px 10px 0;margin:1.25em 0;padding:12px 16px}.volo-callout__title{color:var(--callout-accent);align-items:center;gap:6px;margin:0 0 6px;font-size:.9rem;font-weight:650;line-height:1.4;display:flex}.volo-callout__body>:first-child{margin-top:0}.volo-callout__body>:last-child{margin-bottom:0}.volo-callout-note,.volo-callout--note,.volo-callout[data-callout=note]{--callout-accent:#1d64a6}.volo-callout-tip,.volo-callout--tip,.volo-callout[data-callout=tip]{--callout-accent:#1e7350}.volo-callout-important,.volo-callout--important,.volo-callout[data-callout=important]{--callout-accent:#6d40a8}.volo-callout-warning,.volo-callout--warning,.volo-callout[data-callout=warning]{--callout-accent:#9a5d13}.volo-callout-caution,.volo-callout--caution,.volo-callout[data-callout=caution]{--callout-accent:#b42318}html[data-theme=dark] .volo-callout-note,html[data-theme=dark] .volo-callout--note,html[data-theme=dark] .volo-callout[data-callout=note],[data-theme=dark] .volo-callout-note,[data-theme=dark] .volo-callout--note,[data-theme=dark] .volo-callout[data-callout=note]{--callout-accent:#7ec0f8}html[data-theme=dark] .volo-callout-tip,html[data-theme=dark] .volo-callout--tip,html[data-theme=dark] .volo-callout[data-callout=tip],[data-theme=dark] .volo-callout-tip,[data-theme=dark] .volo-callout--tip,[data-theme=dark] .volo-callout[data-callout=tip]{--callout-accent:#8ad6ad}html[data-theme=dark] .volo-callout-important,html[data-theme=dark] .volo-callout--important,html[data-theme=dark] .volo-callout[data-callout=important],[data-theme=dark] .volo-callout-important,[data-theme=dark] .volo-callout--important,[data-theme=dark] .volo-callout[data-callout=important]{--callout-accent:#cba8fa}html[data-theme=dark] .volo-callout-warning,html[data-theme=dark] .volo-callout--warning,html[data-theme=dark] .volo-callout[data-callout=warning],[data-theme=dark] .volo-callout-warning,[data-theme=dark] .volo-callout--warning,[data-theme=dark] .volo-callout[data-callout=warning]{--callout-accent:#f3bf6d}html[data-theme=dark] .volo-callout-caution,html[data-theme=dark] .volo-callout--caution,html[data-theme=dark] .volo-callout[data-callout=caution],[data-theme=dark] .volo-callout-caution,[data-theme=dark] .volo-callout--caution,[data-theme=dark] .volo-callout[data-callout=caution]{--callout-accent:#fb9aa5}.volo-code-block{border:1px solid var(--volo-line);background:var(--volo-code-bg);border-radius:10px;max-width:100%;margin:1.3em 0;overflow:hidden}.volo-code-head{border-bottom:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-surface) 55%, var(--volo-code-bg));color:var(--volo-muted);justify-content:space-between;align-items:center;padding:6px 12px;font-size:11px;display:flex}.volo-code-lang{font-family:var(--volo-font-mono);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.volo-prose pre{background:var(--volo-code-bg);border:1px solid var(--volo-line);border-radius:10px;max-width:100%;margin:1.3em 0;padding:14px 18px;font-size:13px;line-height:1.65;position:relative;overflow-x:auto}.volo-code-block pre{border:none;border-radius:0;margin:0}.volo-prose pre:has(.ln),.volo-prose pre:has(.lnt),pre.chroma:has(.ln),pre.chroma:has(.lnt){padding-left:0}.volo-prose pre code{background:0 0;padding:0;font-size:13px;line-height:1.65}.volo-prose .line-numbers-wrapper,.volo-prose .line-numbers-rows{display:none}.volo-prose .katex{vertical-align:baseline;max-width:100%;padding:.08em 0;line-height:1.25;display:inline-block;overflow:visible}.volo-prose .katex-display>.katex{max-width:none;padding:0;display:block;overflow:visible}.katex-display{-webkit-overflow-scrolling:touch;max-width:100%;padding:4px 0;overflow:auto hidden}.mermaid,.volo-prose pre.mermaid,.volo-prose div.mermaid{text-align:center;background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:10px;max-width:100%;margin:1.2em 0;padding:14px 12px;overflow-x:auto}.mermaid:not(:has(svg)),.volo-prose pre.mermaid:not(:has(svg)),.volo-prose div.mermaid:not(:has(svg)){text-align:left;font-family:var(--volo-font-mono);white-space:pre;color:var(--volo-muted);font-size:12.5px;line-height:1.6}.mermaid svg{max-width:100%;height:auto}.volo-prose table:not(.volo-github-repos-table){border-collapse:collapse;word-break:normal;overflow-wrap:normal;width:100%;margin:1.3em 0;font-size:13.5px;line-height:1.6}.volo-prose table:not(.volo-github-repos-table) th,.volo-prose table:not(.volo-github-repos-table) td{border:1px solid var(--volo-line);text-align:left;vertical-align:top;word-break:normal;overflow-wrap:normal;padding:9px 13px}.volo-prose table:not(.volo-github-repos-table) th{background:var(--volo-raised);color:var(--volo-text);white-space:nowrap;font-weight:600}.volo-prose table:not(.volo-github-repos-table) tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--volo-raised) 48%, transparent)}.volo-table-scroll,.volo-table-wrap,.vc-item-body .volo-table-scroll,.vc-content .volo-table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--volo-line);background:var(--volo-surface);border-radius:10px;max-width:100%;margin:1.3em 0;overflow-x:auto}.volo-table-scroll td,.volo-table-wrap td{overflow-wrap:break-word;max-width:min(72vw,420px)}.volo-prose .volo-table-scroll>table:not(.volo-github-repos-table),.volo-prose .volo-table-wrap>table:not(.volo-github-repos-table),.volo-table-scroll>table,.volo-table-wrap>table{border:none;width:max-content;min-width:100%;margin:0}.volo-table-scroll>table th:first-child,.volo-table-scroll>table td:first-child,.volo-table-wrap>table th:first-child,.volo-table-wrap>table td:first-child{border-left:none}.volo-table-scroll>table th:last-child,.volo-table-scroll>table td:last-child,.volo-table-wrap>table th:last-child,.volo-table-wrap>table td:last-child{border-right:none}.volo-table-scroll>table thead tr:first-child th,.volo-table-wrap>table thead tr:first-child th{border-top:none}.volo-table-scroll>table tbody tr:last-child td,.volo-table-wrap>table tbody tr:last-child td{border-bottom:none}html[data-theme=dark] font[color=\#2563eb i],html[data-theme=dark] font[color=\#1d4ed8 i],html[data-theme=dark] font[color=\#1e40af i]{color:#93c5fd}html[data-theme=dark] font[color=\#dc2626 i],html[data-theme=dark] font[color=\#b91c1c i],html[data-theme=dark] font[color=\#991b1b i]{color:#fca5a5}html[data-theme=dark] font[color=\#16a34a i],html[data-theme=dark] font[color=\#15803d i],html[data-theme=dark] font[color=\#166534 i]{color:#86efac}html[data-theme=dark] font[color=\#d97706 i],html[data-theme=dark] font[color=\#b45309 i],html[data-theme=dark] font[color=\#92400e i]{color:#fcd34d}html[data-theme=dark] font[color=\#7c3aed i],html[data-theme=dark] font[color=\#6d28d9 i]{color:#c4b5fd}html[data-theme=dark] font[color=\#0891b2 i],html[data-theme=dark] font[color=\#0e7490 i]{color:#67e8f9}html[data-theme=dark] font[color=\#db2777 i],html[data-theme=dark] font[color=\#be185d i]{color:#f9a8d4}html[data-theme=dark] font[color=\#111827 i],html[data-theme=dark] font[color=\#1f2937 i],html[data-theme=dark] font[color=\#374151 i],html[data-theme=dark] font[color=\#4b5563 i]{color:var(--volo-text)}.volo-github-repos-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--volo-line);background:var(--volo-surface);max-width:100%;box-shadow:var(--shadow-sm);border-radius:12px;margin:1.4em 0;overflow-x:auto}.volo-prose pre::-webkit-scrollbar-track{margin-inline:6px}.volo-table-scroll::-webkit-scrollbar-track{margin-inline:6px}.volo-table-wrap::-webkit-scrollbar-track{margin-inline:6px}.volo-github-repos-wrap::-webkit-scrollbar-track{margin-inline:6px}table.volo-github-repos-table{table-layout:fixed;border-collapse:collapse;width:100%;min-width:580px;margin:0;font-size:13.5px}table.volo-github-repos-table th,table.volo-github-repos-table td{border:none;border-bottom:1px solid var(--volo-line);vertical-align:middle;padding:10px 12px}table.volo-github-repos-table tbody tr:last-child td{border-bottom:none}table.volo-github-repos-table tbody tr:hover{background:color-mix(in srgb, var(--volo-raised) 60%, transparent)}table.volo-github-repos-table th:first-child,table.volo-github-repos-table td:first-child{word-break:break-word;width:24%;font-weight:600}table.volo-github-repos-table th:nth-child(2),table.volo-github-repos-table td:nth-child(2){width:auto}table.volo-github-repos-table th:nth-child(3),table.volo-github-repos-table td:nth-child(3),table.volo-github-repos-table th:nth-child(4),table.volo-github-repos-table td:nth-child(4){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:74px}table.volo-github-repos-table th:nth-child(5),table.volo-github-repos-table td:nth-child(5){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:112px;color:var(--volo-muted);font-size:12.5px}.volo-github-repo-desc{-webkit-line-clamp:2;color:var(--volo-muted);word-break:break-word;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.volo-github-repo-desc.is-truncatable{cursor:pointer;border-radius:6px;transition:color .15s}.volo-github-repo-desc.is-truncatable:hover,.volo-github-repo-desc.is-truncatable:focus-visible{color:var(--volo-text);outline:none}.volo-github-repo-desc.is-expanded{-webkit-line-clamp:unset;color:var(--volo-text);display:block;overflow:visible}.chroma .line{min-height:1.55em;display:block}.chroma .lntable{border-collapse:collapse;border-spacing:0;border:0;width:100%;margin:0;padding:0}.chroma .lntd{vertical-align:top;border:0;margin:0;padding:0}.chroma .lntd:first-child{-webkit-user-select:none;user-select:none;width:1%}.chroma .hl{background:color-mix(in srgb, var(--volo-accent) 13%, transparent);width:100%;display:block}.chroma .ln,.chroma .lnt{z-index:2;text-align:right;background:var(--volo-code-bg);min-width:3.8em;color:var(--volo-muted);opacity:.55;-webkit-user-select:none;user-select:none;border-right:1px solid var(--volo-line);font-variant-numeric:tabular-nums;margin-right:.75em;padding-left:14px;padding-right:12px;display:inline-block;position:sticky;left:0}.chroma .cl{white-space:pre}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .ow{color:var(--volo-syn-kw);font-weight:600}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .sh,.chroma .sx{color:var(--volo-syn-str)}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mo,.chroma .kc{color:var(--volo-syn-num)}.chroma .nf,.chroma .fm,.chroma .na{color:var(--volo-syn-fn)}.chroma .nd{color:var(--volo-syn-fn);font-weight:600}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--volo-syn-var)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs{color:var(--volo-syn-cm);font-style:italic}.chroma .cp{color:var(--volo-syn-kw);font-style:normal;font-weight:600}.chroma .ni{color:var(--volo-syn-num);font-weight:600}.chroma .kt,.chroma .nc,.chroma .nn,.chroma .nb,.chroma .nt,.chroma .sr{color:var(--volo-syn-ty)}.chroma .gd{color:var(--volo-danger);background:color-mix(in srgb, var(--volo-danger) 10%, transparent)}.chroma .gi{color:var(--volo-accent);background:var(--volo-accent-soft)}.chroma .gu{color:var(--volo-syn-kw);font-weight:700}.chroma .gs{font-weight:700}.chroma .ge{font-style:italic}.volo-prose pre :is(.token.keyword,.token.atrule,.token.important,.hljs-keyword,.hljs-selector-tag,.hljs-meta-keyword),.chroma .keyword{color:var(--volo-syn-kw);font-weight:600}.volo-prose pre :is(.token.string,.token.char,.token.attr-value,.token.regex,.token.template-string,.hljs-string,.hljs-regexp,.hljs-doctag),.chroma .string{color:var(--volo-syn-str)}.volo-prose pre :is(.token.number,.token.boolean,.token.constant,.hljs-number,.hljs-literal),.chroma :is(.number,.literal){color:var(--volo-syn-num)}.volo-prose pre :is(.token.function,.token.method,.token.annotation,.token.decorator,.token.metadata,.hljs-title,.hljs-function,.hljs-meta),.chroma :is(.title,.function,.meta){color:var(--volo-syn-fn)}.volo-prose pre :is(.token.class-name,.token.builtin,.token.namespace,.token.type-annotation,.token.tag,.hljs-type,.hljs-built_in,.hljs-name),.chroma :is(.built_in,.type){color:var(--volo-syn-ty)}.volo-prose pre :is(.token.variable,.token.property,.token.attr-name,.hljs-variable,.hljs-attr,.hljs-attribute),.chroma :is(.params,.attr){color:var(--volo-syn-var)}.volo-prose pre :is(.token.comment,.token.prolog,.token.doctype,.token.cdata,.hljs-comment,.hljs-quote),.chroma .comment{color:var(--volo-syn-cm);font-style:italic}.volo-prose pre :is(.token.inserted,.hljs-addition){color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-prose pre :is(.token.deleted,.hljs-deletion){color:var(--volo-danger);background:color-mix(in srgb, var(--volo-danger) 10%, transparent)}.footnote-ref{color:var(--volo-accent);padding:0 2px;font-size:.78em;font-weight:600;text-decoration:none}.footnote-ref:hover{text-decoration:underline}.footnotes{border-top:1px solid var(--volo-line);color:var(--volo-muted);margin-top:2.2em;padding-top:1.1em;font-size:.88rem}.footnotes hr{display:none}.footnotes ol{flex-direction:column;gap:6px;margin:0;padding-left:1.4em;display:flex}.footnotes li{scroll-margin-top:calc(var(--volo-header-h,64px) + 20px);transition:background-color .3s}.volo-prose .footnotes li:target,.volo-prose .footnotes li.is-target{background:var(--volo-accent-soft);color:var(--volo-text);border-radius:6px;margin-inline:-8px;padding:3px 8px}.footnotes li p{margin:.2em 0}.footnote-backref{color:var(--volo-accent);margin-left:4px;text-decoration:none}.volo-copy-btn{border:1px solid var(--volo-line);background:var(--volo-surface);color:var(--volo-muted);cursor:pointer;border-radius:6px;padding:2px 9px;font-size:11px;transition:color .15s,border-color .15s}.volo-copy-btn:hover{color:var(--volo-accent);border-color:var(--volo-accent)}.volo-lock-card{border:1px dashed var(--volo-accent);border-radius:var(--volo-radius);background:var(--volo-raised);text-align:center;flex-direction:column;align-items:center;gap:4px;margin:22px 0;padding:24px;display:flex}.volo-lock-card__icon{margin-bottom:4px;font-size:1.5rem}.volo-lock-title{color:var(--volo-text);margin:0;font-size:.98rem;font-weight:600}.volo-lock-card__desc,.volo-lock-hint{color:var(--volo-muted);margin:4px 0 8px;font-size:.9rem}.volo-lock-block--unlocked{border:1px solid color-mix(in srgb, var(--volo-accent) 28%, var(--volo-line));background:color-mix(in srgb, var(--volo-accent) 4%, var(--volo-surface));border-radius:10px;margin:1.2em 0;padding:14px 18px}.volo-unlock-form{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;margin-top:8px;display:inline-flex}.volo-unlock-err{width:100%;color:var(--volo-danger);font-size:.86rem}.volo-embed-book,.volo-prose a.volo-embed-book{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-text);cursor:pointer;border-radius:12px;align-items:center;gap:16px;min-width:0;margin:1.3em 0;padding:15px 18px;transition:border-color .16s,transform .16s,box-shadow .16s,background-color .16s;display:flex;text-decoration:none!important}.volo-embed-book:hover,.volo-prose a.volo-embed-book:hover{border-color:color-mix(in srgb, var(--volo-accent) 48%, var(--volo-line));box-shadow:var(--volo-shadow);transform:translateY(-2px)}.volo-embed-book:focus-visible,.volo-book-tile:focus-visible{outline:2px solid var(--volo-accent);outline-offset:2px}.volo-embed-book__cover-link{flex-shrink:0;line-height:0;display:block}.volo-embed-book__cover,.volo-prose .volo-embed-book__cover{aspect-ratio:3/4;object-fit:cover;background:var(--volo-surface);border:1px solid var(--volo-line);cursor:pointer;border-radius:8px;flex-shrink:0;width:64px;height:auto;margin:0}.volo-embed-book__cover--fallback,.volo-prose .volo-embed-book__cover--fallback{background:linear-gradient(150deg, color-mix(in srgb, var(--volo-accent) 18%, var(--volo-surface)), var(--volo-surface));border-color:color-mix(in srgb, var(--volo-accent) 28%, var(--volo-line));place-items:center;display:grid;position:relative;overflow:hidden;text-decoration:none!important}.volo-embed-book__spine{background:color-mix(in srgb, var(--volo-accent) 42%, transparent);width:7px;position:absolute;inset:0 auto 0 0}.volo-embed-book__monogram{color:var(--volo-accent);letter-spacing:-.02em;font-size:1.35rem;font-weight:700;line-height:1}.volo-embed-book__body{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.volo-embed-book__head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.volo-embed-book__title{color:var(--volo-text);overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.45;text-decoration:none;transition:color .15s}.volo-embed-book:hover .volo-embed-book__title,.volo-book-tile:hover .volo-embed-book__title{color:var(--volo-accent)}.volo-embed-book__chapters{background:var(--volo-accent-soft);color:var(--volo-accent);border-radius:999px;align-items:center;padding:1px 8px;font-size:.74rem;font-weight:600;line-height:1.45;display:inline-flex}.volo-embed-book__desc,.volo-prose .volo-embed-book__desc{color:var(--volo-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.86rem;line-height:1.6;display:-webkit-box;overflow:hidden}.volo-embed-book__arrow{color:var(--volo-muted);opacity:.65;flex-shrink:0;font-size:1rem;line-height:1;transition:color .16s,opacity .16s,transform .16s}.volo-embed-book:hover .volo-embed-book__arrow,.volo-book-tile:hover .volo-embed-book__arrow{color:var(--volo-accent);opacity:1;transform:translate(3px)}.volo-embed-bookshelf{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:14px;margin:1.4em 0;display:grid}.volo-embed-bookshelf--empty{border:1px dashed var(--volo-line);background:var(--volo-raised);text-align:center;border-radius:12px;padding:20px 22px;display:block}.volo-embed-bookshelf__empty{color:var(--volo-muted);margin:0;font-size:.9rem}.volo-book-tile,.volo-prose a.volo-book-tile{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-text);cursor:pointer;border-radius:12px;align-items:center;gap:14px;min-width:0;padding:14px 16px;transition:border-color .16s,transform .16s,box-shadow .16s,background-color .16s;display:flex;text-decoration:none!important}.volo-book-tile:hover,.volo-prose a.volo-book-tile:hover{border-color:color-mix(in srgb, var(--volo-accent) 48%, var(--volo-line));box-shadow:var(--volo-shadow);transform:translateY(-2px)}.volo-book-tile .volo-embed-book__cover{width:56px}.volo-input{border:1px solid var(--volo-line);background:var(--volo-surface);height:38px;color:var(--volo-text);border-radius:8px;outline:none;min-width:0;padding:0 12px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.volo-input:focus{border-color:var(--volo-accent);box-shadow:0 0 0 3px var(--volo-accent-soft)}.volo-btn{background:var(--volo-button);height:38px;color:var(--volo-accent-contrast);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,opacity .15s;display:inline-flex}.volo-btn:hover{background:var(--volo-button-hover);color:var(--volo-accent-contrast)}.volo-btn:disabled{opacity:.6;cursor:not-allowed}.volo-btn--sm{border-radius:7px;height:32px;padding:0 13px;font-size:12.5px}.volo-btn--danger{background:var(--volo-danger-solid);color:var(--volo-on-danger)}.volo-btn--danger:hover{background:color-mix(in srgb, var(--volo-danger-solid) 88%, #000);color:var(--volo-on-danger)}html[data-theme=dark] .volo-btn--danger:hover,[data-theme=dark] .volo-btn--danger:hover{background:color-mix(in srgb, var(--volo-danger-solid) 88%, #fff);color:var(--volo-on-danger)}.studio-inline-btn{align-items:center;display:inline-flex}.volo-podcast-box,.volo-podcast-card{background:var(--volo-raised);border:1px solid var(--volo-line);border-radius:10px;min-width:0;margin:18px 0 22px;padding:16px 18px}.volo-podcast-box__head,.volo-podcast-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.volo-podcast-speed{font-variant-numeric:tabular-nums;min-width:44px;height:28px}.volo-podcast-box audio,.volo-podcast-card__player{width:100%;min-width:0;max-width:100%;margin-top:8px;display:block}a.volo-audio-ts,button.volo-audio-ts,.volo-audio-ts,.volo-ts-seek{appearance:none;border:1px solid var(--volo-line);background:var(--volo-accent-soft);color:var(--volo-accent);font-family:var(--volo-font-mono);vertical-align:baseline;cursor:pointer;border-radius:6px;align-items:center;padding:1px 7px;font-size:12px;line-height:1.45;transition:border-color .14s,background-color .14s;display:inline-flex;text-decoration:none!important}a.volo-audio-ts:hover,button.volo-audio-ts:hover,.volo-audio-ts:hover,.volo-ts-seek:hover{border-color:var(--volo-accent);background:color-mix(in srgb, var(--volo-accent) 18%, transparent)}.volo-podcast-mini{left:16px;bottom:max(16px, env(safe-area-inset-bottom));z-index:92;border:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-surface) 95%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(376px,100vw - 82px);box-shadow:var(--shadow-md);border-radius:14px;flex-direction:column;gap:6px;padding:10px 12px;display:flex;position:fixed}.volo-podcast-mini__head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.volo-podcast-mini__title{min-width:0;color:var(--volo-text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;font-weight:600;overflow:hidden}.volo-podcast-mini__title:hover{color:var(--volo-accent)}.volo-podcast-mini__close{appearance:none;border:1px solid var(--volo-line);background:var(--volo-raised);width:24px;height:24px;color:var(--volo-muted);cursor:pointer;border-radius:6px;flex-shrink:0;place-items:center;font-size:12px;display:grid}.volo-podcast-mini__close:hover{color:var(--volo-danger);border-color:var(--volo-danger)}.volo-podcast-mini audio{width:100%;height:34px;margin:0;display:block}.volo-share-bar{border:1px solid var(--volo-line);background:var(--volo-raised);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding:11px 14px;display:flex}.volo-share-bar__label{color:var(--volo-muted);font-size:12px;font-weight:600}.volo-share-bar__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.volo-share-btn.is-copied{color:var(--volo-accent);border-color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-reactions{flex-wrap:wrap;gap:8px;margin:20px 0 24px;display:flex}.volo-reaction-btn{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;transition:border-color .15s,background-color .15s,transform .14s;display:inline-flex}.volo-reaction-btn:active{transform:scale(.96)}.volo-reaction-btn.is-active,.volo-reaction-btn:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-neighbors,.studio-neighbors{border-top:1px solid var(--volo-line);grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px;padding-top:20px;display:grid}.volo-neighbor-card,.studio-neighbor{border:1px solid var(--volo-line);background:var(--volo-raised);min-width:0;color:var(--volo-text);border-radius:10px;padding:12px 14px;transition:border-color .15s,transform .15s}.volo-neighbor-card:hover,.studio-neighbor:hover{border-color:var(--volo-accent);transform:translateY(-1px)}.volo-neighbor-card__dir{color:var(--volo-muted);margin-bottom:3px;font-size:.78rem}.volo-neighbor-card strong,.studio-neighbor strong{overflow-wrap:anywhere;word-break:break-word;display:block}.studio-related-block{border-top:1px solid var(--volo-line);margin-top:26px;padding-top:18px}.studio-related-block__title{margin:0 0 10px;font-size:1rem}.studio-related-list{flex-direction:column;gap:8px;display:flex}.studio-related-item{min-width:0;color:var(--volo-text);justify-content:space-between;align-items:baseline;gap:12px;transition:color .15s;display:flex}.studio-related-item strong{overflow-wrap:anywhere;min-width:0}.studio-related-item:hover{color:var(--volo-accent)}.studio-related-item time{color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.82rem}.studio-backlinks-more{margin-top:10px}.studio-backlinks-more__summary{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-accent);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:12px;font-weight:600;list-style:none;transition:border-color .14s,background-color .14s;display:inline-flex}.studio-backlinks-more__summary::-webkit-details-marker{display:none}.studio-backlinks-more__summary:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.studio-related-list--more{margin-top:10px}.bookshelf-grid{grid-template-columns:repeat(auto-fill,minmax(min(236px,100%),1fr));gap:16px;display:grid}.bookshelf-grid.js-book-filter-grid{grid-template-columns:repeat(auto-fill,minmax(min(168px,100%),1fr));gap:14px}.book-card{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:18px;transition:border-color .16s,transform .16s,box-shadow .16s;display:flex;overflow:hidden}.js-book-filter-grid .book-card{border-radius:11px;gap:8px;padding:12px}.js-book-filter-grid .book-card__meta{gap:6px;font-size:.76rem}.js-book-filter-grid .book-card__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.96rem;line-height:1.4;display:-webkit-box;overflow:hidden}.js-book-filter-grid .studio-tax-card__desc{-webkit-line-clamp:2;font-size:.82rem;line-height:1.5}.book-card:hover{border-color:color-mix(in srgb, var(--volo-accent) 45%, var(--volo-line));box-shadow:var(--volo-shadow);transform:translateY(-2px)}.studio-tax-card{color:var(--volo-text)}.studio-tax-card__head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.studio-tax-card__head strong{overflow-wrap:anywhere;min-width:0}.studio-tax-card__desc{color:var(--volo-muted);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.88rem;line-height:1.6;display:-webkit-box;overflow:hidden}.studio-tax-tag{overflow-wrap:anywhere;max-width:100%;padding:6px 13px;font-size:.93rem}.studio-tax-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.studio-tax-search{flex:220px;align-items:center;gap:8px;max-width:360px;display:flex}.studio-tax-search__input{flex:1;width:100%;height:36px}.studio-tax-search__btn{flex-shrink:0;height:36px;padding:0 13px}.studio-tax-sort,.studio-tax-sorts{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.studio-sort-pill{border:1px solid var(--volo-line);background:var(--volo-raised);height:32px;color:var(--volo-muted);border-radius:999px;align-items:center;padding:0 12px;font-size:12px;font-weight:600;transition:border-color .14s,color .14s,background-color .14s;display:inline-flex}.studio-sort-pill:hover,.studio-sort-pill.is-active{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.studio-tax-toolbar__right{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.studio-tag-clear{flex-shrink:0;height:36px;padding:0 11px;font-size:12px}.studio-tag-count{font-variant-numeric:tabular-nums}.studio-collection-toolbar{flex-direction:column;gap:10px;display:flex}.studio-collection-toolbar--inline{border-bottom:1px solid var(--volo-line);margin-bottom:16px;padding-bottom:14px}.studio-collection-search-wrap{align-items:center;gap:8px;max-width:380px;display:flex}.studio-collection-filter{flex:1;width:100%;height:36px}.studio-collection-count{font-variant-numeric:tabular-nums;flex-shrink:0}.studio-jump-pills{align-items:center;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}@supports not selector(::-webkit-scrollbar){.studio-jump-pills{scrollbar-width:thin}}.studio-jump-pill{border:1px solid var(--volo-line);background:var(--volo-raised);height:30px;color:var(--volo-text);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:0 11px;font-size:12px;font-weight:550;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}.studio-jump-pill small{color:var(--volo-muted);font-variant-numeric:tabular-nums;font-size:11px}.studio-jump-pill:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.studio-muted-empty{text-align:center;color:var(--volo-muted);margin:10px 0 0;padding:14px;font-size:13px}.studio-archive-timeline{flex-direction:column;gap:16px;display:flex}.studio-archive-years{top:calc(var(--volo-header-h,64px) + 8px);z-index:25;border:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;align-items:center;gap:6px;padding:10px 12px;display:flex;position:sticky;overflow-x:auto}.studio-archive-years::-webkit-scrollbar-track{margin-inline:6px}@supports not selector(::-webkit-scrollbar){.studio-archive-years{scrollbar-width:thin;scrollbar-color:var(--volo-line) transparent}}.studio-year-pill{border:1px solid var(--volo-line);background:var(--volo-raised);height:32px;color:var(--volo-text);font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-size:12.5px;font-weight:600;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.studio-year-pill small{color:var(--volo-muted);font-size:11px;font-weight:500}.studio-year-pill:hover,.studio-year-pill.is-active{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.studio-year-pill.is-active small{color:var(--volo-accent)}.studio-archive-year__head{border-bottom:1px solid var(--volo-line);justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;display:flex}.studio-archive-year__title{font-variant-numeric:tabular-nums;margin:0;font-size:1.25rem;font-weight:700}.studio-archive-month+.studio-archive-month{margin-top:18px}.studio-archive-month__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.studio-archive-month__link{color:var(--volo-accent);font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:.92rem;font-weight:600;display:inline-flex}.studio-archive-month__link:hover{text-underline-offset:2px;text-decoration:underline}.studio-archive-month__link small,.studio-archive-month__cnt{color:var(--volo-muted);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:500}.studio-archive-posts{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.studio-archive-post-row{border-radius:8px;align-items:baseline;gap:12px;min-width:0;padding:7px 10px;transition:background-color .14s;display:flex}.studio-archive-post-row:hover{background:var(--volo-raised)}.studio-archive-post-date,.studio-archive-post-row__date{font-family:var(--volo-font-mono);color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.studio-archive-post-link,.studio-archive-post-row__title{min-width:0;color:var(--volo-text);overflow-wrap:anywhere;flex:1;font-size:14px;line-height:1.5;transition:color .14s}.studio-archive-post-row:hover .studio-archive-post-link,.studio-archive-post-row:hover .studio-archive-post-row__title{color:var(--volo-accent)}.studio-archive-post-row__cat{flex-shrink:0;max-width:100%}@media (width<=560px){.studio-archive-post-row{flex-wrap:wrap;gap:4px 10px}.studio-archive-post-row__cat{text-overflow:ellipsis;max-width:100%;overflow:hidden}}.studio-archive-list{flex-direction:column;gap:10px;display:flex}.studio-archive-row{background:var(--volo-raised);color:var(--volo-text);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:10px 14px;transition:background-color .15s,color .15s;display:flex}.studio-archive-row strong{overflow-wrap:anywhere;min-width:0}.studio-archive-row:hover{color:var(--volo-accent);background:var(--volo-accent-soft)}.studio-archive-row time{color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.82rem}.studio-archive-grid{grid-template-columns:repeat(auto-fill,minmax(min(132px,100%),1fr));gap:10px;display:grid}.studio-archive-chip{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-text);font-variant-numeric:tabular-nums;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;transition:border-color .15s,background-color .15s,color .15s,transform .15s;display:flex}.studio-archive-chip:hover{color:var(--volo-accent);border-color:color-mix(in srgb, var(--volo-accent) 42%, var(--volo-line));background:var(--volo-accent-soft);transform:translateY(-1px)}.studio-archive-chip__ym{font-size:13.5px;font-weight:600}.studio-archive-chip__cnt{background:var(--volo-surface);min-width:24px;height:22px;color:var(--volo-muted);border:1px solid var(--volo-line);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.studio-link-card{color:var(--volo-text)}.studio-link-card__head,.studio-follow-head{align-items:center;gap:10px;min-width:0;display:flex}.studio-follow-head{margin-bottom:12px}.studio-link-icon{object-fit:cover;background:var(--volo-raised);border-radius:10px;flex-shrink:0;width:40px;height:40px}.studio-link-card__meta{flex:1;min-width:0}.studio-link-card__meta strong{overflow-wrap:anywhere;display:block}.studio-link-card__status{color:var(--volo-muted);font-size:.76rem}.studio-link-status--ok{color:var(--volo-accent)}.studio-link-status--broken{color:#b45309;font-weight:600}[data-theme=dark] .studio-link-status--broken{color:#fca5a5}.studio-follow-site{word-break:break-all;font-size:.82rem}.studio-follow-items{flex-direction:column;gap:8px;display:flex}.studio-follow-item{min-width:0;display:flex}.studio-follow-item a{flex:1;min-width:0}.studio-follow-empty{text-align:left;margin:0;padding:6px 2px}.studio-follow-row{background:var(--volo-raised);color:var(--volo-text);border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:8px 12px;transition:color .15s,background-color .15s;display:flex}.studio-follow-row span{overflow-wrap:anywhere;flex:1;min-width:0}.studio-follow-row:hover{color:var(--volo-accent);background:var(--volo-accent-soft)}.studio-follow-row time{color:var(--volo-muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.8rem}.studio-stats-grid{text-align:center;grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:12px;display:grid}.studio-stat-box{background:var(--volo-raised);border-radius:10px;min-width:0;padding:12px}.studio-stat-box__num{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.studio-stat-box__label{color:var(--volo-muted);overflow-wrap:anywhere;font-size:.82rem}.studio-dynamic-list{flex-direction:column;gap:12px;display:flex}.studio-dynamic-comment{background:var(--volo-raised);color:var(--volo-text);border-radius:10px;min-width:0;padding:12px 14px;transition:background-color .15s;display:block}.studio-dynamic-comment:hover{background:var(--volo-accent-soft)}.studio-dynamic-comment__head{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.studio-dynamic-comment__head time{color:var(--volo-muted);font-variant-numeric:tabular-nums;font-size:.78rem}.studio-dynamic-comment__body{overflow-wrap:anywhere;font-size:.92rem}.studio-dynamic-comment__foot{color:var(--volo-muted);overflow-wrap:anywhere;margin-top:4px;font-size:.8rem}.book-card__cover{aspect-ratio:3/4;isolation:isolate;background:var(--volo-raised);border-radius:8px;display:block;overflow:hidden}.book-card__cover img,.book-card__cover svg{object-fit:cover;width:100%;height:100%;display:block}.book-card__meta{color:var(--volo-muted);justify-content:space-between;align-items:center;gap:8px;font-size:.82rem;display:flex}.book-card--clickable{cursor:pointer;position:relative}.book-card__title{overflow-wrap:anywhere;margin:0;font-size:1.08rem;line-height:1.45}.book-card__title a{color:var(--volo-text)}.book-card__title a:hover,.book-card--clickable:hover .book-card__title a{color:var(--volo-accent)}.book-card__main-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.book-card__foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.studio-resume-badge{z-index:2;background:var(--volo-accent-soft);height:36px;color:var(--volo-accent);text-overflow:ellipsis;white-space:nowrap;border-radius:10px;align-items:center;max-width:100%;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.studio-resume-badge:hover{background:color-mix(in srgb, var(--volo-accent) 20%, transparent)}.book-reader-layout{grid-template-columns:272px minmax(0,1fr);align-items:start;gap:24px;margin:24px 0 56px;display:grid}.book-reader-toc-backdrop{display:none}.book-reader-layout.is-toc-collapsed{grid-template-columns:minmax(0,1fr)}.book-reader-layout.is-toc-collapsed .book-reader-toc{display:none}.book-reader-toc{top:calc(var(--volo-header-h,64px) + 18px);max-height:calc(100dvh - var(--volo-header-h,64px) - 42px);position:sticky;overflow-y:auto}.book-reader-toc::-webkit-scrollbar-track{margin-block:8px}@supports not selector(::-webkit-scrollbar){.book-reader-toc{scrollbar-width:thin;scrollbar-color:var(--volo-line) transparent}}.book-reader-toc__top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.book-reader-toc__icon-mobile{display:none}.book-reader-toc__collapse svg,.book-reader-bar svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:15px;height:15px}.book-reader-back{color:var(--volo-muted);font-size:.84rem}.book-reader-back:hover{color:var(--volo-accent)}.book-reader-toc__title{overflow-wrap:anywhere;margin:4px 0;font-size:1.1rem;line-height:1.4}.book-reader-toc__count{color:var(--volo-muted);margin-bottom:12px;font-size:.82rem}.book-chap-filter{margin-bottom:10px}.book-chap-filter__input{width:100%;height:34px;font-size:12.5px}.book-chap-empty{padding:10px 6px;font-size:12.5px}.book-reader-toc__nav{flex-direction:column;gap:4px;font-size:.9rem;display:flex}.book-reader-toc__link,.book-reader-toc__group{color:var(--volo-muted);overflow-wrap:anywhere;border-radius:8px;padding:6px 10px;line-height:1.5;display:block}.book-reader-toc__group{color:var(--volo-text);font-weight:600}.book-reader-toc__link:hover,.book-reader-toc__link.is-active,.book-chap-link.active{background:var(--volo-accent-soft);color:var(--volo-accent);font-weight:600}.book-unlock-card__foot{margin:10px 0 0;font-size:.84rem}.book-reader-bar{border-bottom:1px solid var(--volo-line);justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;display:flex}.book-reader-bar__left,.book-reader-bar__right{align-items:center;gap:8px;min-width:0;display:flex}.book-reader-bar__book{color:var(--volo-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.book-reader-main--frame{padding:16px 18px 18px}.book-reader-main--frame .book-reader-bar{margin-bottom:12px;padding-bottom:12px}.book-reader-prose{margin-top:16px}.book-reader-desc{color:var(--volo-muted);line-height:1.75}.book-source-btn{max-width:100%;overflow:hidden}.book-source-btn__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.book-reader-frame-wrap{border:1px solid var(--volo-line);background:var(--volo-raised);border-radius:10px;min-height:78dvh;position:relative;overflow:hidden}.book-reader-frame-wrap.is-loading{background:var(--volo-raised)}.book-reader-spinner{z-index:2;border:2.5px solid color-mix(in srgb, var(--volo-text) 18%, transparent);border-top-color:var(--volo-accent);pointer-events:none;opacity:0;border-radius:50%;width:28px;height:28px;margin:-14px 0 0 -14px;transition:opacity .18s;animation:.75s linear infinite voloSpin;position:absolute;top:50%;left:50%}.book-reader-frame-wrap.is-loading .book-reader-spinner{opacity:1}@keyframes voloSpin{to{transform:rotate(360deg)}}.book-reader-frame{color-scheme:light;color:#1d2420;background:#fff;border:0;border-radius:10px;width:100%;min-height:78dvh;transition:opacity .18s;display:block}html[data-theme=dark] .book-reader-frame{color-scheme:dark;background:var(--volo-surface);color:var(--volo-text)}.book-reader-frame-wrap.is-loading .book-reader-frame{opacity:0}.book-reader-fab-toc{left:14px;bottom:max(14px, env(safe-area-inset-bottom));z-index:89;transition:bottom .2s;position:fixed;display:none!important}body.is-book-fullscreen .studio-header,body.is-book-fullscreen .studio-footer{display:none!important}body.is-book-fullscreen #studio-main{width:min(1440px,100% - 28px)}.reader-auth-grid{grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));gap:22px;max-width:780px;margin:36px auto 64px;display:grid}.reader-auth-grid--single{max-width:440px}@media (width<=680px){.reader-auth-grid:not(.reader-auth-grid--single) .reader-auth-card:not(.is-active-card){display:none}}.reader-auth-card{padding:26px}.reader-auth-card__title{margin:0 0 14px;font-size:1.2rem;font-weight:600}.reader-auth-form{flex-direction:column;gap:12px;display:flex}.reader-auth-field{flex-direction:column;gap:5px;min-width:0;display:flex}.reader-auth-label{color:var(--volo-muted);font-size:12px;font-weight:600}.reader-auth-code-row{flex-wrap:wrap;gap:8px;display:flex}.reader-auth-code-row__input{flex:156px;min-width:0}.reader-auth-code-row__btn{flex:none;height:38px}.reader-auth-msg{border:1px solid var(--volo-line);background:var(--volo-surface);border-radius:10px;padding:9px 12px;font-size:.85rem;line-height:1.5}.reader-auth-msg:empty{display:none}.reader-auth-msg--error{background:color-mix(in srgb, var(--volo-danger) 7%, var(--volo-surface));border-color:color-mix(in srgb, var(--volo-danger) 24%, var(--volo-line));color:var(--volo-danger)}.reader-auth-msg--info{background:color-mix(in srgb, var(--volo-accent) 7%, var(--volo-surface));border-color:color-mix(in srgb, var(--volo-accent) 22%, var(--volo-line));color:var(--volo-accent)}.reader-auth-banner{max-width:780px;margin:28px auto -16px}.reader-auth-banner:has(+.reader-auth-grid--single){max-width:440px}.reader-auth-switch{border-top:1px dashed var(--volo-line);text-align:center;margin:14px 0 0;padding-top:12px;font-size:12.5px}.reader-auth-switch a{font-weight:600}.reader-auth-switch a:hover{text-underline-offset:2px;text-decoration:underline}.studio-btn-ghost{border:1px solid var(--volo-line);background:var(--volo-raised);height:auto;min-height:38px;color:var(--volo-text);text-align:center;white-space:normal;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.studio-btn-ghost:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.reader-oidc-divider{color:var(--volo-muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:10px;margin:16px 0 12px;font-size:11.5px;font-weight:600;display:flex}.reader-oidc-divider:before,.reader-oidc-divider:after{content:"";background:var(--volo-line);flex:1;height:1px}.reader-oidc-list{flex-direction:column;gap:8px;display:flex}.reader-oidc-btn{width:100%}.reader-oidc-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:15px;height:15px}.studio-error-card{text-align:center;flex-direction:column;align-items:center;gap:10px;max-width:560px;margin:48px auto 64px;padding:38px 28px;display:flex}.studio-error-card__visual{margin-bottom:4px}.studio-error-card__code{font-family:var(--volo-font-mono);border-radius:999px;padding:3px 11px;font-size:.86rem}.studio-error-card__title{overflow-wrap:anywhere;margin:4px 0 2px;font-size:1.45rem;font-weight:640;line-height:1.4}.studio-error-card__hint{max-width:420px;color:var(--volo-muted);margin:0;font-size:.92rem;line-height:1.7}.studio-error-card__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.studio-error-card__search,.studio-error-card__actions .studio-error-card__search{height:38px;color:var(--volo-text);padding:0 15px;font-size:13px;font-weight:600}.volo-comments-card{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:var(--volo-radius);margin-top:24px;padding:28px 34px}.vc-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.vc-head__title{margin:0;font-size:1.08rem;font-weight:600}.vc-trigger-bar{border:1px solid var(--volo-line);background:var(--volo-raised);width:100%;color:var(--volo-muted);text-align:left;cursor:text;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding:12px 16px;font-size:13.5px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:flex}.vc-trigger-bar:hover,.vc-trigger-bar:focus-visible{border-color:color-mix(in srgb, var(--volo-accent) 50%, var(--volo-line));background:var(--volo-surface);box-shadow:0 0 0 3px var(--volo-accent-soft);outline:none}.vc-trigger-bar__kbd{font-size:11px;font-family:var(--volo-font-mono);border:1px solid var(--volo-line);background:var(--volo-surface);color:var(--volo-muted);border-radius:6px;padding:2px 7px}.vc-closed-banner,.vc-regonly-banner{color:var(--volo-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:0 0 16px;display:flex}.vc-closed-banner{border-left-color:var(--volo-line)}.vc-login-link{color:var(--volo-accent);white-space:nowrap;font-weight:600}.vc-login-link:hover{text-underline-offset:2px;text-decoration:underline}.vc-backdrop{z-index:170;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;background:#0c121066;transition:opacity .18s cubic-bezier(.16,1,.3,1);position:fixed;inset:0}.vc-backdrop.is-open{opacity:1}.vc-backdrop.is-closing{opacity:0;pointer-events:none}.volo-comment-composer{z-index:175;background:var(--volo-surface);border:1px solid var(--volo-line);width:min(760px,100%);max-height:min(88dvh,640px);padding:16px 20px max(16px, env(safe-area-inset-bottom));opacity:0;border-bottom:none;border-radius:18px 18px 0 0;flex-direction:column;margin-inline:auto;transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .18s;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%);box-shadow:0 -16px 46px #00000038}.volo-comment-composer[hidden]{display:none!important}.volo-comment-composer.is-open{opacity:1;transform:translateY(0)}.volo-comment-composer.is-closing{opacity:0;pointer-events:none;transform:translateY(100%)}.volo-comment-composer.is-fullscreen{z-index:200;width:100%;height:100dvh;max-height:none;box-shadow:none;padding:max(14px, env(safe-area-inset-top)) clamp(14px, 3vw, 32px) max(14px, env(safe-area-inset-bottom));opacity:1;border:none;border-radius:0;margin:0;position:fixed;inset:0;transform:none}.volo-comment-composer.has-vv:not(.is-fullscreen){max-height:max(200px, calc(var(--vc-vv-h,100vh) - 16px))}.volo-comment-composer.is-open.has-vv:not(.is-fullscreen):not(.is-closing){transform:translateY(calc(-1 * var(--vc-kb,0px)))}.volo-comment-composer.has-vv.is-kb-open:not(.is-fullscreen){max-height:max(200px, calc(var(--vc-vv-h,100vh) - 6px))}.volo-comment-composer.has-vv.is-fullscreen{height:max(180px, var(--vc-vv-h,100vh));transform:translateY(var(--vc-vv-top,0px));transition:opacity .18s;top:0;bottom:auto}.volo-comment-composer.is-fullscreen .vc-form{flex:1;width:min(1240px,100%);min-height:0;margin:0 auto}.vc-editor-shell,.vc-editor-panes{flex-direction:column;min-width:0;display:flex}.volo-comment-composer.is-fullscreen .vc-composer-body,.volo-comment-composer.is-fullscreen .vc-editor-shell,.volo-comment-composer.is-fullscreen .vc-editor-panes{flex:1;min-height:0}.vc-form{flex-direction:column;flex:auto;gap:10px;min-height:0;margin:0;display:flex;overflow:hidden}.vc-composer-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.vc-composer-top{flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.vc-composer-top__left{flex-wrap:wrap;flex:auto;align-items:center;gap:6px 8px;min-width:0;display:flex}.vc-composer-top__right{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.vc-composer-top .js-vc-close{flex-shrink:0}.vc-identity{color:var(--volo-text);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;align-items:center;gap:8px;min-width:0;max-width:100%;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.vc-identity>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vc-identity__avatar{object-fit:cover;border-radius:8px;flex-shrink:0;width:28px;height:28px}.vc-guest-chip{color:var(--volo-muted);background:var(--volo-raised);border:1px solid var(--volo-line);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:0 auto;align-items:center;gap:8px;min-width:0;max-width:100%;padding:4px 10px;font-size:12.5px;display:inline-flex;overflow:hidden}.vc-guest-chip .js-vc-guest-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vc-guest-chip button{color:var(--volo-accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-weight:600}.vc-context-pill{background:var(--volo-accent-soft);color:var(--volo-accent);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:0 auto;align-items:center;gap:6px;min-width:0;max-width:min(68vw,280px);padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.vc-context-pill .js-vc-ctx-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vc-context-pill button{color:inherit;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:13px;line-height:1}.vc-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.vc-id-summary{border:1px solid var(--volo-line);background:var(--volo-raised);width:100%;min-height:32px;color:var(--volo-muted);font:inherit;text-align:left;cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:4px 12px;font-size:12.5px;display:none}.vc-id-summary__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.vc-id-summary__act{color:var(--volo-accent);flex-shrink:0;font-weight:600}.volo-comment-composer.is-identity-collapsed .vc-row:not([hidden]){display:none}.volo-comment-composer.is-identity-collapsed .vc-row:not([hidden])+.vc-id-summary{display:flex}.vc-toolbar{border:1px solid var(--volo-line);background:var(--volo-raised);border-bottom:none;border-radius:10px 10px 0 0;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:6px;padding:4px 6px;display:flex}.vc-md-tools,.vc-tabs{align-items:center;gap:2px;display:inline-flex}.vc-md-tools{scrollbar-width:none;flex:auto;min-width:0;max-width:100%;overflow-x:auto}.vc-tabs{flex-shrink:0}.vc-md-tools::-webkit-scrollbar{display:none}.vc-tb-sep{background:var(--volo-line);flex-shrink:0;width:1px;height:16px;margin:0 3px}.vc-tool-btn,.vc-tab{appearance:none;min-width:30px;min-height:30px;color:var(--volo-muted);cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:600;transition:background-color .14s,color .14s;display:inline-flex}.vc-tab{padding:0 9px}.vc-tab--split{display:none}@media (width>=768px){.volo-comment-composer.is-fullscreen .vc-tab--split{display:inline-flex}.volo-comment-composer.is-fullscreen .vc-editor-panes[data-pane-mode=split]{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.volo-comment-composer.is-fullscreen .vc-editor-panes[data-pane-mode=split] .vc-textarea{border-right:none;border-radius:0 0 0 10px}.volo-comment-composer.is-fullscreen .vc-editor-panes[data-pane-mode=split] .vc-preview{border-radius:0 0 10px}}.vc-tool-btn:hover,.vc-tab:hover{background:var(--volo-surface);color:var(--volo-text)}.vc-tab.is-active{background:var(--volo-surface);border-color:var(--volo-line);color:var(--volo-accent)}.vc-textarea{border:1px solid var(--volo-line);background:var(--volo-surface);width:100%;min-height:116px;color:var(--volo-text);resize:vertical;border-radius:0 0 10px 10px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.65}.vc-textarea:focus{border-color:var(--volo-accent)}.vc-preview{border:1px solid var(--volo-line);background:var(--volo-surface);border-radius:0 0 10px 10px;min-height:116px;max-height:240px;margin-top:0;padding:10px 14px;font-size:14px;overflow-y:auto}.volo-comment-composer.is-fullscreen .vc-textarea,.volo-comment-composer.is-fullscreen .vc-preview{resize:none;flex:1;height:100%;max-height:none}.vc-composer-foot{border-top:1px solid color-mix(in srgb, var(--volo-line) 75%, transparent);background:var(--volo-surface);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding-top:8px;display:flex}.volo-comment-composer.is-kb-open{padding:10px 12px}.volo-comment-composer.is-kb-open.is-fullscreen{padding:max(10px, env(safe-area-inset-top)) 12px 10px}.volo-comment-composer.is-kb-open .vc-form,.volo-comment-composer.is-kb-open .vc-composer-body{gap:6px}.volo-comment-composer.is-kb-open:not(.is-fullscreen) .vc-textarea{min-height:68px;padding:8px 10px}.volo-comment-composer.is-kb-open:not(.is-fullscreen) .vc-preview{min-height:68px;max-height:150px}.volo-comment-composer.is-kb-open .vc-composer-foot{gap:8px;padding-top:6px}.vc-composer-meta{color:var(--volo-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:10px;min-width:0;font-size:12px;display:inline-flex}.vc-char-cnt.is-over{color:var(--volo-danger,#dc2626);font-weight:700}.vc-msg{background:color-mix(in srgb, var(--volo-accent) 7%, var(--volo-surface));border:1px solid color-mix(in srgb, var(--volo-accent) 22%, var(--volo-line));color:var(--volo-accent);border-radius:10px;align-items:center;padding:4px 10px;line-height:1.4;display:inline-flex}.vc-msg:empty{display:none}.vc-msg.is-err{background:color-mix(in srgb, var(--volo-danger) 7%, var(--volo-surface));border:1px solid color-mix(in srgb, var(--volo-danger) 24%, var(--volo-line));color:var(--volo-danger)}.vc-composer-btns{align-items:center;gap:8px;display:inline-flex}.vc-empty{text-align:center;color:var(--volo-muted);border-top:1px dashed var(--volo-line);padding:20px 14px;font-size:13px}.vc-item{border-top:1px solid var(--volo-line);grid-template-columns:36px minmax(0,1fr);align-items:start;column-gap:12px;min-width:0;padding:16px 0;display:grid;position:relative}.vc-item:before{content:"";background:var(--volo-accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--volo-accent) 38%, transparent);opacity:0;pointer-events:none;z-index:0;border-radius:12px;transition:opacity .28s;position:absolute;inset:4px -10px}.vc-item>*{z-index:1;position:relative}.vc-item.is-target:before{opacity:1}.vc-avatar{object-fit:cover;background:var(--volo-raised);border-radius:10px;flex-shrink:0;width:36px;height:36px}.vc-body{min-width:0}.vc-meta{color:var(--volo-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.vc-meta strong,.vc-meta a{color:var(--volo-text);overflow-wrap:anywhere;font-weight:600}.vc-meta a:hover{color:var(--volo-accent)}.vc-author-badge{background:var(--volo-button);color:var(--volo-accent-contrast);border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.vc-pending-badge,.vc-badge--pending{background:color-mix(in srgb, var(--volo-warn) 16%, transparent);color:var(--volo-warn);border-radius:999px;align-items:center;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}[data-theme=dark] .vc-pending-badge,[data-theme=dark] .vc-badge--pending{color:#fbbf24;background:#fbbf2429}.vc-geo,.vc-ip-badge{background:var(--volo-raised);color:var(--volo-muted);border-radius:5px;align-items:center;padding:1px 6px;font-size:11px;display:inline-flex}.vc-ip-badge{font-family:var(--volo-font-mono);border:1px solid var(--volo-line)}.vc-content{margin:6px 0 8px;font-size:14.5px;line-height:1.72}.vc-content p,.vc-content ul,.vc-content ol,.vc-content blockquote,.volo-cw-preview p,.volo-cw-preview ul,.volo-cw-preview ol,.volo-cw-preview blockquote{margin:.4em 0}.vc-content :is(h1,h2,h3,h4,h5,h6),.volo-cw-preview :is(h1,h2,h3,h4,h5,h6){margin:.55em 0 .3em;font-size:1.04em;line-height:1.45}:is(.vc-content,.comment-body,.j-comment-body,.volo-cw-preview) img{object-fit:contain;cursor:zoom-in;border-radius:8px;width:auto;max-width:100%;max-height:240px}:is(.vc-content,.comment-body,.j-comment-body,.volo-cw-preview) pre{max-height:200px;overflow-y:auto}.vc-content.is-tall.is-collapsed{max-height:220px;position:relative;overflow:hidden;mask-image:linear-gradient(#000 68%,#0000 100%)}.volo-comment-expand-btn{appearance:none;border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-accent);cursor:pointer;border-radius:999px;align-items:center;gap:4px;margin:0 0 8px;padding:3px 11px;font-size:12px;font-weight:600;transition:border-color .14s,background-color .14s;display:inline-flex}.volo-comment-expand-btn:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.volo-comment-shielded{border:1px dashed var(--volo-line);background:color-mix(in srgb, var(--volo-raised) 74%, var(--volo-surface));color:var(--volo-muted);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.55;margin:4px 0!important}.vc-code-wrap{margin:.6em 0;position:relative}.vc-code-wrap>pre{margin:0;padding-top:28px}.vc-code-copy{z-index:3;position:absolute;top:6px;right:8px}.vc-reply-at{color:var(--volo-accent);margin-right:6px;font-weight:600}.vc-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vc-act-btn{appearance:none;border:1px solid var(--volo-line);background:var(--volo-surface);min-height:32px;color:var(--volo-muted);cursor:pointer;border-radius:6px;padding:0 10px;font-size:11.5px;transition:color .14s,border-color .14s,background-color .14s}.vc-act-btn:hover{color:var(--volo-accent);border-color:var(--volo-accent);background:var(--volo-raised)}.vc-act-btn--danger:hover{color:var(--volo-danger);border-color:var(--volo-danger)}.vc-act-btn[data-confirm="1"]{font-weight:600;color:var(--volo-on-danger)!important;background:var(--volo-danger-solid)!important;border-color:var(--volo-danger-solid)!important}.vc-replies{border-left:2px solid var(--volo-line);grid-column:2;min-width:0;margin-top:10px;margin-left:0;padding-left:14px}.vc-replies[data-depth="3"],.vc-replies .vc-replies .vc-replies{border-left:none;margin-left:0;padding-left:0}.vc-more-replies{appearance:none;border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-accent);cursor:pointer;border-radius:999px;margin-top:8px;padding:4px 11px;font-size:12px;font-weight:600;transition:border-color .14s,background-color .14s}.vc-more-replies:hover{border-color:var(--volo-accent);background:var(--volo-accent-soft)}.vc-pager{border-top:1px solid var(--volo-line);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:18px;padding-top:14px;display:flex}.vc-pager__info{color:var(--volo-muted);font-variant-numeric:tabular-nums;padding:0 6px;font-size:12.5px}.vc-list-err{border:1px solid color-mix(in srgb, var(--volo-danger) 24%, var(--volo-line));background:color-mix(in srgb, var(--volo-danger) 7%, var(--volo-surface));color:var(--volo-danger);border-radius:10px;margin:0 0 12px;padding:9px 12px;font-size:12.5px}.vc-hp{opacity:0!important;pointer-events:none!important;position:absolute!important;left:-9999px!important}.vc-ban-modal{z-index:190;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);backface-visibility:hidden;background:#0c12107a;place-items:center;padding:16px;display:grid;position:fixed;inset:0;transform:translateZ(0)}.vc-ban-modal__panel{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:16px;flex-direction:column;gap:12px;width:min(400px,100%);padding:20px;display:flex;box-shadow:0 18px 48px #00000040}.vc-ban-modal__title{overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.vc-ban-durations{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.vc-dur-btn{border:1px solid var(--volo-line);background:var(--volo-raised);height:34px;color:var(--volo-text);cursor:pointer;border-radius:8px;font-size:12.5px;font-weight:600}.vc-dur-btn.is-active{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.vc-ban-check{color:var(--volo-text);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.vc-ban-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.vc-btn-danger{background:var(--volo-danger-solid);color:var(--volo-on-danger)}.vc-btn-danger:hover{background:color-mix(in srgb, var(--volo-danger-solid) 88%, #000);color:var(--volo-on-danger)}html[data-theme=dark] .vc-btn-danger:hover,[data-theme=dark] .vc-btn-danger:hover{background:color-mix(in srgb, var(--volo-danger-solid) 88%, #fff);color:var(--volo-on-danger)}.volo-modal{z-index:160;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);backface-visibility:hidden;opacity:0;background:#0f161373;justify-content:center;align-items:flex-start;padding:10dvh 16px 24px;transition:opacity .18s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;transform:translateZ(0)}.volo-modal.is-open{opacity:1}.volo-modal.is-closing{opacity:0;pointer-events:none}.volo-modal__panel{background:var(--volo-surface);border:1px solid var(--volo-line);border-radius:var(--volo-radius);flex-direction:column;width:min(620px,100%);max-height:78dvh;transition:transform .18s cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden;transform:translateY(-8px);box-shadow:0 18px 48px #00000038}.volo-modal.is-open .volo-modal__panel{transform:none}.volo-modal.is-closing .volo-modal__panel{transform:translateY(-6px)}input[type=search]::-webkit-search-decoration{appearance:none;display:none}input[type=search]:placeholder-shown::-webkit-search-cancel-button{appearance:none;display:none}.volo-search-head{border-bottom:1px solid var(--volo-line);color:var(--volo-muted);flex-shrink:0;align-items:center;gap:10px;padding:0 16px;display:flex}.volo-search-head>svg{flex-shrink:0}.volo-search-input{width:100%;min-width:0;height:48px;color:var(--volo-text);text-overflow:ellipsis;background:0 0;border:none;outline:none;flex:1 1 0;padding:0;font-size:14px}.volo-search-esc{border:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-muted);font-size:10.5px;font-family:var(--volo-font-mono);cursor:pointer;border-radius:5px;flex-shrink:0;padding:2px 7px}.volo-search-filters{border-bottom:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-raised) 55%, var(--volo-surface));flex-wrap:wrap;flex-shrink:0;align-content:flex-start;gap:7px;max-height:124px;padding:10px 16px 12px;display:flex;overflow-y:auto}.volo-filter-pill{appearance:none;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--volo-line);background:var(--volo-surface);max-width:min(200px,100%);color:var(--volo-muted);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:11.5px;transition:border-color .14s,color .14s,background-color .14s;overflow:hidden}.volo-filter-pill:hover,.volo-filter-pill.is-active{border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent);font-weight:600}.volo-search-results{flex:1;min-height:0;padding:10px;overflow-y:auto}.volo-search-results:empty{padding:0;display:none}.volo-search-filters:has(+.volo-search-results:empty),.volo-search-head:has(+.volo-search-filters[hidden]+.volo-search-results:empty){border-bottom:0}.volo-search-empty{text-align:center;color:var(--volo-muted);padding:18px 14px;font-size:13px}.volo-search-hit{color:var(--volo-text);border:1px solid #0000;border-radius:9px;padding:10px 12px;transition:background-color .12s,border-color .12s;display:block}.volo-search-hit:hover,.volo-search-hit.is-active{background:var(--volo-raised);border-color:color-mix(in srgb, var(--volo-accent) 30%, var(--volo-line))}.volo-search-hit__snip{color:var(--volo-muted);margin-top:2px;font-size:12.5px;line-height:1.55}.volo-search-hit mark{background:color-mix(in srgb, var(--volo-accent) 22%, transparent);color:var(--volo-accent);border-radius:3px;padding:0 2px;font-weight:600}.volo-search-more-wrap{padding:6px 4px 2px}.volo-search-more{border:1px dashed var(--volo-line);background:var(--volo-raised);width:100%;height:36px;color:var(--volo-muted);cursor:pointer;border-radius:9px;font-size:12.5px;font-weight:600;transition:border-color .14s,color .14s,background-color .14s}.volo-search-more:hover:not(:disabled){border-color:var(--volo-accent);background:var(--volo-accent-soft);color:var(--volo-accent)}.volo-search-more:disabled{opacity:.6;cursor:default}.volo-search-foot{border-top:1px solid var(--volo-line);background:var(--volo-raised);color:var(--volo-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:8px 16px;font-size:11.5px;display:flex}.volo-lightbox{z-index:240;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);backface-visibility:hidden;cursor:zoom-out;opacity:0;background:#0c1210db;place-items:center;padding:20px;transition:opacity .18s cubic-bezier(.16,1,.3,1);display:grid;position:fixed;inset:0;transform:translateZ(0)}.volo-lightbox.is-open{opacity:1}.volo-lightbox.is-closing{opacity:0;pointer-events:none}.volo-lightbox__close{top:max(16px, env(safe-area-inset-top));z-index:2;color:#fff;cursor:pointer;background:#0f16139e;border:1px solid #ffffff38;border-radius:999px;place-items:center;width:38px;height:38px;font-size:15px;transition:background-color .15s,transform .15s;display:grid;position:fixed;right:16px}.volo-lightbox__close:hover{background:#19241fe0;transform:scale(1.04)}.volo-lightbox__figure{flex-direction:column;align-items:center;gap:10px;max-width:min(94vw,1280px);margin:0;display:flex}.volo-lightbox__img{object-fit:contain;border-radius:10px;max-width:min(94vw,1280px);max-height:84dvh;transition:transform .2s cubic-bezier(.22,1,.36,1);transform:scale(.96);box-shadow:0 20px 60px #00000073}.volo-lightbox.is-open .volo-lightbox__img{transform:scale(1)}.volo-lightbox__caption{color:#f4f8f5e6;text-align:center;max-width:min(88vw,720px);font-size:13px;line-height:1.55}.studio-footer{border-top:1px solid var(--volo-line);width:min(1140px,100% - 64px);color:var(--volo-muted);margin:auto auto 0;padding:25px 0 34px;font-size:11.5px}.studio-contacts{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.studio-contact-btn{border:1px solid var(--volo-line);width:36px;height:36px;color:var(--volo-muted);background:var(--volo-surface);border-radius:10px;justify-content:center;align-items:center;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}.studio-contact-btn:hover{color:var(--volo-accent);border-color:var(--volo-muted);background:var(--volo-raised)}.studio-footer-meta{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.studio-footer-content{color:var(--volo-muted);overflow-wrap:anywhere;margin-top:8px;line-height:1.75}.studio-footer-content p{margin:2px 0}.studio-footer-content a{color:inherit;text-underline-offset:2px;text-decoration:underline}.studio-footer-content a:hover{color:var(--volo-accent)}.studio-footer-content img{vertical-align:-3px;max-height:18px;margin-right:4px;display:inline-block}.studio-statistics{flex-wrap:wrap;gap:6px 16px;margin-top:8px;display:flex}.studio-statistics a{color:inherit}.studio-statistics a:hover{color:var(--volo-accent)}.studio-fab-dock{right:22px;bottom:max(20px, env(safe-area-inset-bottom));z-index:90;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;transition:bottom .2s;display:flex;position:fixed}html[data-podcast-open="1"] .studio-fab-dock,body.has-podcast-mini .studio-fab-dock,body:has(#volo-podcast-mini:not([hidden])) .studio-fab-dock,html[data-podcast-open="1"] .book-reader-fab-toc,body.has-podcast-mini .book-reader-fab-toc,body:has(#volo-podcast-mini:not([hidden])) .book-reader-fab-toc,html[data-podcast-open="1"] #volo-kanbanniang-root:not([data-position=right]),body.has-podcast-mini #volo-kanbanniang-root:not([data-position=right]),body:has(#volo-podcast-mini:not([hidden])) #volo-kanbanniang-root:not([data-position=right]){bottom:calc(92px + env(safe-area-inset-bottom,0px))}html[data-podcast-open="1"] #volo-kanbanniang-root[data-position=right],body.has-podcast-mini #volo-kanbanniang-root[data-position=right],body:has(#volo-podcast-mini:not([hidden])) #volo-kanbanniang-root[data-position=right]{bottom:calc(192px + env(safe-area-inset-bottom,0px))}.studio-fab-btn{pointer-events:auto;border:1px solid var(--volo-line);background:color-mix(in srgb, var(--volo-surface) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:40px;height:40px;color:var(--volo-text);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-size:12.5px;font-weight:600;transition:color .16s,border-color .16s,background-color .16s,transform .16s;display:inline-flex}.studio-fab-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:17px;height:17px}.studio-fab-btn:hover{color:var(--volo-accent);border-color:color-mix(in srgb, var(--volo-accent) 45%, var(--volo-line));background:var(--volo-raised);transform:translateY(-2px)}.studio-back-top{width:40px;color:var(--volo-muted);border-radius:12px;padding:0}.studio-fab-btn--toc{display:none!important}@media (width<=1180px){.volo-lang-btn__text,.volo-lang-caret,.studio-auth-btn__label{display:none}.studio-auth-btn,#volo-lang-btn{width:36px;padding:0}}@media (width<=1080px){.studio-layout--article.has-toc{max-width:850px;display:block}.studio-layout--article.studio-layout--tpl-wide.has-toc,.studio-layout--article:has(article[data-page-template=wide]).has-toc{max-width:1120px}.studio-layout--article.studio-layout--tpl-minimal.has-toc,.studio-layout--article:has(article[data-page-template=minimal]).has-toc{max-width:720px}.studio-toc-slot,.volo-toc-card{display:none!important}.studio-fab-btn--toc:not([hidden]){display:inline-flex!important}}@media (width<=1080px) and (width>=761px){.studio-header__inner{flex-wrap:wrap;gap:8px 16px;padding:10px 0}.studio-actions{margin-left:auto}.studio-nav{border-top:1px solid color-mix(in srgb, var(--volo-line) 65%, transparent);flex:1 0 100%;order:3;justify-content:flex-start;padding:6px 0 2px}}@media (width<=900px){.studio-layout{grid-template-columns:minmax(0,1fr)}.studio-layout:has(.studio-section-heading)>.studio-sidebar{padding-top:0}.studio-sidebar,.studio-side{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));display:grid}.book-reader-layout{grid-template-columns:minmax(0,1fr);gap:14px}.book-reader-toc-backdrop:not([hidden]){z-index:94;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;background:#0c121075;transition:opacity .2s;position:fixed;inset:0;display:block!important}.book-reader-toc-backdrop.is-open{opacity:1}.book-reader-toc{z-index:95;width:min(320px,100vw - 44px);max-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 18px max(20px, env(safe-area-inset-bottom));opacity:1;visibility:visible;border-left:none;border-radius:0 16px 16px 0;flex-direction:column;margin:0;transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .18s,visibility .22s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(0);box-shadow:0 18px 48px #00000047}.book-reader-layout.is-toc-collapsed .book-reader-toc{opacity:0;pointer-events:none;visibility:hidden;display:flex;transform:translate(-104%)}.book-reader-toc__nav{flex:auto;min-height:0;overflow-y:auto}.book-reader-toc__icon-desktop{display:none}.book-reader-toc__icon-mobile{display:block}.book-chap-filter__input{font-size:16px}.book-reader-bar{flex-wrap:wrap}.book-reader-bar__book{display:none}.book-reader-fab-toc:not([hidden]){display:inline-flex!important}body:has(.book-mobile-toc-fab:not([hidden])) #volo-kanbanniang-root:not([data-position=right]),#volo-kanbanniang-root.is-book-fab-offset:not([data-position=right]){bottom:calc(68px + env(safe-area-inset-bottom,0px))}}@media (width<=768px){.theme-toggle-text,#volo-theme-label{display:none}#volo-theme-btn{width:36px;padding:0}input:not([type=checkbox]):not([type=radio]),select,textarea,.volo-input,.vc-input,.vc-textarea,.volo-search-input{font-size:16px}input:not([type=checkbox]):not([type=radio])::placeholder,textarea::placeholder,.volo-input::placeholder,.volo-search-input::placeholder{font-size:13.5px}}@supports (-webkit-touch-callout:none){@media (width<=768px),(hover:none) and (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),select,textarea,[contenteditable=true],[contenteditable=""],.volo-input,.vc-input,.vc-textarea,.volo-search-input,.book-chap-filter__input,.studio-tax-search__input,.studio-collection-filter,.reader-auth-code-row__input,.err-search-input{font-size:16px!important}}}@media (width<=760px){.studio-container,.studio-footer{width:calc(100% - 28px)}.studio-header__inner{flex-wrap:wrap;gap:8px;min-height:56px;padding:10px 0}.studio-brand-copy,.studio-brand__copy{max-width:150px}.studio-actions{gap:6px;margin-left:auto}.studio-icon-btn{min-width:36px;height:36px;padding:0 8px}.studio-icon-btn--square,.studio-auth-btn,#volo-lang-btn{width:36px;padding:0}.studio-auth-btn__label,.volo-lang-btn__text{display:none}.studio-only-mobile{display:flex!important}.studio-more-menu__auth{flex-direction:column;width:100%;display:flex!important}.studio-nav .studio-only-mobile.studio-nav-more{display:inline-flex!important}.studio-nav{border-top:1px solid color-mix(in srgb, var(--volo-line) 70%, transparent);flex-wrap:nowrap;flex:0 0 100%;order:3;justify-content:flex-start;align-items:center;gap:6px;padding:6px 0 2px;display:flex;overflow:visible}.studio-nav__track{-webkit-overflow-scrolling:touch;flex:auto;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto;mask-image:linear-gradient(90deg,#000 calc(100% - 16px),#0000)}.studio-nav__track::-webkit-scrollbar{display:none}@supports not selector(::-webkit-scrollbar){.studio-nav__track{scrollbar-width:none}}.studio-nav__link{flex-shrink:0;padding:4px 10px;font-size:12px}.studio-custom-links{display:none}.studio-nav-more{flex-shrink:0;margin-left:auto;position:relative}#volo-nav-more-menu{width:min(216px,100vw - 28px);max-width:calc(100vw - 28px);position:absolute;top:calc(100% + 6px);left:auto;right:0}.studio-hero{grid-template-columns:minmax(0,1fr);margin:18px 0 20px;padding:18px 20px}.studio-hero-graphic{display:none}.studio-posts .article__item{grid-template-columns:112px minmax(0,1fr);gap:8px 14px;padding:16px}.studio-post-cover{width:112px}.studio-posts .article__title{font-size:17px}.studio-article{padding:22px 18px}.studio-card-pad{padding:20px 18px}.studio-article__title{font-size:22px}.volo-comments-card{padding:20px 18px}.volo-comment-composer:not(.is-fullscreen){padding:12px 14px max(12px, env(safe-area-inset-bottom))}.vc-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.vc-row>:first-child{grid-column:1/-1}.volo-neighbors,.studio-neighbors{grid-template-columns:minmax(0,1fr)}.studio-fab-dock{right:14px;bottom:max(14px, env(safe-area-inset-bottom));align-items:center;gap:8px}.studio-fab-dock .studio-fab-btn,.studio-fab-btn--toc,.studio-back-top,.book-mobile-toc-fab{border-radius:999px;justify-content:center;width:42px;min-width:42px;height:42px;padding:0}.studio-fab-btn--toc .studio-fab-btn__text,.book-mobile-toc-fab .studio-fab-btn__text{display:none}.volo-podcast-mini{left:12px;bottom:max(12px, env(safe-area-inset-bottom));width:min(320px,100vw - 74px)}html[data-podcast-open="1"] .studio-fab-dock,body.has-podcast-mini .studio-fab-dock,body:has(#volo-podcast-mini:not([hidden])) .studio-fab-dock,html[data-podcast-open="1"] .book-reader-fab-toc,body.has-podcast-mini .book-reader-fab-toc,body:has(#volo-podcast-mini:not([hidden])) .book-reader-fab-toc,html[data-podcast-open="1"] #volo-kanbanniang-root:not([data-position=right]),body.has-podcast-mini #volo-kanbanniang-root:not([data-position=right]){bottom:calc(92px + env(safe-area-inset-bottom,0px))}html[data-podcast-open="1"] #volo-kanbanniang-root[data-position=right],body.has-podcast-mini #volo-kanbanniang-root[data-position=right]{bottom:calc(192px + env(safe-area-inset-bottom,0px))}.volo-modal{padding:6dvh 10px 16px}.volo-modal__panel{max-height:84dvh}.volo-search-head{gap:8px;padding:0 12px}.volo-search-foot__kbd,.vc-trigger-bar__kbd{display:none}}@media (width<=640px){.bookshelf-grid.js-book-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.js-book-filter-grid .book-card{border-radius:10px;gap:6px;padding:10px}.js-book-filter-grid .book-card__meta{gap:4px;font-size:.72rem}.js-book-filter-grid .book-card__title{font-size:.9rem;line-height:1.38}.js-book-filter-grid .studio-tax-card__desc{font-size:.78rem}.js-book-filter-grid .studio-resume-badge{border-radius:8px;height:30px;padding:0 9px;font-size:11.5px}.volo-search-foot{display:none}.studio-brand{flex:1 1 0;gap:9px;min-width:0}.studio-brand-copy,.studio-brand__copy{flex:1 1 0;min-width:0;max-width:none}.studio-header__actions,.studio-actions{gap:5px}.studio-reader-entry{display:none!important}.studio-more-menu__auth{flex-direction:column;width:100%;display:flex!important}#volo-search-btn,#volo-theme-btn,#volo-lang-btn{width:36px;min-width:36px;height:36px;padding:0}#volo-theme-label,.volo-lang-btn__text,.volo-lang-caret{display:none}#volo-podcast-mini,.volo-podcast-mini{width:auto;left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom,0px))}.vc-avatar{border-radius:8px;width:32px;height:32px}.vc-item{grid-template-columns:32px minmax(0,1fr);column-gap:10px}.vc-item:before{inset:4px -8px}.vc-replies{border-left-width:1.5px;grid-column:1/-1;margin-left:0;padding-left:12px}.vc-replies .vc-replies,.vc-replies[data-depth="2"],.vc-replies[data-depth="3"]{border-left:none;margin-left:0;padding-left:0}}@media (width<=520px){#volo-theme-menu,#volo-lang-menu{width:min(210px,100vw - 88px);max-width:calc(100vw - 28px);position:absolute;top:calc(100% + 6px);left:auto;right:0}#volo-lang-menu{width:min(204px,100vw - 52px)}.volo-embed-book{gap:12px;padding:12px 14px}.volo-embed-book__cover{width:52px}}@media (width<=480px){.studio-brand{flex:1 1 0;min-width:0}.studio-brand-copy,.studio-brand__copy{flex:1 1 0;min-width:0;max-width:none}#volo-theme-label,.volo-lang-caret{display:none}#volo-theme-btn,#volo-lang-btn{width:36px;padding:0}.volo-lock-card{padding:18px 14px}.volo-unlock-form .volo-input{flex:150px;width:100%}.reader-auth-card{padding:20px 16px}.reader-auth-code-row__btn{flex:100%}}@media (width<=440px){.studio-posts .article__item{grid-template-columns:minmax(0,1fr);gap:10px}.studio-post-cover{aspect-ratio:16/9;grid-area:1/1;width:100%}.studio-post-cover img,.studio-post-cover svg{aspect-ratio:16/9}.studio-post-meta{grid-area:2/1}.studio-posts .article__title{grid-area:3/1}.studio-posts .studio-abstract,.studio-posts .studio-card-full{grid-area:4/1}.studio-post-foot{grid-area:5/1}}@media (width<=420px){.volo-unlock-form{width:100%}.volo-unlock-form button,.volo-unlock-form .volo-btn{flex:100%;width:100%}.book-reader-toolbar,.book-reader-bar{flex-wrap:nowrap;gap:6px;margin-bottom:14px;padding-bottom:10px}.book-reader-bar__left,.book-reader-bar__right{gap:5px;min-width:0}.book-reader-toolbar__btn{white-space:nowrap;gap:4px;min-width:0;max-width:132px;height:32px;padding:0 8px;font-size:11.5px;overflow:hidden}.js-book-fullscreen{flex-shrink:0;justify-content:center;width:32px;min-width:32px;padding:0}.js-book-fullscreen .js-book-fs-label{display:none}.book-reader-toolbar__btn .js-book-toggle-label,.book-reader-toolbar__btn .js-book-fs-label,.book-reader-toolbar__btn .book-reader-toolbar__label{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}}@media (width<=400px){.vc-ban-dur-grid,.vc-ban-durations{grid-template-columns:minmax(0,1fr)}}@media (width<=380px){.studio-container,.studio-footer{width:calc(100% - 20px)}.studio-brand{gap:8px}.studio-brand__title,.studio-brand-title{text-overflow:ellipsis;white-space:nowrap;max-width:112px;overflow:hidden}.studio-brand small,.studio-brand__tagline,.studio-brand-subtitle{display:none}.studio-actions,.studio-header-actions{gap:4px}.studio-header-actions .studio-icon-btn,.studio-header-actions #volo-theme-btn,.studio-header-actions #volo-lang-btn,.studio-header-actions .studio-auth-btn{width:32px;min-width:32px;height:32px;padding:0}}.volo-prose audio{border-radius:10px;width:min(100%,480px);min-width:0;max-width:100%;height:40px;margin:12px 0;display:block}.volo-embed-book,.volo-book-tile,.book-card--clickable{-webkit-tap-highlight-color:transparent}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.studio-header,.studio-side-rail,.studio-toc-slot,.volo-toc-drawer,.volo-comments-card,.volo-reactions,.volo-share-bar,.studio-footer,.studio-fab-dock,.volo-pjax-bar,.volo-read-bar,[data-volo-persist]{display:none!important}.studio-layout{display:block}.studio-article{border:none;padding:0}}.vc-item.is-deleted>.vc-avatar{opacity:.4;filter:grayscale()}.vc-item.is-deleted>.vc-body>.vc-meta{color:var(--volo-muted)}.vc-deleted-placeholder{color:var(--volo-muted);-webkit-user-select:none;user-select:none;margin:0;font-style:italic}.volo-prose .vc-deleted-placeholder,[data-theme=dark] .vc-deleted-placeholder{color:var(--volo-muted)}