@font-face{font-family:Geist;src:url(fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter Demo;src:url(fonts/inter-latin-var.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--ep-bg: #fff;--ep-object: #fff;--ep-ink: #17181a;--ep-sub: #73726d;--ep-ink-3: #9a9993;--ep-accent: #4559ff;--ep-wash: rgba(23, 24, 26, .06);--ep-hair: rgba(23, 24, 26, .1);--ep-shadow: 0 0 0 1px rgba(23, 24, 26, .06), 0 2px 8px rgba(23, 24, 26, .06);--ep-shadow-lift: 0 0 0 1px rgba(23, 24, 26, .06), 0 22px 44px -6px rgba(23, 24, 26, .16), 0 6px 14px rgba(23, 24, 26, .06);--ep-out: cubic-bezier(.22, 1, .36, 1);--ep-spring: cubic-bezier(.28, 1.3, .36, 1);--ep-font: "Inter Demo", "PingFang SC", "MiSans", "HarmonyOS Sans SC", "Microsoft YaHei", sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--ep-bg);color:var(--ep-ink);font:400 15px/1.5 var(--ep-font);-webkit-font-smoothing:antialiased}.cr-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ep-wrap{position:relative;max-width:1120px;margin:0 auto;padding:88px 32px 96px}.ep-title{margin:0;font-size:36px;font-weight:500;line-height:1.1;letter-spacing:-.012em}.ep-lede{margin:14px 0 0;max-width:42em;color:var(--ep-sub);font-size:16px;line-height:1.55}.ep-back{position:absolute;left:32px;top:38px;font-size:13px;line-height:18px;color:var(--ep-sub);text-decoration:none}.ep-back:hover{color:var(--ep-ink)}.ep-back:focus-visible{outline:2px solid var(--ep-accent);outline-offset:4px;border-radius:2px}.ep-stage{position:relative;margin-top:40px;height:clamp(460px,64vh,620px);border-radius:28px;overflow:hidden;background:var(--ep-wash);isolation:isolate;-webkit-user-select:none;user-select:none;--object: var(--ep-object);--ink: var(--ep-ink);--ink-2: #5c5b56;--ink-3: var(--ep-ink-3);--hair: var(--ep-hair);--accent: var(--ep-accent);--surface: #f0f0ef;--shadow: var(--ep-shadow);--shadow-lift: var(--ep-shadow-lift);--out: var(--ep-out);--spring: var(--ep-spring);--ease: cubic-bezier(.33, .55, .2, 1);--font: var(--ep-font);--mono: "Geist", "Inter", system-ui, sans-serif;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-pill: 999px;--paper: var(--object);--paper-deep: var(--surface);--muted: var(--ink-2);--line: var(--hair);--blue: var(--accent);--white: var(--ink);--stage: var(--surface);--stage-deep: rgba(23, 24, 26, .045);--stage-line: var(--hair);--stage-line-strong: rgba(23, 24, 26, .2);--stage-muted: var(--ink-2);--stage-faint: var(--ink-3);--stage-radius: var(--r-sm)}.ep-stage:before{content:"";position:absolute;inset:12px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(23,24,26,.1) 1px,transparent 1.6px) center / 22px 22px}.ep-board{position:absolute;inset:0}html.ea-wide .ep-stage{height:clamp(460px,calc(64vh / var(--ea-k)),620px)}.dc-cursor{--dc-ink: var(--ink, #17181a);--dc-hair: var(--hair, rgba(23, 24, 26, .12));--dc-spring: cubic-bezier(.28, 1.3, .36, 1);--dc-out: cubic-bezier(.22, 1, .36, 1);position:absolute;left:0;top:0;z-index:10;width:0;height:0;pointer-events:none;opacity:0;will-change:transform,opacity}.dc-cursor svg{position:absolute;overflow:visible;display:block}.dc-body{position:absolute;left:0;top:0;transform-origin:0 0;transition:scale .38s var(--dc-spring)}.dc-arrow{filter:drop-shadow(0 .5px .6px rgba(23,24,26,.3)) drop-shadow(0 2px 3px rgba(23,24,26,.14)) drop-shadow(0 7px 12px rgba(23,24,26,.1));transition:filter .22s var(--dc-out)}.dc-arrow path{fill:var(--dc-ink);stroke:#fff;stroke-width:1.6px;stroke-linejoin:round;paint-order:stroke}.dc-cursor[data-down] .dc-body{scale:.86;transition:scale 90ms var(--dc-out)}.dc-cursor[data-down] .dc-arrow,.dc-cursor[data-hold] .dc-arrow{filter:drop-shadow(0 .4px .5px rgba(23,24,26,.32)) drop-shadow(0 1px 2px rgba(23,24,26,.14)) drop-shadow(0 3px 6px rgba(23,24,26,.06))}.dc-ripple{position:absolute;left:-20px;top:-20px;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--dc-ink);background:#17181a0a;opacity:0;pointer-events:none;animation:dc-ripple .32s var(--dc-out) forwards}@keyframes dc-ripple{0%{scale:.25;opacity:.4}to{scale:1;opacity:0}}.dc-cursor[data-hold] .dc-body{scale:.8;transition:scale .2s var(--dc-out)}.dc-hold{left:-20px;top:-20px;width:40px;height:40px;rotate:-90deg;opacity:0;scale:.7;transition:opacity .18s var(--dc-out),scale .32s var(--dc-spring)}.dc-cursor[data-hold] .dc-hold{opacity:1;scale:1}.dc-hold circle{fill:none;stroke-width:2px}.dc-hold .dc-hold-bg{fill:#ffffff8c;stroke:none}.dc-hold .dc-hold-track{stroke:var(--dc-hair)}.dc-hold .dc-hold-arc{stroke:var(--dc-ink);stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1}.dc-cursor[data-hold-done] .dc-hold{animation:dc-hold-done .36s var(--dc-spring)}@keyframes dc-hold-done{50%{scale:1.1}}.dc-wheel{left:13px;top:17px;width:22px;height:32px;opacity:0;scale:.5;transform-origin:0 0;filter:drop-shadow(0 .5px .6px rgba(23,24,26,.22)) drop-shadow(0 3px 6px rgba(23,24,26,.1));transition:opacity .18s var(--dc-out),scale .3s var(--dc-spring)}.dc-cursor[data-wheel] .dc-wheel{opacity:1;scale:1}.dc-wheel-shell{fill:#fff;stroke:var(--dc-ink);stroke-width:1.5px}.dc-wheel-split{stroke:var(--dc-hair);stroke-width:1px}.dc-wheel-roll{fill:var(--dc-ink)}.dc-cursor[data-wheel] .dc-wheel-roll{animation:dc-roll .46s cubic-bezier(.45,0,.25,1) infinite}.dc-cursor[data-wheel-up] .dc-wheel-roll{animation-direction:reverse}@keyframes dc-roll{0%{translate:0 -2.5px;opacity:.15}35%{opacity:1}75%{opacity:1}to{translate:0 4.5px;opacity:.15}}html[data-ck-paused] .dc-cursor .dc-wheel-roll{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.dc-cursor{display:none}}.ep-more{margin-top:96px}.ep-more:empty{display:none}.ep-more h2{margin:0 0 20px;font-size:18px;font-weight:500}.ep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ep-tile{display:block;color:inherit;text-decoration:none}.ep-tile-box{display:block;position:relative;height:340px;border-radius:28px;background:var(--ep-wash);overflow:hidden}.ep-tile-box iframe{position:absolute;left:0;top:0;width:100%;height:100%;border:0;pointer-events:none;transform-origin:0 0}.ep-tile-poster{position:absolute;left:50%;top:50%;width:min(480px,115.385%);height:auto;aspect-ratio:1;max-width:none;transform:translate(-50%,-50%);transition:opacity .45s var(--ep-out);-webkit-user-select:none;user-select:none}.ep-tile-poster~iframe{opacity:0;transition:opacity .45s var(--ep-out)}.ep-tile-box.is-live iframe{opacity:1}.ep-tile-box.is-live .ep-tile-poster{opacity:0;transition-delay:.12s}@media(prefers-reduced-motion:reduce){.ep-tile-poster,.ep-tile-poster~iframe{transition:none}}.ep-tile-name{display:block;margin:12px 4px 0;font-size:14px;font-weight:500}@media(max-width:760px){.ep-wrap{padding:56px 16px 64px}.ep-back{left:16px;top:20px}.ep-title{font-size:28px}.ep-lede{font-size:15px;margin-top:10px}.ep-stage{margin-top:28px;height:min(540px,72vh);border-radius:24px}.ep-more{margin-top:64px}.ep-grid{grid-template-columns:1fr}.ep-tile-box{height:300px;border-radius:24px}}@font-face{font-family:Geist Mono;src:url(fonts/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(fonts/GeistMono-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}.ep-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;align-items:start}.ep-head>.ep-title{grid-column:1 / -1}.ep-head>.ep-lede{grid-column:1;grid-row:2}.ep-head>.ep-view{grid-column:2;grid-row:2;margin:8.4px 0 -5.6px}.ep-seg{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--ep-wash)}.ep-seg>[role=tab]{appearance:none;display:inline-flex;flex:none;align-items:center;height:30px;padding:0 14px;margin:0;border:0;border-radius:999px;background:none;color:var(--ep-sub);font:500 13px/1 var(--ep-font);white-space:nowrap;cursor:pointer;transition:background .16s,color .16s,box-shadow .16s}.ep-seg>[role=tab]:hover{color:var(--ep-ink)}.ep-seg>[aria-selected=true]{background:#fff;color:var(--ep-ink);box-shadow:var(--ep-shadow)}.ep-seg>[role=tab]:focus-visible{outline:2px solid var(--ep-accent);outline-offset:1px}.ep-code{position:absolute;inset:0;z-index:100000;display:none;visibility:visible;pointer-events:auto;background:linear-gradient(var(--ep-wash),var(--ep-wash)) var(--ep-bg);color:var(--ep-ink);font:400 15px/1.5 var(--ep-font);letter-spacing:normal;text-align:left;cursor:auto}.ep-stage[data-ep-code]>.ep-code{display:block}.ep-stage[data-ep-code]:before{display:none}.ep-stage[data-ep-code]>:not(.ep-code){visibility:hidden}.ep-stage[data-ep-code]~.dp{display:none}.ep-code-bar{position:absolute;left:16px;right:16px;top:16px;display:flex;align-items:center;gap:12px}.ep-files{min-width:0}.ep-copy{appearance:none;display:inline-flex;flex:none;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px 0 14px;margin:0 0 0 auto;border:0;border-radius:999px;background:var(--ep-ink);color:#fff;font:500 13px/1 var(--ep-font);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .16s,opacity .16s}.ep-copy[hidden]{display:none}.ep-copy:hover{background:#2c2d30}.ep-copy[aria-disabled=true]{opacity:.4;cursor:default}.ep-copy:focus-visible{outline:2px solid var(--ep-accent);outline-offset:2px}.ep-copy svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ep-code-card{position:absolute;inset:64px 12px 12px;border-radius:18px;background:#fff;box-shadow:var(--ep-shadow);overflow:hidden}.ep-code-scroll{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;border-radius:inherit;color:var(--ep-ink);font:400 13px/21px Geist Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace;font-variant-ligatures:none;tab-size:2;-webkit-user-select:text;user-select:text}.ep-code-scroll:focus-visible{outline:2px solid var(--ep-accent);outline-offset:-2px}.ep-pre{min-width:max-content;padding:16px 0 20px}.ep-ln{display:flex;min-height:21px;padding-right:32px;white-space:pre}.ep-ln:before{content:attr(data-n);content:attr(data-n) / "";flex:none;width:40px;margin-right:20px;text-align:right;color:#17181a47;-webkit-user-select:none;user-select:none}.ep-tc{color:var(--ep-sub);font-style:italic}.ep-ts{color:var(--ep-accent)}.ep-code-msg{margin:0;padding:18px 24px;max-width:40em;color:var(--ep-sub);font:400 14px/1.6 var(--ep-font);white-space:normal}.ep-code-retry{appearance:none;margin:0;padding:0;border:0;background:none;color:var(--ep-ink);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ep-code-retry:focus-visible{outline:2px solid var(--ep-accent);outline-offset:2px;border-radius:2px}.ep-pre-wrap{min-width:0}.ep-pre-wrap>.ep-ln{white-space:pre-wrap;overflow-wrap:anywhere}.ep-pre-wrap>.ep-ln>span{min-width:0}@media(max-width:760px){.ep-head{grid-template-columns:minmax(0,1fr)}.ep-head>.ep-view{grid-column:1;grid-row:3;justify-self:start;margin:16px 0 0}.ep-head+.ep-stage,.ep-head+.dp-host>.ep-stage{margin-top:12px}.ep-seg>[role=tab]{padding:0 10px}.ep-stage[data-ep-code]>.ep-code{display:flex;flex-direction:column}.ep-code-bar{position:static;flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:16px 16px 0}.ep-files{grid-column:1 / -1;justify-self:start;max-width:100%;flex-wrap:wrap;border-radius:18px}.ep-code-bar>.ea-lic{grid-column:1}.ep-code-bar>.ep-copy{grid-column:2}.ep-code-card{position:relative;inset:auto;flex:1 1 auto;min-height:0;margin:12px}.ep-copy{width:36px;padding:0}.ep-copy span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.ep-code-scroll{font-size:12px;line-height:19px}.ep-pre{padding:12px 0 16px}.ep-ln{min-height:19px;padding-right:20px}.ep-ln:before{width:30px;margin-right:14px}.ep-code-msg{padding:14px 18px}}.ep-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.ep-title-row>.ep-title{min-width:0}.ep-head>.ep-title-row{grid-column:1 / -1}.ep-share{position:relative;flex:none}.ep-share-btn,.ep-share-menu>button{appearance:none;display:inline-flex;align-items:center;gap:7px;margin:0;border:0;cursor:pointer;white-space:nowrap;font:500 13px/1 var(--ep-font);transition:background .16s,color .16s}.ep-share-btn{height:36px;padding:0 15px 0 13px;border-radius:999px;background:var(--ep-wash);color:var(--ep-ink)}.ep-share-btn:hover,.ep-share-btn[aria-expanded=true]{background:#17181a1a}.ep-share svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ep-share-menu{position:absolute;z-index:30;right:0;top:calc(100% + 8px);min-width:168px;padding:5px;border-radius:16px;background:#fff;box-shadow:var(--ep-shadow-lift);display:flex;flex-direction:column;gap:2px}.ep-share-menu[hidden]{display:none}.ep-share-menu>button{height:36px;padding:0 12px;border-radius:11px;background:none;color:var(--ep-ink);text-align:left}.ep-share-menu>button:hover{background:var(--ep-wash)}.ep-share-btn:focus-visible,.ep-share-menu>button:focus-visible{outline:2px solid var(--ep-accent);outline-offset:1px}@media(max-width:760px){.ep-share-btn{height:34px;padding:0 13px 0 11px}}html[lang^=zh]{--ep-font: "Inter Demo", "Noto Sans SC", "Microsoft YaHei", "微软雅黑", "PingFang SC", "MiSans", "HarmonyOS Sans SC", sans-serif}html[lang^=zh] .ep-title{letter-spacing:0;line-height:1.2}