html.ws-qv-open{overflow:hidden}.ws-qv-wrap{z-index:1000;background:rgba(0,0,0,.32);justify-content:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.ws-qv{background:var(--ws-bg);width:520px;max-width:100%;height:100%;box-shadow:var(--ws-shadow-pop);flex-direction:column;display:flex;position:relative}html.dark .ws-qv{background:var(--ws-surface)}.ws-qv:focus{outline:none}.ws-qv-head{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 6px 20px;display:flex}.ws-qv-nav{align-items:center;gap:4px;display:flex}.ws-qv-pos{text-align:center;min-width:56px;font-size:var(--ws-fs-xs);color:var(--ws-text-3);font-variant-numeric:tabular-nums}.ws-qv-icon{cursor:pointer;width:36px;height:36px;color:var(--ws-text);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s,opacity .15s;display:inline-flex}.ws-qv-icon:hover:not(:disabled){background:var(--ws-surface-2)}.ws-qv-icon:disabled{opacity:.3;cursor:default}.ws-qv-icon:focus-visible{outline:2px solid var(--ws-accent);outline-offset:1px}.ws-qv-body{flex:1;padding:8px 24px 24px;overflow-y:auto}.ws-qv-stage{border-radius:var(--ws-r-md);height:430px;transition:background-color .2s var(--ws-ease);background:#f4f4f4;justify-content:center;align-items:center;display:flex;position:relative}html.dark .ws-qv-stage{background:#ececec}.ws-qv-stage.is-dark,html.dark .ws-qv-stage.is-dark{background:#191919}.ws-qv-frame{transition:width .2s var(--ws-ease), height .2s var(--ws-ease);border-radius:14px;position:relative;overflow:hidden}.ws-qv-frame iframe{transform-origin:0 0;color-scheme:normal;background:0 0;border:0;transition:opacity .2s;position:absolute;top:0;left:0}.ws-qv-skel{background:linear-gradient(100deg,rgba(127,127,127,.12) 30%,rgba(127,127,127,.22) 50%,rgba(127,127,127,.12) 70%) 0 0/200% 100%;border-radius:14px;animation:1.4s ease-in-out infinite ws-card-shimmer;position:absolute;top:0;bottom:0;left:0;right:0}.ws-qv-sample{border-radius:var(--ws-r-pill);color:#5d5d5d;background:rgba(255,255,255,.8);padding:3px 8px;font-size:12px;position:absolute;bottom:10px;left:12px}.ws-qv-stage.is-dark .ws-qv-sample{color:#b4b4b4;background:rgba(255,255,255,.08)}.ws-qv-controls{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.ws-qv-controls .ws-seg>button{height:30px;font-size:var(--ws-fs-xs);padding:0 12px}.ws-qv-title{color:var(--ws-text);margin:24px 0 0}.ws-qv-desc{font-size:var(--ws-fs-body);color:var(--ws-text-2);margin:8px 0 0;line-height:1.6}.ws-qv-tags{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.ws-qv-tags .ws-tag{height:26px;padding:0 10px;font-size:12px}.ws-qv-tags .ws-tag.is-pro{color:var(--ws-on-accent);background:var(--ws-accent)}.ws-qv-cat{box-shadow:inset 0 0 0 1px var(--ws-border-strong);background:0 0;text-decoration:none}.ws-qv-cat:hover{color:var(--ws-text);background:var(--ws-surface-2)}.ws-qv-foot{padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--ws-border);gap:10px;display:flex}.ws-qv-foot .ws-btn{flex:1;justify-content:center;text-decoration:none}.ws-qv-use svg{margin-left:2px}.ws-qv-enter-active,.ws-qv-leave-active{transition:opacity .22s var(--ws-ease)}.ws-qv-enter-active .ws-qv,.ws-qv-leave-active .ws-qv{transition:transform .28s var(--ws-ease)}.ws-qv-enter-from,.ws-qv-leave-to{opacity:0}.ws-qv-enter-from .ws-qv,.ws-qv-leave-to .ws-qv{transform:translate(48px)}@media (max-width:639px){.ws-qv-wrap{align-items:flex-end}.ws-qv{border-radius:var(--ws-r-lg) var(--ws-r-lg) 0 0;width:100%;height:auto;max-height:92vh}.ws-qv-head{padding:12px 10px 4px 12px}.ws-qv-body{padding:4px 16px 16px}.ws-qv-stage{height:360px}.ws-qv-title{margin-top:18px;font-size:20px}.ws-qv-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.ws-qv-foot .ws-btn{height:46px;font-size:var(--ws-fs-sm)}.ws-qv-enter-from .ws-qv,.ws-qv-leave-to .ws-qv{transform:translateY(48px)}}@media (prefers-reduced-motion:reduce){.ws-qv-enter-active,.ws-qv-leave-active,.ws-qv-enter-active .ws-qv,.ws-qv-leave-active .ws-qv,.ws-qv-frame{transition:none}}.ws-lib-bar{z-index:30;border-top:1px solid var(--ws-border);background:var(--ws-bg);padding-top:24px;padding-bottom:12px;position:-webkit-sticky;position:sticky;top:64px}.ws-lib-bar.is-stuck{box-shadow:0 1px 0 var(--ws-border);border-top-color:transparent}.ws-lib-bar.is-plain{padding-bottom:0;position:static}.ws-lib-search-row{align-items:center;gap:10px;display:flex}.ws-lib-search{border-radius:var(--ws-r-sm);background:var(--ws-surface-2);min-width:0;height:48px;transition:background-color .15s var(--ws-ease), box-shadow .15s var(--ws-ease);flex:1;align-items:center;padding:0 10px 0 46px;display:flex;position:relative;box-shadow:inset 0 0 0 1px transparent}.ws-lib-search:hover{box-shadow:inset 0 0 0 1px var(--ws-border)}.ws-lib-search:focus-within{background:var(--ws-bg);box-shadow:inset 0 0 0 1px var(--ws-border-strong), 0 0 0 4px var(--ws-surface-2)}html.dark .ws-lib-search:focus-within{background:var(--ws-surface-2);box-shadow:inset 0 0 0 1px var(--ws-border-strong), 0 0 0 4px var(--ws-surface)}.ws-lib-search-ico{width:20px;height:20px;color:var(--ws-text-3);pointer-events:none;position:absolute;left:16px}.ws-lib-search input{min-width:0;height:100%;font:inherit;color:var(--ws-text);-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:0 0;border:0;outline:0;flex:1;padding:0;font-size:16px}.ws-lib-search input::placeholder{color:var(--ws-text-3);opacity:1}.ws-lib-search input::-moz-placeholder{color:var(--ws-text-3);opacity:1}.ws-lib-search input::placeholder{color:var(--ws-text-3);opacity:1}.ws-lib-search input::placeholder{color:var(--ws-text-3);opacity:1}.ws-lib-search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.ws-lib-search input::-webkit-search-decoration{-webkit-appearance:none;display:none}.ws-lib-kbd{min-width:24px;height:24px;font:inherit;font-size:12px;font-weight:var(--ws-w-medium);color:var(--ws-text-3);background:var(--ws-bg);box-shadow:inset 0 0 0 1px var(--ws-border-strong);border-radius:6px;flex:none;justify-content:center;align-items:center;margin-right:4px;padding:0 6px;display:inline-flex}html.dark .ws-lib-kbd{background:var(--ws-surface-3)}.ws-lib-search-clear{width:32px;height:32px;color:var(--ws-text-2);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background-color .15s;display:inline-flex}.ws-lib-search-clear:hover{background:var(--ws-surface-3);color:var(--ws-text)}.ws-lib-search-clear svg{width:16px;height:16px}.ws-lib-search-clear:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-lib-filter-btn:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-lib-group:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-lib-pill:focus-visible{outline:2px solid var(--ws-accent);outline-offset:2px}.ws-lib-filter-btn{border-radius:var(--ws-r-sm);height:44px;font:inherit;font-size:var(--ws-fs-sm);font-weight:var(--ws-w-medium);color:var(--ws-text);background:var(--ws-surface-2);cursor:pointer;border:0;flex:none;align-items:center;gap:6px;padding:0 14px;display:none;position:relative}.ws-lib-filter-btn svg{width:18px;height:18px}.ws-lib-filter-btn.is-set{box-shadow:inset 0 0 0 1px var(--ws-border-strong)}.ws-lib-filter-n{min-width:18px;height:18px;font-size:11px;font-weight:var(--ws-w-semibold);color:var(--ws-on-accent);background:var(--ws-accent);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.ws-lib-groups{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.ws-lib-groups::-webkit-scrollbar{display:none}.ws-lib-group{border-radius:var(--ws-r-pill);height:38px;font-size:var(--ws-fs-sm);font-weight:var(--ws-w-medium);color:var(--ws-text-2);white-space:nowrap;background:var(--ws-surface-2);flex:none;align-items:center;gap:7px;padding:0 14px 0 12px;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.ws-lib-group:first-child{padding-left:16px}.ws-lib-group svg{flex:none;width:17px;height:17px}.ws-lib-group:hover{color:var(--ws-text);background:var(--ws-surface-3)}.ws-lib-group.is-on{color:var(--ws-bg);background:var(--ws-text)}.ws-lib-group .ws-lib-chip-n{color:var(--ws-text-2);margin-left:1px}.ws-lib-group.is-on .ws-lib-chip-n{color:inherit;opacity:.72}.ws-lib-cats.is-sub{border-top:0;margin-bottom:8px;padding-top:4px}.ws-lib-cats.is-sub .ws-chip.ws-lib-chip{height:32px;font-size:var(--ws-fs-xs)}.ws-lib-cats.is-sub .ws-chip.ws-lib-chip.is-on{color:var(--ws-text);background:var(--ws-surface-2);border-color:var(--ws-text)}.ws-lib-cats.is-sub .ws-lib-chip.is-on .ws-lib-chip-n{color:var(--ws-text-2);opacity:1}.ws-lib-basic .ws-toolbar.ws-lib-toolbar{border-top:0;flex-wrap:wrap;row-gap:10px;margin-bottom:28px;padding-top:12px}.ws-lib-toolbar .ws-toolbar-left{flex-wrap:wrap;row-gap:8px}.ws-lib-toolbar .ws-toolbar-count{color:var(--ws-text-2);white-space:nowrap;margin-right:4px}.ws-lib-pills{flex-wrap:wrap;gap:6px;display:flex}.ws-lib-pill{border-radius:var(--ws-r-pill);cursor:pointer;white-space:nowrap;height:32px;font:inherit;font-size:var(--ws-fs-xs);font-weight:var(--ws-w-medium);color:var(--ws-text-2);box-shadow:inset 0 0 0 1px var(--ws-border-strong);background:0 0;border:0;align-items:center;padding:0 13px;transition:background-color .15s,color .15s;display:inline-flex}.ws-lib-pill:hover{color:var(--ws-text);background:var(--ws-surface-2)}.ws-lib-pill.is-on{color:var(--ws-bg);background:var(--ws-text);box-shadow:none}.ws-lib-region-select.is-compact{display:inline-flex}.ws-lib-reset{cursor:pointer;font:inherit;font-size:var(--ws-fs-xs);color:var(--ws-text-2);text-decoration:underline;text-underline-offset:3px;background:0 0;border:0;padding:0 2px;-webkit-text-decoration-color:rgba(127,127,127,.4);text-decoration-color:rgba(127,127,127,.4)}.ws-lib-reset:hover{color:var(--ws-text)}.ws-lib-sort.is-hidden{visibility:hidden}.ws-lib-mark{color:var(--ws-text);background:var(--ws-surface-3);box-shadow:0 0 0 1px var(--ws-surface-3);border-radius:3px}.wsc-title .ws-lib-mark{box-shadow:none;text-underline-offset:3px;background:0 0;text-decoration:underline;text-decoration-thickness:2px}.ws-lib-none h4{font-size:var(--ws-fs-lg,17px)}.ws-lib-none p{max-width:30rem;font-size:var(--ws-fs-sm)}.ws-lib-none-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.ws-lib-shelf{margin-bottom:48px}.ws-lib-shelf-head{-moz-column-gap:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:16px;margin-bottom:16px;display:grid}.ws-lib-shelf-toggle{cursor:pointer;color:var(--ws-text);font:inherit;text-align:left;background:0 0;border:0;justify-self:start;align-items:center;gap:6px;padding:0;display:inline-flex}.ws-lib-shelf-title{letter-spacing:-.01em;font-size:22px;line-height:1.3;font-weight:var(--ws-w-medium);margin:0}.ws-lib-shelf-toggle svg{width:18px;height:18px;color:var(--ws-text-3);transition:transform .2s var(--ws-ease)}.ws-lib-shelf.is-closed .ws-lib-shelf-toggle svg{transform:rotate(-90deg)}.ws-lib-shelf-toggle:hover svg{color:var(--ws-text)}.ws-lib-shelf-toggle:focus-visible{outline:2px solid var(--ws-accent);outline-offset:4px;border-radius:6px}.ws-lib-shelf-desc{font-size:var(--ws-fs-sm);color:var(--ws-text-3);grid-area:2/1;margin:2px 0 0}.ws-lib-shelf-tools{grid-area:1/2/span 2;align-items:center;gap:6px;display:flex}.ws-lib-shelf-more{font-size:var(--ws-fs-sm);font-weight:var(--ws-w-medium);color:var(--ws-text);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;margin-right:8px;-webkit-text-decoration-color:rgba(127,127,127,.4);text-decoration-color:rgba(127,127,127,.4)}.ws-lib-shelf-more:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.ws-lib-shelf-nav{cursor:pointer;width:34px;height:34px;color:var(--ws-text);background:var(--ws-surface-2);border:0;border-radius:50%;justify-content:center;align-items:center;transition:background-color .15s;display:inline-flex}.ws-lib-shelf-nav:hover{background:var(--ws-surface-3)}.ws-lib-shelf-nav svg{width:16px;height:16px}.ws-lib-shelf.is-closed{margin-bottom:24px}.ws-lib-shelf.is-closed .ws-lib-shelf-head{margin-bottom:0}.wsc-grid.wsc-grid--shelf{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:calc(25% - 18px);grid-auto-flow:column;padding-bottom:4px;overflow-x:auto}.wsc-grid--shelf::-webkit-scrollbar{display:none}.wsc-grid--shelf>.wsc{scroll-snap-align:start}@media (max-width:1279px){.wsc-grid.wsc-grid--shelf{grid-auto-columns:calc(33.3333% - 16px)}}@media (max-width:1023px){.wsc-grid.wsc-grid--shelf{grid-auto-columns:calc(50% - 12px)}}.ws-lib-all-h{border-top:1px solid var(--ws-border);letter-spacing:-.01em;font-size:22px;line-height:1.3;font-weight:var(--ws-w-medium);color:var(--ws-text);margin:8px 0 20px;padding-top:32px}.ws-lib-browse{border-top:1px solid var(--ws-border);margin-top:80px;padding-top:32px}.ws-lib-browse .ws-h3{margin-bottom:24px}.ws-lib-browse-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px;display:grid}.ws-lib-browse-g{font-size:var(--ws-fs-sm);font-weight:var(--ws-w-medium);color:var(--ws-text);margin-bottom:10px;text-decoration:none;display:inline-block}.ws-lib-browse-g:hover{text-underline-offset:3px;text-decoration:underline}.ws-lib-browse ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ws-lib-browse li a{font-size:var(--ws-fs-sm);color:var(--ws-text-2);align-items:baseline;gap:6px;text-decoration:none;display:inline-flex}.ws-lib-browse li a:hover{color:var(--ws-text);text-underline-offset:3px;text-decoration:underline}.ws-lib-browse li span{color:var(--ws-text-3);font-variant-numeric:tabular-nums;font-size:12px}@media (max-width:1023px){.ws-lib-browse-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:767px){.ws-lib-bar{margin-left:calc(-1 * var(--ws-page-gutter));margin-right:calc(-1 * var(--ws-page-gutter));padding-top:16px;padding-bottom:10px;padding-left:var(--ws-page-gutter);padding-right:var(--ws-page-gutter)}.ws-lib-bar.is-plain{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.ws-lib-search{height:44px;padding-left:42px}.ws-lib-search-ico{width:19px;height:19px;left:13px}.ws-lib-kbd{display:none}.ws-lib-filter-btn{display:inline-flex}.ws-lib-groups{scrollbar-width:none;margin:10px calc(-1 * var(--ws-page-gutter)) 0;padding:0 var(--ws-page-gutter);scroll-padding:0 var(--ws-page-gutter);flex-wrap:nowrap;gap:6px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 24px),transparent 100%)}.ws-lib-group{height:34px;font-size:var(--ws-fs-xs);gap:6px;padding:0 12px 0 10px}.ws-lib-group:first-child{padding-left:14px}.ws-lib-group svg{width:15px;height:15px}.ws-lib-cats.is-sub{margin-bottom:4px;padding-top:6px}.ws-lib-basic .ws-toolbar.ws-lib-toolbar{margin-bottom:20px;padding-top:10px}.ws-lib-toolbar .ws-lib-pills,.ws-lib-toolbar .ws-lib-region-select,.ws-lib-toolbar .ws-lib-sort{display:none}.ws-lib-shelf{margin-bottom:36px}.ws-lib-shelf-title,.ws-lib-all-h{font-size:20px}.ws-lib-shelf-nav{display:none}.ws-lib-shelf-more{margin-right:0}.ws-lib-shelf-track{margin:0 calc(-1 * var(--ws-page-gutter))}.wsc-grid.wsc-grid--shelf{-moz-column-gap:14px;padding:0 var(--ws-page-gutter) 4px;scroll-padding:0 var(--ws-page-gutter);grid-auto-columns:78%;column-gap:14px}.ws-lib-browse{margin-top:56px}.ws-lib-browse-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}}html.ws-lib-sheet-lock{overflow:hidden}.ws-lib-sheet-wrap{z-index:1000;background:rgba(0,0,0,.4);justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.ws-lib-sheet{border-radius:var(--ws-r-lg) var(--ws-r-lg) 0 0;background:var(--ws-bg);width:100%;max-width:560px;max-height:88vh;box-shadow:var(--ws-shadow-pop);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}html.dark .ws-lib-sheet{background:var(--ws-surface)}.ws-lib-sheet-head{justify-content:space-between;align-items:center;padding:20px 20px 8px;display:flex}.ws-lib-sheet{position:relative}.ws-lib-sheet:before{content:"";background:var(--ws-border-strong);border-radius:2px;width:36px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.ws-lib-sheet-head .ws-title{color:var(--ws-text);margin:0}.ws-lib-sheet-body{padding:4px 20px 12px;overflow-y:auto}.ws-lib-sheet-sec{border-bottom:1px solid var(--ws-border);padding:14px 0}.ws-lib-sheet-sec:last-child{border-bottom:0}.ws-lib-sheet-label{font-size:var(--ws-fs-xs);font-weight:var(--ws-w-medium);color:var(--ws-text-3);margin-bottom:10px}.ws-lib-sheet-seg{width:100%;display:flex}.ws-lib-sheet-seg>button{flex:1;justify-content:center}.ws-lib-sheet-chips{flex-wrap:wrap;gap:8px;display:flex}.ws-lib-sheet-chips .ws-lib-pill{height:36px;font-size:var(--ws-fs-sm);padding:0 14px}.ws-lib-sheet-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--ws-text);background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex}.ws-lib-sheet-row span{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-lib-sheet-row b{font-size:var(--ws-fs-sm);font-weight:var(--ws-w-medium)}.ws-lib-sheet-row small{font-size:var(--ws-fs-xs);color:var(--ws-text-3)}.ws-lib-switch{background:var(--ws-surface-3);width:44px;height:26px;transition:background-color .2s var(--ws-ease);border-radius:13px;flex:none;position:relative}.ws-lib-switch:after{content:"";width:20px;height:20px;transition:transform .2s var(--ws-ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.ws-lib-switch.is-on{background:var(--ws-accent)}.ws-lib-switch.is-on:after{background:var(--ws-on-accent);transform:translate(18px)}.ws-lib-sheet-foot{border-top:1px solid var(--ws-border);padding:12px 20px 16px}.ws-lib-sheet-enter-active,.ws-lib-sheet-leave-active{transition:opacity .2s var(--ws-ease)}.ws-lib-sheet-enter-active .ws-lib-sheet,.ws-lib-sheet-leave-active .ws-lib-sheet{transition:transform .25s var(--ws-ease)}.ws-lib-sheet-enter-from,.ws-lib-sheet-leave-to{opacity:0}.ws-lib-sheet-enter-from .ws-lib-sheet,.ws-lib-sheet-leave-to .ws-lib-sheet{transform:translateY(40px)}@media (prefers-reduced-motion:reduce){.ws-lib-sheet-enter-active,.ws-lib-sheet-leave-active,.ws-lib-sheet-enter-active .ws-lib-sheet,.ws-lib-sheet-leave-active .ws-lib-sheet{transition:none}}
