body[data-view=app] .frame{max-width:none}.pv-wrap{grid-column:1/-1;min-width:0}.pv{height:max(480px, calc(100dvh - var(--pv-top,150px) - 12px));--ed-fs:14px;--ed-lh:23px;--ok:color-mix(in oklch, var(--post-green) 78%, var(--ink));--hl-blue:color-mix(in oklch, var(--post-blue) 72%, var(--ink));--hl-green:color-mix(in oklch, var(--post-green) 72%, var(--ink));flex-direction:column;font-family:JetBrains Mono,monospace;display:flex}@media (width>=1700px){.pv{--ed-fs:15px;--ed-lh:25px}.pv .md-doc{font-size:17px}}.ed-ta,.pv-out,.pv-rail,.pv-tools,.pv-menu{scrollbar-width:thin;scrollbar-color:var(--rail2) transparent}.pv-dim{color:var(--dim)}.pv-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.pv-guard{border:1px solid var(--ink);border-left:3px solid var(--accent);color:var(--body);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:10px 20px;margin:0 0 10px;padding:10px 14px;font-size:12px;line-height:1.6;display:flex}.pv-guard-act{gap:8px;display:flex}.pv-guard button{font:inherit;letter-spacing:.06em;border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;padding:5px 10px;font-size:11px}.pv-guard .pv-guard-go{background:var(--ink);color:var(--bg)}.pv-bar{border-top:1px solid var(--ink);letter-spacing:.06em;color:var(--mute);flex-wrap:wrap;flex:none;align-items:center;gap:10px 24px;padding:14px 0;font-size:12px;display:flex}.pv-title{min-width:0;font:inherit;letter-spacing:inherit;margin:0 auto 0 0}.pv-namewrap{vertical-align:middle;max-width:min(60vw,100%);display:inline-grid}.pv-namemirror,.pv-name{letter-spacing:.02em;white-space:pre;grid-area:1/1;padding:2px 0;font:500 14px/1.4 JetBrains Mono,monospace}.pv-namemirror{visibility:hidden;overflow:hidden}.pv-name{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;border-bottom:1px dotted #0000}.pv-name:hover{border-bottom-color:var(--rail2)}.pv-name:focus{border-bottom:1px solid var(--accent);outline:0}.pv-seg{border:1px solid var(--rail2);display:inline-flex}.pv-seg button{font:inherit;letter-spacing:.06em;border:0;border-right:1px solid var(--rail2);color:var(--ink);cursor:pointer;background:0 0;padding:6px 14px;font-size:12px}.pv-seg button:last-child{border-right:0}.pv-seg button:hover{background:var(--hover)}.pv-seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.pv-desk{display:none}.pv-acts{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=520px){.pv-acts{gap:6px}.pv-acts .pv-btn{padding:6px 8px}.pv-acts .pv-menu{min-width:0;margin-top:6px;position:fixed;top:auto;left:16px;right:16px}}.pv-guide{letter-spacing:.06em;color:var(--mute);border-bottom:1px solid #0000;align-items:center;gap:6px;margin-right:4px;padding:6px 8px;font-size:12px;text-decoration:none;display:inline-flex}.pv-guide:hover{color:var(--ink);border-bottom-color:var(--accent)}.pv-guide:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pv-guide-ic{justify-content:center;width:30px;height:30px;margin-right:6px;padding:0}.ic{flex:none;display:block}.pv-btn{font:inherit;letter-spacing:.06em;border:1px solid var(--rail2);color:var(--ink);cursor:pointer;background:0 0;padding:6px 12px;font-size:12px}.pv-btn:hover{background:var(--hover)}.pv-solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pv-solid:hover{background:var(--ink);color:var(--bg);opacity:.88}.pv-menuwrap{position:relative}.pv-menu{z-index:30;background:var(--bg);border:1px solid var(--ink);min-width:250px;position:absolute;top:calc(100% + 6px);right:0}.pv-menu button{width:100%;font:inherit;text-align:left;border:0;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;justify-content:space-between;gap:16px;padding:10px 14px;font-size:13px;display:flex}.pv-menu button:last-child{border-bottom:0}.pv-menu button:hover,.pv-menu button:focus-visible{background:var(--hover)}.pv-menu button span{color:var(--mute);font-size:12px}.pv-menu button[aria-pressed]{padding-left:30px;position:relative}.pv-menu button[aria-pressed=true]:before{content:"";background:var(--accent);width:7px;height:7px;margin-top:-4px;position:absolute;top:50%;left:13px}.pv-menu-view{min-width:270px}.pv-tools{border-bottom:1px solid var(--line);flex:none;align-items:center;padding:4px 0 8px;font-size:12px;display:flex}.pv-grp{gap:2px;margin-right:22px;display:flex}.pv-tool{min-width:32px;height:28px;font:inherit;letter-spacing:.04em;color:var(--sub);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 8px;font-size:12px}.pv-tool:hover:not(:disabled){color:var(--ink);border-color:var(--rail2);background:var(--hover)}.pv-tool:disabled{color:var(--dim);opacity:.6;cursor:not-allowed}.pv-b{color:var(--ink);font-weight:500}.pv-s{text-decoration:line-through}.pv-split{border-bottom:1px solid var(--line);flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.pv-from{color:var(--mute);text-overflow:ellipsis;white-space:nowrap;max-width:36ch;margin-left:12px;font-family:JetBrains Mono,monospace;font-size:12px;text-decoration:none;overflow:hidden}.pv-from:hover{color:var(--ink);text-decoration:underline}.pv-histnav{gap:4px;margin-left:8px;display:inline-flex}.pv-histnav button:disabled{opacity:.35;cursor:default}.pv-sep{cursor:col-resize;touch-action:none;outline:none;display:none;position:relative}.pv-sep:before{content:"";background:var(--ink);width:1px;position:absolute;top:0;bottom:0;left:4px}.pv-sep:hover:before,.pv-sep:focus-visible:before,.pv-sep:active:before{width:3px;left:3px}.pv[data-zen] .pv-sep{display:none!important}.pv-pane{flex-direction:column;min-width:0;min-height:0;display:flex}.pv-linkbtn{font:inherit;letter-spacing:.06em;color:var(--accent-ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.pv-split[data-view=pv] .pv-src,.pv-split[data-view=src] .pv-view,.pv-split[data-view=split] .pv-view{display:none}.ed{flex:1;min-height:0;display:flex}.ed-gut{user-select:none;border-right:1px solid var(--line);flex:none;width:56px;overflow:hidden}.ed-gutin{position:relative}.ed-gutwin{font:400 var(--ed-fs)/var(--ed-lh) "JetBrains Mono", monospace;color:var(--dim);text-align:right;position:absolute;left:0;right:0}.ed-gutwin div{height:var(--ed-lh);padding-right:12px;position:relative}.ed-gutwin .cur{color:var(--ink)}.ed-gutwin .ga:before,.ed-gutwin .gm:before{content:"";background:var(--ok);width:3px;position:absolute;top:2px;bottom:2px;left:0}.ed-gutwin .gm:before{background:var(--accent)}.ed-gutwin .gd:after{content:"";border-top:2px solid var(--accent);width:9px;position:absolute;top:-1px;left:0}.ed-main{flex:1;min-width:0;position:relative}.ed-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ed-inner{will-change:transform;position:relative}.ed-cur{height:var(--ed-lh);background:var(--hover);opacity:0;position:absolute;left:0;right:0}.ed-main.on .ed-cur{opacity:1;box-shadow:inset 3px 0 0 var(--accent)}.ed-find{height:var(--ed-lh);background:color-mix(in oklch, var(--accent) 20%, transparent);box-shadow:inset 0 -2px 0 color-mix(in oklch, var(--accent) 60%, transparent);position:absolute}.ed-find.on{background:color-mix(in oklch, var(--accent) 46%, transparent);box-shadow:inset 0 -2px 0 var(--accent)}.ed-hl,.ed-ta{font:400 var(--ed-fs)/var(--ed-lh) "JetBrains Mono", monospace;letter-spacing:0;word-spacing:0;font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0;tab-size:2;white-space:pre;overflow-wrap:normal;border:0;margin:0;padding:16px}.ed-hl{box-sizing:border-box;min-width:100%;color:var(--body);position:absolute;left:0}.ed-ta{box-sizing:border-box;resize:none;color:#0000;width:100%;height:100%;caret-color:var(--ink);background:0 0;outline:0;position:absolute;inset:0;overflow:auto}.ed-ta::placeholder{color:var(--dim)}.ed-ta::selection{background:color-mix(in oklch, var(--accent) 28%, transparent);color:#0000}.ed-hl .mk,.ed-hl .cf,.ed-hl .cc,.ed-hl .hr,.ed-hl .tbl,.ed-hl .tbs,.ed-hl .esc{color:var(--dim)}.ed-hl .h{color:var(--ink);font-weight:500}.ed-hl .mk.h,.ed-hl .qm,.ed-hl .li,.ed-hl .task-open,.ed-hl .lang,.ed-hl .ck{color:var(--accent-ink)}.ed-hl .code{background:var(--hover);color:var(--hl-green)}.ed-hl .cb{color:var(--sub)}.ed-hl .cs{color:var(--hl-green)}.ed-hl .cn,.ed-hl .cp,.ed-hl .link,.ed-hl .fmk,.ed-hl .tag,.ed-hl .ref{color:var(--hl-blue)}.ed-hl .url{color:var(--mute);text-underline-offset:3px;text-decoration:underline}.ed-hl .q{color:var(--sub)}.ed-hl .b,.ed-hl .tbh{color:var(--ink);font-weight:500}.ed-hl .it{color:var(--strong);text-underline-offset:3px;text-decoration:underline dotted}.ed-hl .st{color:var(--mute);text-decoration:line-through}.ed-hl .task-done{color:var(--ok)}.ed-hl .done{color:var(--mute)}.ed-hl .fmv{color:var(--sub)}.ed-hl .dz{opacity:.3}.pv-lint{border-top:1px solid var(--line);color:var(--sub);flex:none;padding:9px 16px;font-size:12px;line-height:1.6}.pv-lint .pv-linkbtn{margin:0 4px 0 0}.pv-lint .pv-next{margin-left:12px}.pv-warn{color:var(--accent-ink)}.pv-ok{color:var(--ok)}.pv-vb{flex:1;min-height:0;display:flex;position:relative}.pv-outbtn{z-index:6;position:absolute;top:12px;right:22px}.pv-out{background:var(--bg);outline-offset:-2px;flex:1;min-width:0;overflow:auto}.pv-page{max-width:760px;margin:0 auto;padding:32px 24px 64px}.pv-props{border-collapse:collapse;width:100%;margin:0 0 28px;font-size:12px}.pv-props th,.pv-props td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:5px 16px 5px 0}.pv-props th{white-space:nowrap;letter-spacing:.06em;width:1%;color:var(--mute);font-weight:500}.pv-props td{color:var(--sub)}.pv-rail{z-index:5;background:var(--bg);border:1px solid var(--ink);width:260px;max-height:min(420px,100% - 48px);padding:8px 0;position:absolute;top:36px;right:22px;overflow:auto}.pv-ol{width:100%;font:inherit;text-align:left;color:var(--sub);cursor:pointer;background:0 0;border:0;padding:5px 12px 5px 16px;font-size:12px;line-height:1.5;display:block}.pv-ol:hover{background:var(--hover);color:var(--ink)}.pv-ol[aria-current=true]{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.pv-olempty{color:var(--mute);margin:8px 16px;font-size:12px}.pv-mode{letter-spacing:.04em;color:var(--mute);flex-wrap:wrap;flex:none;align-items:center;gap:6px 22px;padding:10px 0 0;font-size:12px;display:flex}.pv-modetag{background:var(--ink);color:var(--bg);letter-spacing:.06em;padding:2px 8px}.pv-flash{color:var(--accent-ink)}.pv-hint{color:var(--dim);margin-left:auto}.pv-right{margin-left:auto;margin-right:0}.pv-menu-wide{min-width:320px;max-height:min(70vh,520px);overflow:auto}.pv-saved{color:var(--mute)}.pv-tool[aria-pressed=true]{color:var(--bg);background:var(--ink);border-color:var(--ink)}.pv-dirty{color:var(--accent-ink);margin-left:10px;font-size:12px}.pv-src{position:relative}.pv-find{z-index:6;border:1px solid var(--ink);background:var(--bg);flex-direction:column;gap:6px;max-width:calc(100% - 36px);padding:8px;font-size:12px;display:flex;position:absolute;top:8px;right:18px}.pv-frow{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.pv-fin{width:200px;max-width:100%;font:inherit;border:1px solid var(--rail2);color:var(--ink);background:0 0;padding:5px 8px;font-size:12px}.pv-fin:focus,.pv-railq:focus,.pv-name:focus{border-color:var(--accent);outline:0}.pv-fcount{min-width:64px;color:var(--mute);font-variant-numeric:tabular-nums;padding:0 4px}.pv-find .pv-tool{height:26px;padding:0 6px}.pv[data-zen] .pv-find{z-index:140;position:fixed;top:16px;left:50%;right:auto;transform:translate(-50%)}.pv-railq{width:calc(100% - 24px);font:inherit;border:1px solid var(--rail2);color:var(--ink);background:0 0;margin:4px 12px 8px;padding:6px 8px;font-size:12px;display:block}.pv-ol.sel{background:var(--hover);color:var(--ink)}.pv-fm{letter-spacing:.04em;margin:0 0 22px;font-size:12px}.pv-fm .pv-props{margin:10px 0 0}.pv-props td div{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pv-wide .pv-page{max-width:1100px}.pv[data-sview=pv] .pv-page{padding-top:64px;padding-bottom:120px}@media (width>=960px){.pv[data-sview=pv] .pv-page{padding-left:64px;padding-right:64px}}.pv-wide .md-doc{max-width:none}@media (width<=959px){.pv-hint{display:none}.pv-split[data-view=split] .pv-src{display:flex}.pv-tools{overflow-x:auto}.pv-grp,.pv-tool{flex:none}.pv-deskonly{display:none}.pv-from{max-width:100%;margin:2px 0 0;display:block}}@media (width>=960px){.pv-desk{display:inline-block}.pv-split[data-view=split]{grid-template-columns:minmax(0, calc(var(--pvr,50) * 1%)) 9px minmax(0, 1fr)}.pv-split[data-view=split] .pv-view{display:flex}.pv-split[data-view=split] .pv-sep{display:block}.pv-split[data-view=pv] .pv-rail{border:0;border-right:1px solid var(--line);flex:none;width:240px;max-height:none;position:static}.pv-page{padding:36px 40px 80px}}@media (width>=1700px){.pv-page{padding-left:56px;padding-right:56px}}.pv[data-zen]{height:100dvh}.pv[data-zen] .pv-split{border:0;grid-template-columns:minmax(0,1fr)}.pv[data-zen] .pv-view,.pv[data-zen] .pv-lint{display:none}.pv[data-zen] .pv-src{border:0}.pv[data-zen] .ed{width:100%;max-width:860px;margin:0 auto}.pv[data-zen] .ed-gut{display:none}.pv[data-zen] .ed-hl,.pv[data-zen] .ed-ta{white-space:pre-wrap;overflow-wrap:break-word}.pv[data-zen] .ed-ta{scrollbar-width:none;overflow-x:hidden}.pv[data-zen] .ed-ta::-webkit-scrollbar{display:none}.pv[data-zen][data-zread] .pv-out{scrollbar-width:none;outline:0}.pv[data-zen][data-zread] .pv-out::-webkit-scrollbar{display:none}.pv[data-zen] .ed-hl{min-width:0;width:var(--zw,100%);right:auto}.pv[data-zen] .ed-cur,.pv[data-zen] .ed-find{display:none}.pv[data-zen]{--zfs:19px;--zlh:34px;--zcol:760px}.pv[data-zen][data-zsize=s]{--zfs:17px;--zlh:30px}.pv[data-zen][data-zsize=l]{--zfs:21px;--zlh:37px}.pv[data-zen][data-zcol=narrow]{--zcol:660px}.pv[data-zen][data-zcol=wide]{--zcol:900px}.pv[data-zen] .ed{max-width:var(--zcol)}.pv[data-zen] .ed-hl,.pv[data-zen] .ed-ta{font-family:Be Vietnam Pro,system-ui,sans-serif;font-style:normal;font-weight:400;font-size:var(--zfs);line-height:var(--zlh);font-kerning:none;font-variant-ligatures:none;font-feature-settings:"kern" 0, "liga" 0, "calt" 0;text-rendering:auto;padding:30vh 24px 45vh}.pv[data-zen][data-zface=mono]{--zfs:16px;--zlh:30px}.pv[data-zen][data-zface=mono][data-zsize=s]{--zfs:14px;--zlh:26px}.pv[data-zen][data-zface=mono][data-zsize=l]{--zfs:18px;--zlh:33px}.pv[data-zen][data-zface=mono] .ed-hl,.pv[data-zen][data-zface=mono] .ed-ta{font-family:JetBrains Mono,monospace}.pv[data-zen] .ed-hl *{font:inherit;font-kerning:inherit;font-feature-settings:inherit;font-variant-ligatures:inherit;letter-spacing:inherit}.pv[data-zen] .ed-hl .b,.pv[data-zen] .ed-hl .h,.pv[data-zen] .ed-hl .tbh{color:var(--ink)}.pv[data-zen]{--zd1:.55;--zd2:.38;--zd3:.26}.pv[data-zen][data-zdim=strong]{--zd1:.38;--zd2:.22;--zd3:.14}.pv[data-zen][data-zdim=off]{--zd1:1;--zd2:1;--zd3:1}.pv[data-zen] .ed-hl .dz{opacity:var(--zd1)}.pv[data-zen] .ed-hl .dz.d2{opacity:var(--zd2)}.pv[data-zen] .ed-hl .dz.d3{opacity:var(--zd3)}.pv[data-zen] .ed-hl .sd{opacity:var(--zd1)}.pv[data-zen] .ed-hl .dz .mk{opacity:.5}.pv[data-zen] .ed-hl .code{text-decoration:underline;text-decoration-color:color-mix(in oklch, var(--hl-green) 55%, transparent);text-underline-offset:4px;background:0 0}.pv[data-zen][data-zread] .pv-split .pv-view{display:flex}.pv[data-zen][data-zread] .pv-split .pv-src{display:none}.pv[data-zen][data-zread] .pv-page{max-width:var(--zcol);padding:88px 24px 40vh}.pv[data-zen][data-zread] .md-doc{max-width:none;font-size:var(--zfs);color:var(--body);line-height:1.85}.pv[data-zen][data-zread] .md-doc h1{letter-spacing:-.025em;border-bottom:0;margin-bottom:.7em;padding-bottom:0;font-size:40px;line-height:1.2}.pv[data-zen][data-zread] .md-doc h2{border-bottom:0;margin-top:2.2em;padding-bottom:0;font-size:27px}.pv[data-zen][data-zread] .md-doc h3{font-size:21px}.pv[data-zen][data-zread] .md-doc p{margin-bottom:1.3em}.pv[data-zen][data-zread] .md-doc blockquote{padding-left:22px;font-size:1.04em}.zc{background:var(--zcard);color:var(--sub);border:1px solid var(--line);border-radius:2px;font:400 13px/1.4 Be Vietnam Pro,system-ui,sans-serif;box-shadow:0 6px 22px oklch(20% .01 60/.07)}.zc button{font:inherit;letter-spacing:0;color:inherit;cursor:pointer;background:0 0;border:0}.zc-bar{z-index:31;background:var(--accent);height:2px;transition:width .4s;position:fixed;top:0;left:0}.zc-sel{z-index:40;flex-direction:column;gap:2px;padding:4px;display:flex;position:fixed;transform:translate(-50%,-100%)}.zc-sel.below{transform:translate(-50%)}.zc-row{display:flex}.zc .zc-t{min-width:34px;height:34px;color:var(--ink);border-radius:0;padding:0 8px;font-size:15px;font-weight:500}.zc-t:hover{background:var(--hover);color:var(--ink)}.zc-t.pv-b{font-weight:600}.zc-t.pv-s{text-decoration:line-through}.zc-t[aria-label^=I\ Italic]{font-style:italic}.zc-extra{border-top:1px solid var(--line);padding-top:2px}.zc-keep{--zdw:148px;opacity:0;pointer-events:none;transition:opacity .22s cubic-bezier(.2,.8,.2,1),transform .22s cubic-bezier(.2,.8,.2,1)}.zc-keep.on,.zc-keep:hover,.zc-keep:focus-within{opacity:1;pointer-events:auto}.zc-top,.zc-rail,.zc-corner{z-index:35;position:fixed}.zc-rail{width:var(--zdw)}.zc-top,.zc-corner{right:20px}.zc-rail{left:max(10px, calc(50vw - var(--zcol,760px) / 2 - 40px - var(--zdw)))}.zc-ghost{pointer-events:none!important}.zc kbd{text-transform:none;letter-spacing:0;color:var(--mute);border:1px solid var(--line);padding:2px 5px;font:400 11px/1 JetBrains Mono,monospace}.zc-ico{flex:none;display:block}html[data-zidle] .pv[data-zen],html[data-zidle] .pv[data-zen] :not(.zc-keep):not(.zc-keep *){cursor:none}.zc-hint,.zc-flash{font-family:Be Vietnam Pro,system-ui,sans-serif}.zc-corner{flex-direction:column;align-items:flex-end;gap:8px;display:flex;bottom:20px;transform:translateY(4px)}.zc-corner.on,.zc-corner:hover,.zc-corner:focus-within{transform:none}.zc-stats{white-space:nowrap;background:color-mix(in oklch, var(--zcard) 90%, transparent);align-items:center;gap:16px;padding:6px 14px;display:flex}.zc-sep{background:var(--line);align-self:stretch;width:1px}.zc-stat{align-items:center;gap:14px;display:flex}.zc-dot{background:var(--rail2);width:6px;height:6px;margin-right:7px;display:inline-block}.zc-cap{color:var(--mute);font-size:13px}.zc-cap.warn{color:var(--accent-ink)}.zc-vals{color:var(--mute);align-items:center;gap:14px;font-size:13px;display:flex}.zc-vals b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}.zc-stats:not(:hover):not(:focus-within) .idle{display:none}.zc-mode{gap:14px;display:flex}.zc-mode button{color:var(--mute);border-bottom:1px solid #0000;padding:4px 0}.zc-mode button:hover{color:var(--ink)}.zc-mode button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--accent)}.zc-hint{max-width:300px;color:var(--sub);background:var(--zcard);border:1px solid var(--line);border-radius:2px;margin:0;padding:6px 10px;font-size:13px}.zc-top{justify-content:flex-end;display:flex;top:16px;transform:translateY(-4px)}.zc-top.on,.zc-top:hover,.zc-top:focus-within{transform:none}.zc-split{white-space:nowrap;align-items:center;padding:2px;display:flex}.zc-split button{height:28px;color:var(--mute);justify-content:center;align-items:center;gap:7px;display:inline-flex}.zc-split button:hover{color:var(--ink);background:var(--hover)}.zc-copy{padding:0 10px}.zc-copy-t{font-size:13px}.zc-split .zc-copy.ok,.zc-split .zc-copy.ok:hover{color:var(--accent-ink)}.zc-caret,.zc-more{width:26px}.zc-caret .zc-ico{opacity:.75}.zc-split .zc-sep{align-self:stretch;width:1px;height:auto;margin:6px 2px}.zc-flash{white-space:nowrap;color:var(--accent-ink);opacity:0;pointer-events:none;font-size:12px;transition:opacity .15s;position:absolute;top:40px;right:0}.zc-flash:not(:empty){opacity:1}.zc-cmenu,.zc-menu{scrollbar-width:thin;flex-direction:column;max-height:72vh;padding:6px;display:flex;position:absolute;top:40px;right:0;overflow-y:auto}.zc-cmenu{min-width:250px}.zc-menu{min-width:340px}.zc-mi{text-align:left;border-radius:0;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.zc-mi:hover{background:var(--hover);color:var(--ink)}.zc-ck{width:18px;height:14px;color:var(--accent);flex:none;padding-top:3px}.zc-mt{flex-direction:column;gap:1px;display:flex}.zc-mt b{color:var(--ink);font-weight:500}.zc-mt i{color:var(--sub);font-size:12px;font-style:normal}.zc-menu-foot{border-top:1px solid var(--line);color:var(--sub);margin-top:4px;padding:6px 10px 4px;font-size:12px}.zc-r2{justify-content:space-between;align-items:center;gap:20px;padding:6px 10px;display:flex}.zc-r2.off .zc-seg{opacity:.55}.zc-lab,.zc-menu .zc-adv,.zc-menu .zc-exit{letter-spacing:.08em;text-transform:uppercase;font:500 12px/1.4 JetBrains Mono,monospace}.zc-lab{color:var(--sub);white-space:nowrap;flex-direction:column;gap:1px;display:flex}.zc-lt{align-items:center;gap:8px;display:flex}.zc-lab i{color:var(--mute);letter-spacing:.04em;font-size:11px;font-style:normal}.zc-seg{border:1px solid var(--line);border-radius:0;display:inline-flex}.zc-seg button{color:var(--mute);border-bottom:1px solid #0000;border-radius:0;padding:4px 10px}.zc-seg button+button{border-left:1px solid var(--line)}.zc-seg button:hover{color:var(--ink)}.zc-seg button[aria-pressed=true]{color:var(--ink);background:var(--hover);border-bottom-color:var(--accent)}.zc-adv,.zc-exit{text-align:left;width:100%;color:var(--sub);border-radius:0;justify-content:space-between;align-items:center;gap:28px;padding:8px 10px;display:flex}.zc-adv:hover,.zc-exit:hover{background:var(--hover);color:var(--ink)}.zc-adv b{color:var(--ink);font-weight:500}.zc-sepline{background:var(--line);height:1px;margin:4px 6px}.zc-narrow-only{flex-direction:column;display:none}.zc-sec{letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:10px 10px 2px;font:500 11px/1.4 JetBrains Mono,monospace}.zc-sec:first-child{padding-top:4px}.zc-save{border-top:1px solid var(--line);margin-top:4px}.zc-note{z-index:36;color:var(--sub);background:var(--zcard);border:1px solid var(--line);pointer-events:none;border-radius:2px;margin:0;padding:6px 10px;font:400 12px/1.4 Be Vietnam Pro,system-ui,sans-serif;animation:2.4s both zc-note;position:fixed;bottom:20px;right:20px}@keyframes zc-note{0%{opacity:0}8%,85%{opacity:1}to{opacity:0}}.zc-prog{background:var(--mute);opacity:.6}.zc-rail{justify-content:flex-end;align-items:center;display:flex;top:50%;transform:translate(-4px,-50%)}.zc-rail.on,.zc-rail:hover,.zc-rail:focus-within{transform:translateY(-50%)}.zc-ticks{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-end;gap:7px;max-height:60vh;padding:12px 0 12px 14px;display:flex;overflow:hidden}.zc-tick{background:var(--mute);opacity:.55;flex:none;height:2px;display:block}.zc-tick.l1{width:26px}.zc-tick.l2{width:18px}.zc-tick.l3{width:11px}.zc-tick.cur{background:var(--accent);opacity:1}.zc-rail-list{box-sizing:border-box;width:min(280px, calc(50vw - var(--zcol,760px) / 2 - 98px));opacity:0;pointer-events:none;padding:6px;transition:opacity .22s cubic-bezier(.2,.8,.2,1);position:absolute;top:50%;right:48px;transform:translateY(-50%)}.zc-rail:hover .zc-rail-list,.zc-rail:focus-within .zc-rail-list,.zc-rail.open .zc-rail-list,.zc-rail.pinned .zc-rail-list{opacity:1;pointer-events:auto}.zc-ol-h{letter-spacing:.12em;text-transform:uppercase;color:var(--mute);justify-content:space-between;align-items:center;padding:2px 4px 6px 10px;font:500 11px/1.4 JetBrains Mono,monospace;display:flex}.zc .zc-pin{width:24px;height:24px;color:var(--mute);justify-content:center;align-items:center;display:inline-flex}.zc .zc-pin:hover{color:var(--ink);background:var(--hover)}.zc .zc-pin[aria-pressed=true]{color:var(--accent-ink)}.zc-ol{scrollbar-width:thin;flex-direction:column;max-height:60vh;display:flex;overflow-y:auto}.zc-ol button{text-align:left;min-height:30px;color:var(--sub);white-space:nowrap;text-overflow:ellipsis;border-radius:0;flex:none;max-width:300px;padding:5px 10px;font-size:13px;line-height:18px;overflow:hidden}.zc-ol button:hover{background:var(--hover);color:var(--ink)}.zc-ol button.cur{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.zc-ol-menu{max-height:34vh;margin:2px 0 4px}@media (width<=1279px){.zc-rail{display:none}.zc-narrow-only{display:flex}}@media (width<=1180px){.zc-keep{--zdw:104px}.zc-copy-t{display:none}}@media (width<=1499px){.zc-stats .zc-cap:not(.warn),.zc-vals .x{display:none!important}}@media (width<=600px){.zc-keep{--zdw:auto}.zc-corner{align-items:stretch;bottom:12px;left:12px;right:12px}.zc-stats{justify-content:space-between;gap:10px;padding:4px 12px}.zc-stat,.zc-vals{gap:10px}.zc-top{top:10px;right:10px}.zc-cmenu,.zc-menu{min-width:min(340px,100vw - 24px)}.zc-hint{max-width:none}}@media (prefers-reduced-motion:reduce){.zc-note{animation:none}.zc-keep,.zc-rail-list,.zc-flash{transition:none}.zc-corner,.zc-top{transform:none}.zc-rail{transform:translateY(-50%)}}:root[data-alive=calm] .zc-keep,:root[data-alive=calm] .zc-rail-list,:root[data-alive=calm] .zc-flash{transition:none}.pv[data-zen] .ed,.pv[data-zen][data-zread] .pv-out{-webkit-mask-image:linear-gradient(#000 calc(100% - 64px),#0000);mask-image:linear-gradient(#000 calc(100% - 64px),#0000)}body:has(.pv[data-zen]){overflow:hidden}@media print{body[data-view=app] .frame{max-width:none}body[data-view=app] .pv{height:auto;display:block}body[data-view=app] .pv-bar,body[data-view=app] .pv-tools,body[data-view=app] .pv-mode,body[data-view=app] .pv-src,body[data-view=app] .pv-outbtn,body[data-view=app] .pv-rail,body[data-view=app] .pv-sep{display:none!important}body[data-view=app] .pv-split{border:0;height:auto!important;display:block!important}body[data-view=app] .pv-view,body[data-view=app] .pv-vb,body[data-view=app] .pv-out{height:auto!important;display:block!important;overflow:visible!important}body[data-view=app] .pv-page{max-width:none;padding:0}body[data-view=app] .md-doc{max-width:none;font-size:12pt}body[data-view=app] .md-doc .cb-copy{display:none}body[data-view=app] .md-doc .cb,body[data-view=app] .md-doc table,body[data-view=app] .md-doc blockquote{break-inside:avoid}}.sl{z-index:300;background:var(--bg);color:var(--body);outline:0;flex-direction:column;font-family:JetBrains Mono,monospace;display:flex;position:fixed;inset:0}.sl-bar{background:var(--line);flex:none;height:3px}.sl-bar i{background:var(--accent);height:100%;display:block}.sl-stage{cursor:pointer;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.sv.sl-slide{position:absolute;inset:0}.sl-empty{color:var(--mute);margin:auto;font-size:14px}.sl-foot{border-top:1px solid var(--line);letter-spacing:.04em;flex:none;align-items:center;gap:20px;padding:10px 20px;font-size:12px;display:flex}.sl-count{min-width:64px;color:var(--ink)}.sl-btns{gap:8px;display:inline-flex}.sl-btns button{font:inherit;letter-spacing:.06em;border:1px solid var(--rail2);color:var(--ink);cursor:pointer;background:0 0;border-radius:0;padding:6px 12px;font-size:12px}.sl-btns button:hover:not(:disabled){background:var(--hover)}.sl-btns button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.sl-btns button:disabled{color:var(--dim);cursor:default}.sl-btns button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sl-hint{color:var(--mute);margin-left:auto}.sl-time{color:var(--mute);font-variant-numeric:tabular-nums}.sl[data-idle]:not([data-grid]) .sl-stage{cursor:none}.sl-blank{background:var(--bg);flex:1}.sl-notes{border-top:1px solid var(--ink);scrollbar-width:thin;scrollbar-color:var(--rail2) transparent;flex:none;max-height:32%;padding:14px 20px;overflow:auto}.sl-notes .md-doc{max-width:900px;font-size:16px}.sl-nonote{color:var(--mute);margin:0;font-size:12px}.sl-grid{scrollbar-width:thin;scrollbar-color:var(--rail2) transparent;flex:1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.sl-thumb{aspect-ratio:16/9;border:1px solid var(--line);background:var(--bg);height:auto;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:0;display:block;position:relative;overflow:hidden}.sl-thumb[aria-selected=true]{border-color:var(--ink)}.sl-thumb[aria-current=true],.sl-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sl-tn{z-index:1;background:var(--bg);color:var(--ink);border-left:1px solid var(--line);border-top:1px solid var(--line);padding:2px 8px;font-size:11px;position:absolute;bottom:0;right:0}.sl-tv{pointer-events:none;display:block;position:absolute;inset:0}.sv.sl-tsv{position:absolute;inset:0}@media (width<=720px){.sl-hint,.sl-wide{display:none}.sl-foot{flex-wrap:wrap;gap:8px;padding:8px 10px}.sl-count{min-width:0}.sl-btns{flex-wrap:wrap;gap:6px}.sl-btns button{padding:6px 8px}.sl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (prefers-reduced-motion:no-preference){:root:not([data-alive=calm]) .sl-slide{animation:.2s ease-out sl-in}}@keyframes sl-in{0%{opacity:0}to{opacity:1}}.hs{--hs-add:color-mix(in oklch, var(--post-green) 17%, transparent);--hs-del:color-mix(in oklch, var(--accent) 15%, transparent);z-index:120;background:var(--bg);border-left:1px solid var(--ink);outline:0;flex-direction:column;width:min(440px,100vw);font-family:JetBrains Mono,monospace;font-size:13px;display:flex;position:fixed;top:0;bottom:0;right:0}.hs-h{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.hs-row{letter-spacing:.03em;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:12px;display:flex}.hs-msg{margin:0;padding:12px 16px;font-size:12px;line-height:1.6}.hs-snaps{border-bottom:1px solid var(--ink);flex-direction:column;flex:none;max-height:40%;display:flex}.hs-list{scrollbar-width:thin;scrollbar-color:var(--rail2) transparent;margin:0;padding:0;list-style:none;overflow:auto}.hs-list button{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--body);font:inherit;cursor:pointer;background:0 0;border-left:3px solid #0000;padding:8px 16px;font-size:12px;display:block}.hs-list button:hover{background:var(--hover)}.hs-list button[aria-pressed=true]{border-left-color:var(--accent);background:var(--hover)}.hs-list button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hs-meta{margin-top:2px;display:block}.hs-b{scrollbar-width:thin;scrollbar-color:var(--rail2) transparent;flex:1;min-height:0;overflow:auto}.hs-hunks{margin:0;padding:0;list-style:none}.hs-hunk{border-bottom:1px solid var(--line)}.hs-hh{align-items:center;gap:4px;padding:8px 16px 4px;font-size:12px;display:flex}.hs-acts{gap:14px;margin-left:auto;display:inline-flex}.hs-plus{color:var(--ok,var(--post-green))}.hs-minus{color:var(--accent-ink)}.hs-pre{white-space:pre;scrollbar-width:thin;margin:0;padding:0 0 8px;font:400 12px/1.6 JetBrains Mono,monospace;overflow-x:auto}.hs-pre span{padding:0 16px;display:block}.hs-pre .hs-d{background:var(--hs-del)}.hs-pre .hs-a{background:var(--hs-add)}.hs-f{border-top:1px solid var(--line);flex:none;padding:10px 16px}.hs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media print{.sl,.hs{display:none!important}}.pv-menu{max-height:min(70dvh,560px);overflow-y:auto}.pv-menu-h{letter-spacing:.08em;color:var(--mute);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);background:var(--hover);padding:8px 14px 6px;font-size:11px}.pv[data-zen][data-zread] .md-doc .cb-copy{opacity:0;transition:opacity .18s}.pv[data-zen][data-zread] .md-doc .cb:hover .cb-copy,.pv[data-zen][data-zread] .md-doc .cb:focus-within .cb-copy,.pv[data-zen][data-zread] .md-doc .cb-copy:focus-visible{opacity:1}@media (hover:none){.pv[data-zen][data-zread] .md-doc .cb-copy{opacity:1}}@media (prefers-reduced-motion:reduce){.pv[data-zen][data-zread] .md-doc .cb-copy{transition:none}}.ed-lint{height:var(--ed-lh);border-bottom:1px dashed color-mix(in oklch, var(--accent) 70%, transparent);box-sizing:border-box;position:absolute}.pv[data-zen] .ed-lint{display:none}.ed-gutwin .gw{color:var(--accent-ink);cursor:pointer}.ed-gutwin .gw:after{content:"";background:var(--accent);width:4px;height:4px;margin-top:-2px;position:absolute;top:50%;right:3px}.ed-gut{pointer-events:auto}.pv-slash{z-index:7;border:1px solid var(--ink);background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--rail2) transparent;width:250px;max-height:320px;margin:0;padding:4px 0;font:400 12px/1.4 JetBrains Mono,monospace;list-style:none;position:absolute;overflow-y:auto}.pv-slash-i{color:var(--body);cursor:pointer;justify-content:space-between;gap:12px;padding:6px 12px;display:flex}.pv-slash-i i{color:var(--mute);white-space:nowrap;text-overflow:ellipsis;font-style:normal;overflow:hidden}.pv-slash-i[aria-selected=true]{background:var(--hover);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.pv[data-zen] .pv-slash{font-family:JetBrains Mono,monospace}.pv-ol[draggable=true]{cursor:grab}.pv-ol.drag{opacity:.45}.pv-ol.drop{box-shadow:inset 0 2px 0 var(--accent)}.pv-oldrop{letter-spacing:.04em;color:var(--mute);border:1px dashed var(--rail2);text-align:center;margin:4px 8px;padding:6px 8px;font-size:11px}.pv-oldrop.drop{color:var(--ink);border-color:var(--accent)}.pv-ptoc{display:none}@media print{body[data-view=app] .pv-ptoc{break-after:page;font-family:Be Vietnam Pro,system-ui,sans-serif;display:block}.pv-ptoc-h{letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font:500 11pt JetBrains Mono,monospace}.pv-ptoc ol{margin:0;padding:0;font-size:11pt;line-height:1.9;list-style:none}.pv-ptoc li.l2{padding-left:1.2em}.pv-ptoc li.l3{padding-left:2.4em}.pv-ptoc a{color:inherit;text-decoration:none}body[data-view=app] .pv-find,body[data-view=app] .pv-slash{display:none!important}}.as-list{margin:0;padding:0;list-style:none}.as-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.as-th{object-fit:cover;border:1px solid var(--line);background:var(--hover);flex:none;width:56px;height:42px}.as-meta{min-width:0;color:var(--mute);flex-direction:column;flex:1;gap:2px;font-size:12px;display:flex}.as-meta b{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.as-unused{color:var(--accent-ink)}.as-acts{flex:none;gap:12px;display:inline-flex}.hs-f .pv-linkbtn:disabled{color:var(--dim);cursor:default;text-decoration:none}.pv-tbar{z-index:6;box-sizing:border-box;white-space:nowrap;border:1px solid var(--ink);background:var(--bg);flex-wrap:wrap;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:3px 6px;font:400 12px/1 JetBrains Mono,monospace;display:flex;position:absolute;bottom:10px;right:18px}.pv-tbar-g{align-items:center;gap:2px;display:inline-flex}.pv-tbar button{height:24px;font:inherit;color:var(--sub);cursor:pointer;background:0 0;border:1px solid #0000;padding:0 6px}.pv-tbar button:hover:not(:disabled){color:var(--ink);border-color:var(--rail2);background:var(--hover)}.pv-tbar button:disabled{color:var(--dim);cursor:default}.pv-tbar button[aria-pressed=true]{color:var(--bg);background:var(--ink);border-color:var(--ink)}.pv-tbar button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pv-tbar-l{color:var(--mute);letter-spacing:.06em;text-transform:uppercase;padding:0 4px 0 10px;font-size:11px}.pv-tbar-g:first-child .pv-tbar-l{padding-left:2px}.zc-ol button[draggable=true]{cursor:grab}.zc-ol button.drag{opacity:.45}.zc-ol button.drop{box-shadow:inset 0 2px 0 var(--accent)}.zc-oldrop{letter-spacing:.04em;color:var(--mute);border:1px dashed var(--rail2);text-align:center;flex:none;margin:4px 8px;padding:5px 8px;font:400 11px/1.4 JetBrains Mono,monospace;display:block}.zc-oldrop.drop{color:var(--ink);border-color:var(--accent)}.zc-oldrop.idle{visibility:hidden}.pv-comp{width:320px}.pv-comp .pv-slash-i span{text-overflow:ellipsis;white-space:pre;overflow:hidden}.pv-offline{border:1px solid var(--rail2);color:var(--ink);letter-spacing:.06em;padding:0 6px}.sec[data-astro-cid-w6ymvdtg]{padding:var(--pad);grid-template-columns:minmax(0,1fr);display:grid}.bt[data-astro-cid-w6ymvdtg]{border-top:1px solid var(--line)}@media (width>=960px){.sec[data-astro-cid-w6ymvdtg]{grid-template-columns:repeat(11,minmax(0,1fr))}}.sec[data-astro-cid-w6ymvdtg]>.main-col{min-width:0;max-width:780px}@media (width>=960px){.sec[data-astro-cid-w6ymvdtg]>.main-col{grid-column:5/-1}.sec[data-astro-cid-w6ymvdtg]>.side-col{grid-column:1/span 4}}.appbar{letter-spacing:.04em;color:var(--mute);align-items:center;gap:20px;padding:10px 32px;font:12px/1.4 JetBrains Mono,monospace;display:flex}.appbar-brand{color:var(--ink);letter-spacing:0;font-size:13px;font-weight:500;text-decoration:none}.appbar-brand span{color:var(--accent)}.appbar-brand:hover{color:var(--ink)}.appbar-where{color:var(--sub)}.appbar-r{gap:8px;margin-left:auto;display:flex}.appbar-btn{font:inherit;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--sub);cursor:pointer;background:0 0;padding:3px 8px;font-size:11px}.appbar-btn:hover{border-color:var(--ink);color:var(--ink)}@media (width<=640px){.appbar{padding:8px 16px}.appbar-where{display:none}}@media print{.appbar{display:none}}
