.portfolio{padding:100px 5% 5%;background:var(--second-bg-color)}.portfolio .center-text h2{font-size:clamp(1.6rem,1.1rem + 2.2vw,2.6rem);line-height:1.2}.portfolio-subtitle{display:block;margin-top:8px;font-size:clamp(.8rem,.72rem + .35vw,1rem);font-weight:500;letter-spacing:.02em;color:var(--other-color);background:none;-webkit-text-fill-color:currentColor;animation:none}.portfolio-content{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:3rem;max-width:1400px;margin-inline:auto}.portfolio-empty{grid-column:1/-1;text-align:center;font-size:1.05rem;color:var(--other-color)}.pcard{position:relative;display:flex;flex-direction:column;gap:12px;height:100%;padding:18px;border-radius:24px;border:1px solid transparent;background:var(--card-bg);box-shadow:var(--brand-glow-sm);transition:border-color .4s ease,transform .4s ease,box-shadow .4s ease}.pcard:hover{border-color:var(--main-color);transform:translateY(-5px);box-shadow:var(--brand-glow-md)}.pcard-stretch:after{content:"";position:absolute;inset:0;border-radius:inherit}.pcard-media-wrap{position:relative;z-index:1}.pcard-media{position:relative;aspect-ratio:4/3;padding:0;border:0;overflow:hidden;border-radius:14px;cursor:zoom-in;background:var(--surface-sunken)}.pcard-img,.pcard-media{display:block;width:100%}.pcard-img{height:100%;object-fit:cover;object-position:top center;transition:transform .4s ease}.pcard-media:hover .pcard-img{transform:scale(1.05)}.pcard-media:after{content:"";position:absolute;inset:0;pointer-events:none;background:color-mix(in srgb,var(--bg-color) 45%,transparent);opacity:0;transition:opacity .25s ease}.pcard-media:hover:after{opacity:1}.pcard-zoom{position:absolute;right:10px;bottom:10px;z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;pointer-events:none;color:var(--main-color);background:color-mix(in srgb,var(--bg-color) 82%,transparent);border:1px solid color-mix(in srgb,var(--main-color) 30%,transparent);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.pcard-zoom svg{width:16px;height:16px}.pcard-count{position:absolute;top:10px;left:10px;z-index:1;display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:9999px;pointer-events:none;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--main-color);background:color-mix(in srgb,var(--bg-color) 82%,transparent);border:1px solid color-mix(in srgb,var(--main-color) 30%,transparent)}.pcard-media:hover .pcard-zoom{border-color:var(--main-color);background-color:color-mix(in srgb,var(--bg-color) 90%,transparent);box-shadow:var(--brand-glow-md)}.pcard-media:focus-visible{outline:2px solid var(--main-color);outline-offset:2px}.pcard-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pcard-title{margin:0;min-width:0;font-size:clamp(1rem,.94rem + .28vw,1.15rem);font-weight:600;line-height:1.35;color:var(--other-color)}.pcard-desc{margin:0;font-size:clamp(1rem,.93rem + .32vw,1.2rem);font-weight:700;line-height:1.45;color:var(--textcolor)}.pcard-icon-btn{position:relative;z-index:1;display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border-radius:12px;cursor:pointer;color:var(--main-color);border:1px solid color-mix(in srgb,var(--main-color) 22%,transparent);background-color:color-mix(in srgb,var(--main-color) 8%,transparent);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .15s ease}.pcard-icon-btn svg{width:18px;height:18px}.pcard-icon-btn:hover{background-color:color-mix(in srgb,var(--main-color) 18%,transparent);border-color:var(--main-color);box-shadow:var(--brand-glow-md)}.pcard-icon-btn:active{transform:translateY(1px)}.pcard-icon-btn:focus-visible{outline:2px solid var(--main-color);outline-offset:2px}.pcard-icon-btn--private{cursor:help;color:var(--other-color);border-color:color-mix(in srgb,var(--other-color) 22%,transparent);background-color:color-mix(in srgb,var(--other-color) 8%,transparent)}.pcard-icon-btn--private:hover{background-color:color-mix(in srgb,var(--other-color) 14%,transparent);border-color:color-mix(in srgb,var(--other-color) 40%,transparent);box-shadow:none}.pcard-icon-btn--private:active{transform:none}.pcard-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:4px}.pimg-modal-body{background-color:var(--surface-sunken);border-top:1px solid color-mix(in srgb,var(--main-color) 12%,transparent);border-bottom:1px solid color-mix(in srgb,var(--main-color) 12%,transparent)}.pimg-img{display:block;margin-inline:auto;width:auto;max-width:100%;height:auto;border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.5)}@media (max-width:639px){.portfolio{padding:70px 4% 4%}.portfolio-content{margin-top:2.25rem}.pcard{padding:14px;border-radius:20px}}@media (min-width:640px) and (max-width:767px){.portfolio{padding:80px 4% 4%}}@media (min-width:768px){.portfolio{padding:90px 4% 4%}.portfolio-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin-top:2.75rem}}@media (min-width:1024px){.portfolio{padding:100px 5% 5%}.portfolio-content{gap:1.75rem}}@media (min-width:1280px){.portfolio-content{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:3rem}.pcard{padding:20px}}@media (min-width:1536px){.portfolio-content{margin-top:3.5rem}}@media (max-width:639px){.pimg-modal-body{padding:12px}}@media (prefers-reduced-motion:reduce){.pcard:hover{transform:none}.pcard,.pcard-icon-btn,.pcard-img,.pcard-media:after{transition-duration:.01ms}}