.webgallery{margin:26px 0 36px}.webgallery .wgsub{color:var(--mist-dim);font-size:var(--fs-body-s);margin:10px 0 16px}.wgsites{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;display:grid}.wsite .thumb{aspect-ratio:16/10;border:1px solid var(--line);background:var(--void);border-radius:12px;display:block;overflow:hidden}.wsite .thumb img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .35s;display:block}.wsite:hover .thumb{border-color:var(--line-strong)}.wsite:hover .thumb img{transform:scale(1.04)}.wsite .n{font-weight:600;font-size:var(--fs-body-s);color:var(--ink);margin-top:10px}.wsite .h{font-family:var(--mono);font-size:var(--fs-meta);color:var(--mist-dim);margin-top:2px}.wsite .lks{font-family:var(--mono);font-size:var(--fs-meta);gap:12px;margin-top:6px;display:flex}.wsite .lks a{color:var(--teal)}.wsite .lks a:hover{text-decoration:underline}
.plist{margin-top:14px}.plist.grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:860px){.plist.grid{grid-template-columns:1fr}}.pc2{border:1px solid var(--line);background:var(--panel);cursor:pointer;box-shadow:var(--cardsh);border-radius:14px;padding:20px 22px;transition:border-color .2s;display:block;position:relative}.pc2:hover{border-color:var(--line-strong)}.pc2 .top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.pc2 h3{font-family:var(--serif);font-weight:600;font-size:var(--fs-title);color:var(--ink);line-height:1.15}.pc2 .st{font-family:var(--mono);font-size:var(--fs-badge);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);color:var(--mist-dim);white-space:nowrap;border-radius:5px;padding:2px 6px}.pc2 .st.live{color:var(--up);border-color:color-mix(in srgb,var(--up) 34%,transparent)}.pc2 .st.oss{color:var(--teal);border-color:var(--line-strong)}.pc2 .bl{color:var(--mist);font-size:var(--fs-mono-lg);margin-top:8px}.pc2 .tgs{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.plist.rows{border-top:1px solid var(--line-strong);margin-top:14px;display:block}.plist.rows .pc2{border:0;border-bottom:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;padding:18px 6px;transition:background .2s,border-color .2s}.plist.rows .pc2:hover{background:color-mix(in srgb,var(--teal) 5%,transparent);border-bottom-color:var(--line-strong)}
.ppage{max-width:1180px;margin:0 auto;padding:100px 24px 60px}.ppage .phd{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:6px;display:flex}.ppage h1{font-family:var(--serif);font-weight:500;font-size:var(--fs-display-md);color:var(--ink);line-height:1.1}.ppage .psub{color:var(--mist-dim);margin-top:8px}.ptoolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:26px;padding:14px 0;display:flex}.themebar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.viewtoggle{border:1px solid var(--line-strong);border-radius:999px;display:inline-flex;overflow:hidden}.viewtoggle button{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.05em;color:var(--mist-dim);cursor:pointer;background:0 0;border:0;padding:.5em .95em}.viewtoggle button.on{background:color-mix(in srgb,var(--teal) 14%,transparent);color:var(--teal)}.chip2{appearance:none;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.02em;color:var(--mist);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:.42em .85em;transition:all .18s}.chip2:hover{border-color:var(--line-strong);color:var(--parch)}.chip2.on{background:color-mix(in srgb,var(--teal) 14%,transparent);border-color:var(--teal-deep);color:var(--teal)}.ptoolbar .flab,.techcats .flab{font-family:var(--mono);font-size:var(--fs-badge);letter-spacing:.12em;text-transform:uppercase;color:var(--mist-dim);margin-right:6px}.techfilter{margin-top:16px}.techcats{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.techsub{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.techsub:empty{display:none}.chip2.cat.on{background:color-mix(in srgb,var(--teal) 18%,transparent);border-color:var(--teal);color:var(--teal)}.chip2.tech .c{color:var(--mist-dim);margin-left:6px}.clearf{appearance:none;font-family:var(--mono);font-size:var(--fs-meta);color:var(--amber);cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0}.clearf:hover{text-decoration:underline}.pcount{font-family:var(--mono);font-size:var(--fs-mono);color:var(--mist-dim);margin-top:20px}
