.sk-cat{flex-direction:column;display:flex}.sk-row{grid-template-columns:var(--pt-gutter) minmax(0, 1fr);gap:var(--pt-gutter-gap);border-bottom:1px solid var(--pt-hair-soft);border-image:linear-gradient(var(--pt-hair-soft) 0 0) var(--pt-bleed-bottom);align-items:baseline;padding:24px 0 28px;scroll-margin-top:20px;display:grid}.sk-cat .sk-row:last-child{border-bottom:0;border-image-source:none}.sk-n{padding-top:0}.sk-n b{font-weight:var(--pt-w-label);font-size:var(--pt-t-title);line-height:var(--pt-t-title-lh);letter-spacing:var(--pt-track-label);color:var(--pt-titanium);font-variant-numeric:tabular-nums;display:block}.sk-row.is-active .sk-n b{color:var(--pt-ink)}.sk-body{min-width:0}.sk-name{flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.sk-body h3{font-size:var(--pt-t-title);line-height:var(--pt-t-title-lh);letter-spacing:var(--pt-track-label);color:var(--pt-ink);overflow-wrap:anywhere;margin:0}.sk-name code{font-size:var(--pt-t-meta);line-height:var(--pt-t-meta-lh);color:var(--pt-titanium)}.sk-body p{max-width:var(--pt-measure);font-size:var(--pt-t-body);line-height:var(--pt-t-body-lh);color:var(--pt-ink-2);margin:4px 0 0}.pt-viewer[data-shell=skills] .pt-grid .pt-thumbs{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px}.pt-viewer[data-shell=skills] .pt-grid .pt-thumbs>.pt-sec-label:not(:first-child){margin-top:14px}.pt-viewer[data-shell=skills] .pt-grid .pt-row{border:1px solid var(--pt-edge);border-radius:var(--pt-radius-card);background:var(--pt-paper);min-height:88px;color:var(--pt-ink-2);transition:border-color var(--pt-dur-fast) var(--pt-ease-out);grid-template-columns:minmax(0,1fr);align-content:start;gap:8px;margin:0;padding:12px 14px;display:grid;overflow:visible}.pt-viewer[data-shell=skills] .pt-grid .pt-row:before{content:none}.pt-viewer[data-shell=skills] .pt-grid .pt-row .n{text-align:left;font-size:12px;line-height:1.3}.pt-viewer[data-shell=skills] .pt-grid .pt-row .pt-row-title{font-family:var(--pt-display);letter-spacing:-.01em;-webkit-line-clamp:3;overflow-wrap:anywhere;font-size:14px;font-weight:500;line-height:1.3}.pt-viewer[data-shell=skills] .pt-grid .pt-row:hover,.pt-viewer[data-shell=skills] .pt-grid .pt-row:focus-visible{border-color:var(--pt-ink)}.pt-viewer[data-shell=skills] .pt-grid .pt-row:focus-visible{outline:1px solid var(--pt-ink);outline-offset:2px}.pt-viewer[data-shell=skills] .pt-grid .pt-row.is-active{border-color:var(--pt-ink);outline:1px solid var(--pt-ink);outline-offset:2px}@media (prefers-reduced-motion:reduce){.pt-viewer[data-shell=skills] .pt-grid .pt-row{transition:none}}@media (max-width:900px){.sk-row{grid-template-columns:1fr;gap:8px}.sk-n b{font-size:var(--pt-t-meta);line-height:var(--pt-t-meta-lh);letter-spacing:0}}.sk-row{color:inherit;text-decoration:none}.sk-row:hover .sk-body h3{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.sk-row:focus-visible{outline:1px solid var(--pt-ink);outline-offset:2px}.sk-book .pt-book-note code,.sk-page code:where(:not(.pt-cmd code)){overflow-wrap:anywhere;font-size:.875em}.sk-raw{text-decoration:none}.sk-page .pt-book-note{max-width:calc(var(--pt-gutter) + var(--pt-gutter-gap) + var(--pt-measure))}.sk-about{margin:0}.sk-about>div{grid-template-columns:var(--pt-gutter) minmax(0, 1fr);column-gap:var(--pt-gutter-gap);border-top:1px solid var(--pt-hair-soft);border-image:linear-gradient(var(--pt-hair-soft) 0 0) var(--pt-bleed-top);align-items:baseline;padding:12px 0;display:grid}.sk-about>div:first-child{border-top:0;border-image-source:none;padding-top:0}.sk-about>div:last-child{padding-bottom:0}.sk-about dt{font-size:var(--pt-t-meta);line-height:var(--pt-t-meta-lh);color:var(--pt-titanium)}.sk-about dd{max-width:var(--pt-measure);margin:0}.sk-install-body{min-width:0;max-width:calc(var(--pt-measure) + 8em)}.sk-install-body p{max-width:var(--pt-measure);font-size:var(--pt-t-small);line-height:var(--pt-t-small-lh);color:var(--pt-ink-2);margin:10px 0 0}.ptd-book .ptd-body.sk-doc h2{margin-top:48px}.ptd-book .ptd-body.sk-doc h3{margin-top:32px}.ptd-book .ptd-body.sk-doc>:first-child{margin-top:0}.ptd-book .ptd-body.sk-doc>.ptd-list:last-child li:last-child,.ptd-book .ptd-body.sk-doc>:last-child tr:last-child td{border-bottom:0}.sk-files-body{min-width:0}.sk-files-body>p{max-width:var(--pt-measure);font-size:var(--pt-t-body);line-height:var(--pt-t-body-lh);color:var(--pt-ink-2);margin:0}.sk-files ul{max-width:var(--pt-measure);margin:16px 0 0;padding:0;list-style:none}.sk-files li{column-gap:var(--pt-gutter-gap);border-top:1px solid var(--pt-hair-soft);grid-template-columns:96px minmax(0,1fr);align-items:baseline;padding:10px 0;display:grid}.sk-files li>span{font-size:var(--pt-t-meta);line-height:var(--pt-t-meta-lh);color:var(--pt-titanium)}.sk-files a{min-width:0;color:var(--pt-ink);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--pt-hair);text-decoration-color:var(--pt-hair);text-underline-offset:3px}.sk-files a:hover{text-decoration-color:currentColor}.sk-files a:focus-visible{outline:1px solid var(--pt-ink);outline-offset:2px}.sk-files a code{font-size:var(--pt-t-small);line-height:var(--pt-t-small-lh)}.sk-pager{border-top:1px solid var(--pt-hair);border-image:linear-gradient(var(--pt-hair) 0 0) var(--pt-bleed-top);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding-top:22px;display:grid}.sk-pager-link{min-width:0;color:inherit;align-items:flex-start;gap:12px;text-decoration:none;display:flex}.sk-pager-link.is-next{text-align:right;justify-content:flex-end}.sk-pager-link svg{fill:currentColor;width:16px;height:16px;color:var(--pt-titanium);flex:none;margin-top:3px}.sk-pager-link span{min-width:0;display:block}.sk-pager-link small{font-size:var(--pt-t-meta);line-height:var(--pt-t-meta-lh);color:var(--pt-titanium);display:block}.sk-pager-link b{font-weight:var(--pt-w-label);font-size:var(--pt-t-title);line-height:var(--pt-t-title-lh);letter-spacing:var(--pt-track-label);color:var(--pt-ink);overflow-wrap:anywhere;margin-top:2px;display:block}.sk-pager-link:hover b{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.sk-pager-link:hover svg{color:var(--pt-ink)}.sk-pager-link:focus-visible{outline:1px solid var(--pt-ink);outline-offset:2px}@media (max-width:900px){.sk-about>div,.sk-files li{grid-template-columns:minmax(0,1fr);row-gap:4px}.sk-pager{grid-template-columns:1fr;gap:16px}.sk-pager-link.is-next{text-align:left;justify-content:flex-start}.sk-pager-end{display:none}}
