.shk-portfolio{--shk-ink:#0e1430;--shk-body:#5b6478;--shk-brand:#2547d0;--shk-line:#e6e9f2;--shk-card:#ffffff;--shk-bg:#f7f8fc;--shk-cols:3;--shk-cols-tablet:2;--shk-cols-mobile:1;--shk-gap:24px;--shk-speed:550ms;--shk-cur:var(--shk-cols);font-family:inherit;background:var(--shk-bg);box-sizing:border-box}.shk-portfolio *,.shk-portfolio *::before,.shk-portfolio *::after{box-sizing:border-box}.shk-pf-wrap{max-width:1180px;margin:0 auto}.shk-pf-head{text-align:center;max-width:680px;margin:0 auto 36px}.shk-pf-eyebrow{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--shk-brand);background:color-mix(in srgb,var(--shk-brand) 10%,#fff);padding:6px 14px;border-radius:999px;margin-bottom:16px}.shk-pf-title{font-size:clamp(28px,4vw,42px);line-height:1.1;color:var(--shk-ink);margin:0 0 14px;font-weight:800;letter-spacing:-.02em}.shk-pf-sub{font-size:16px;line-height:1.6;color:var(--shk-body);margin:0}.shk-pf-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px}.shk-pf-pill{border:1px solid var(--shk-line);background:#fff;color:var(--shk-body);font-size:14px;font-weight:600;padding:9px 18px;border-radius:999px;cursor:pointer;transition:all .2s ease;font-family:inherit;line-height:1.2}.shk-pf-pill:hover{border-color:var(--shk-brand);color:var(--shk-brand)}.shk-pf-pill.is-active{background:var(--shk-brand);border-color:var(--shk-brand);color:#fff}.shk-pf-carousel{display:flex;align-items:center;gap:12px}.shk-pf-viewport{overflow:hidden;flex:1}.shk-pf-track{display:flex;gap:var(--shk-gap);transition:transform var(--shk-speed) cubic-bezier(.22,.61,.36,1);will-change:transform}.shk-pf-arrow{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1px solid var(--shk-line);background:#fff;color:var(--shk-ink);font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.shk-pf-arrow:hover{background:var(--shk-brand);border-color:var(--shk-brand);color:#fff}.shk-pf-arrow:disabled{opacity:.35;cursor:default;background:#fff;color:var(--shk-ink);border-color:var(--shk-line)}.shk-card{flex:0 0 calc((100% - (var(--shk-gap) * (var(--shk-cur) - 1))) / var(--shk-cur));background:var(--shk-card);border:1px solid var(--shk-line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 4px rgb(14 20 48 / .04);transition:transform .25s ease,box-shadow .25s ease}.shk-card.is-hidden{display:none}.shk-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgb(14 20 48 / .12)}.shk-card-bar{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#f1f3f9;border-bottom:1px solid var(--shk-line)}.shk-dots{display:flex;gap:6px}.shk-dots span{width:9px;height:9px;border-radius:50%;background:#cdd3e3}.shk-dots span:nth-child(1){background:#ff5f57}.shk-dots span:nth-child(2){background:#febc2e}.shk-dots span:nth-child(3){background:#28c840}.shk-url{flex:1;background:#fff;border:1px solid var(--shk-line);border-radius:6px;font-size:12px;color:var(--shk-body);padding:4px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shk-thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe3ef}.shk-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.shk-card:hover .shk-thumb img{transform:scale(1.05)}.shk-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:20px;letter-spacing:.02em;text-shadow:0 1px 8px rgb(0 0 0 / .25);text-align:center;padding:10px}.shk-card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}.shk-card-cat{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--shk-brand)}.shk-card-name{font-size:17px;font-weight:700;color:var(--shk-ink);margin:0;line-height:1.3}.shk-card-link{margin-top:auto;padding-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--shk-brand);text-decoration:none;align-self:flex-start}.shk-card-link:hover{gap:10px}@media(max-width:1024px){.shk-portfolio{--shk-cur:var(--shk-cols-tablet)}}@media(max-width:640px){.shk-portfolio{--shk-cur:var(--shk-cols-mobile)}}@media(prefers-reduced-motion:reduce){.shk-pf-track{transition:none}}