.lib-hero{display:flex;flex-direction:column;gap:40px;padding:80px var(--gutter) 56px}.lib-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px}.lib-head-main{display:flex;flex-direction:column;gap:22px}.lib-title{margin:0;font-size:clamp(4rem,9vw,9.375rem);font-weight:800;letter-spacing:-0.05em;line-height:0.86;overflow-wrap:anywhere}.lib-title--part{font-size:clamp(3rem,7vw,7rem);line-height:0.9}.lib-facts{margin:0;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:1.1875rem}.lib-facts strong{font-weight:800}.lib-lead{margin:0;max-width:40ch;color:var(--text-muted);font-size:1.25rem;line-height:1.5}.lib-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.lib-tools[hidden]{display:none}.lib-search{position:relative;flex:1 1 260px;max-width:360px;display:block}.lib-search input{width:100%;height:52px;padding:0 18px;border:2px solid var(--border-strong);border-radius:var(--pill);background:var(--surface);color:var(--text);font:inherit;font-size:1.0625rem}.lib-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lib-chips{display:flex;flex-wrap:wrap;gap:8px}.lib-chip{min-height:52px;padding:0 20px;border:2px solid var(--border-strong);border-radius:var(--pill);background:transparent;color:var(--text);font:inherit;font-size:1rem;font-weight:700;cursor:pointer;transition:transform 0.16s ease}.lib-chip span{font-weight:500;opacity:0.75}.lib-chip:hover{transform:translateY(-2px)}.lib-chip[aria-pressed="true"]{border-color:var(--c);background:var(--c);color:var(--ink)}.lib-chip[data-lib-kind="all"][aria-pressed="true"]{border-color:var(--text);background:var(--text);color:var(--bg)}.lib-kind{display:flex;flex-direction:column;gap:28px;padding:0 var(--gutter) 80px}.lib-kind[hidden]{display:none}.lib-kind-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding-top:40px;border-top:2px solid var(--surface-2)}.lib-kind-title{margin:0;display:flex;align-items:center;gap:18px;font-size:clamp(2.5rem,4.4vw,4rem);font-weight:800;letter-spacing:-0.05em;line-height:0.9}.lib-dot{width:22px;height:22px;flex:none;border-radius:50%;background:var(--c)}.lib-kind-text{margin:0;max-width:44ch;color:var(--text-muted);font-size:1.125rem;line-height:1.45}.lib-kind-text span{white-space:nowrap}.lib-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:24px}.lib-cell{display:flex}.lib-cell[hidden]{display:none}.lib-part{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:var(--surface-2);transition:transform 0.16s ease}.lib-part:hover,.lib-part:focus-within{transform:translateY(-3px)}.lib-part:focus-within{outline:3px solid var(--lime);outline-offset:3px}.lib-frame{padding:14px;background:var(--c)}.lib-part-body{flex:1;display:flex;flex-direction:column;gap:10px;padding:20px 20px 22px}.lib-part-name{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-0.03em;line-height:1.05}.lib-part-name a{color:var(--text);text-decoration:none;outline:none}.lib-part-name a::after{content:"";position:absolute;inset:0;border-radius:20px}.lib-part-text{margin:0;color:var(--text-muted);font-size:1rem;line-height:1.45}.lib-tags{margin:0;display:flex;flex-wrap:wrap;gap:6px}.lib-part .lib-tags{margin-top:auto;padding-top:8px}.lib-tags span{padding:5px 10px;border-radius:var(--pill);background:var(--surface);color:var(--text);font-family:var(--mono);font-size:0.8125rem;font-weight:600}.lib-tags .lib-kind-tag{padding:7px 14px;background:var(--c);color:var(--ink);font-family:inherit;font-size:0.875rem;font-weight:700}.lib-stage{position:relative;overflow:hidden;border-radius:12px;background:#ffffff}.lib-stage--thumb{height:240px}.lib-stage--full{min-height:480px;border-radius:16px}.lib-stage-frame{display:block;border:0;opacity:0;transition:opacity 0.2s ease}.lib-stage--thumb .lib-stage-frame{position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:none}.lib-stage--full .lib-stage-frame{width:100%;height:480px}.lib-stage.is-ready .lib-stage-frame{opacity:1}.lib-stage-load{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid rgba(10,10,15,0.16);border-top-color:var(--ink);border-radius:50%;animation:lib-spin 0.7s linear infinite}.lib-stage.is-ready .lib-stage-load{display:none}@keyframes lib-spin{to{transform:rotate(360deg)}}.lib-empty{display:flex;align-items:center;gap:20px;margin:0 var(--gutter) 96px;padding:32px;border-radius:20px;background:var(--surface-2)}.lib-empty[hidden]{display:none}.lib-empty .face{width:56px;height:56px;flex:none;color:var(--ch-javascript)}.lib-empty p{margin:0;font-size:1.1875rem;line-height:1.45}.lib-top{display:flex;flex-direction:column;gap:32px;padding:48px var(--gutter) 40px}.lib-crumb{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;color:var(--text-muted);font-size:1rem}.lib-crumb li + li::before{content:"/";margin-right:10px}.lib-crumb a{color:var(--text)}.lib-actions{display:flex;flex-wrap:wrap;gap:12px}.lib-go{min-height:56px;padding:0 28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--pill);background:var(--lime);color:var(--ink);font:inherit;font-size:1.125rem;font-weight:700;text-decoration:none;cursor:pointer;transition:transform 0.16s ease}.lib-go[hidden]{display:none}.lib-go:hover{color:var(--ink);text-decoration:none;transform:translateY(-2px)}.lib-go--line,.lib-go--line:hover{border:2px solid var(--border-strong);background:transparent;color:var(--text)}.lib-go--ink,.lib-go--ink:hover{background:var(--ink);color:var(--lime)}.lib-show{padding:0 var(--gutter)}.lib-show-frame{display:flex;flex-direction:column;gap:16px;padding:20px;border-radius:28px;background:var(--c)}.lib-show-note{margin:0 8px 4px;display:flex;align-items:center;gap:10px;color:var(--ink);font-size:1.0625rem;font-weight:500}.lib-show-note .face{width:22px;height:22px;flex:none}.lib-detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;align-items:start;padding:40px var(--gutter) 96px}.lib-code{min-width:0;overflow:hidden;border-radius:24px;background:var(--ink-2);color:var(--paper)}.lib-code-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 14px 18px;border-bottom:2px solid var(--ink-3)}.lib-code-tabs{display:flex;gap:4px;padding:4px;border-radius:var(--pill);background:#0d0d11}.lib-code-tabs button{min-height:44px;padding:0 20px;border:0;border-radius:var(--pill);background:transparent;color:var(--paper);font-family:var(--mono);font-size:0.9375rem;font-weight:600;cursor:pointer}.lib-code-tabs button[aria-selected="true"]{background:var(--paper);color:var(--ink)}.lib-copy{min-height:44px;padding:0 20px;border:2px solid #33333b;border-radius:var(--pill);background:transparent;color:var(--paper);font:inherit;font-size:1rem;font-weight:700;cursor:pointer}.lib-copy[hidden]{display:none}.lib-panel{display:flex;padding:20px 0 24px;overflow-x:auto;font-family:var(--mono);font-size:0.9375rem;line-height:1.7}.lib-panel[hidden]{display:none}.lib-lines{flex:none;width:56px;padding-right:18px;color:#4a4a55;text-align:right;white-space:pre;user-select:none}.lib-panel pre{margin:0;padding-right:24px}.lib-panel code{font:inherit;white-space:pre}.lib-notes{display:flex;flex-direction:column;gap:24px}.lib-note{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:28px;border-radius:24px;background:var(--surface-2)}.lib-note h2{margin:0;font-size:2rem;font-weight:800;letter-spacing:-0.04em;line-height:1}.lib-note p{margin:0;color:var(--text-muted);font-size:1.0625rem;line-height:1.6}.lib-note--lime{background:var(--lime);color:var(--ink)}.lib-note--lime p{color:var(--ink)}.lib :focus-visible{outline:3px solid var(--lime);outline-offset:2px}.lib-show :focus-visible,.lib-note--lime :focus-visible{outline-color:var(--ink)}html[data-theme="light"] .lib :focus-visible,html[data-theme="light"] .lib-part:focus-within{outline-color:var(--ink)}@media (max-width: 960px){.lib-detail{grid-template-columns:1fr}}@media (max-width: 640px){.lib-hero{padding-top:56px}.lib-kind{padding-bottom:56px}.lib-grid{gap:16px}.lib-top{padding-top:32px}.lib-show-frame{padding:12px;border-radius:20px}.lib-detail{padding-bottom:64px}}@media (prefers-reduced-motion: reduce){.lib-chip,.lib-part,.lib-go,.lib-stage-frame{transition:none}.lib-chip:hover,.lib-part:hover,.lib-part:focus-within,.lib-go:hover{transform:none}.lib-stage-load{animation:none}}