.portfolio-page[data-v-4ecbf3b5]{--portfolio-page-text:#334155;--portfolio-strong-text:#0f172a;--portfolio-muted-text:#64748b;--portfolio-soft-text:#94a3b8;--portfolio-canvas-bg:#fff;--portfolio-shell-bg:var(--portfolio-canvas-bg);--portfolio-page-bg:var(--portfolio-shell-bg);--portfolio-toolbar-bg:var(--portfolio-shell-bg);--portfolio-panel-bg:var(--portfolio-shell-bg);--portfolio-border:#64748b29;--portfolio-border-strong:#2563eb2e;--portfolio-search-bg:transparent;--portfolio-search-border:#2563eb3d;--portfolio-search-focus-bg:transparent;--portfolio-search-focus-shadow:inset 0 -2px 0 #2563ebad, 0 10px 24px #2563eb14;--portfolio-accent:#2563eb;--portfolio-accent-soft:#2563eb17;--portfolio-chip-bg:#ffffff8f;--portfolio-pagination-bg:#ffffffad;--portfolio-chip-text:#586276;--portfolio-chip-border:#667eea17;--portfolio-chip-active-bg:#667eea14;background:var(--portfolio-page-bg);height:100%;min-height:0;color:var(--portfolio-page-text);flex-direction:column;padding:0 1.25rem 1rem;display:flex;overflow:hidden}.portfolio-view[data-v-4ecbf3b5]{flex-direction:column;flex:auto;width:min(1240px,100%);max-width:1240px;min-height:0;margin:0 auto;display:flex}.portfolio-detail[data-v-4ecbf3b5]{background:var(--portfolio-page-bg);flex-direction:column;flex:auto;min-height:0;display:flex}.portfolio-detail__bar[data-v-4ecbf3b5]{background:var(--portfolio-page-bg);flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;width:min(1240px,100%);margin:0 auto;padding:.72rem 0 .65rem;display:grid}.portfolio-detail__back[data-v-4ecbf3b5],.portfolio-detail__repo[data-v-4ecbf3b5]{border:1px solid var(--portfolio-border);background:var(--portfolio-panel-bg);color:var(--portfolio-muted-text);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.portfolio-detail__back[data-v-4ecbf3b5]{gap:.3rem;height:2rem;padding:0 .68rem;font-size:.76rem;font-weight:800}.portfolio-detail__repo[data-v-4ecbf3b5]{width:2rem;height:2rem}.portfolio-detail__title[data-v-4ecbf3b5]{align-items:center;gap:.7rem;min-width:0;display:flex}.portfolio-detail__title h1[data-v-4ecbf3b5]{color:var(--portfolio-strong-text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;line-height:1.25;overflow:hidden}.portfolio-detail__title span[data-v-4ecbf3b5]{color:var(--portfolio-muted-text);flex:none;align-items:center;gap:.3rem;font-size:.72rem;font-weight:800;display:inline-flex}.portfolio-toolbar[data-v-4ecbf3b5]{z-index:18;background:var(--portfolio-toolbar-bg);-webkit-backdrop-filter:blur(14px);flex:none;grid-template-columns:minmax(0,1fr) minmax(320px,380px);align-items:center;gap:.88rem;min-height:3.78rem;padding:.5rem .22rem .62rem 0;display:grid;position:sticky;top:0}.portfolio-category-row[data-v-4ecbf3b5]{flex-wrap:nowrap;align-items:center;min-width:0;display:flex;position:relative}.portfolio-category-shell[data-v-4ecbf3b5]{flex:auto;align-items:center;min-width:0;max-width:100%;display:flex;position:relative}.portfolio-category-list[data-v-4ecbf3b5]{scroll-behavior:smooth;scrollbar-width:none;flex-wrap:nowrap;flex:auto;justify-content:flex-start;align-items:center;gap:10px;min-width:0;padding:.44rem .5rem .44rem 0;display:flex;overflow:auto hidden}.portfolio-category-list[data-v-4ecbf3b5]::-webkit-scrollbar{display:none}.portfolio-category-scroll[data-v-4ecbf3b5]{z-index:1;color:#334155;cursor:pointer;background:#ffffffdb;border:1px solid #94a3b870;border-radius:999px;justify-content:center;align-items:center;width:1.45rem;height:1.45rem;padding:0;transition:opacity .16s,background-color .16s,transform .16s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.portfolio-category-scroll[data-v-4ecbf3b5]:hover{background:#f8fafcfa;transform:translateY(-50%)scale(1.03)}.portfolio-category-scroll--left[data-v-4ecbf3b5]{left:-.1rem}.portfolio-category-scroll--right[data-v-4ecbf3b5]{right:-.1rem}.portfolio-category-button[data-v-4ecbf3b5]{isolation:isolate;background:var(--portfolio-page-bg);min-width:max-content;min-height:30px;color:var(--portfolio-tag-text,#526072);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--portfolio-tag-border,#667eea1a);cursor:pointer;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:12px;font-weight:600;line-height:1;transition:background-color .16s,color .16s,transform .16s,box-shadow .16s;display:inline-flex;position:relative;overflow:hidden}.portfolio-category-button[data-v-4ecbf3b5]:before{display:none}.portfolio-category-button__count[data-v-4ecbf3b5]{background:color-mix(in srgb, currentColor 14%, transparent);min-width:1.15rem;height:1.15rem;color:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent);border-radius:999px;justify-content:center;align-items:center;padding:0 .24rem;font-size:.66rem;font-weight:800;line-height:1;display:inline-flex}.portfolio-category-button__label[data-v-4ecbf3b5]{text-overflow:ellipsis;white-space:nowrap;max-width:11.5rem;overflow:hidden}.portfolio-category-button[data-v-4ecbf3b5]:hover,.portfolio-category-button.is-active[data-v-4ecbf3b5]{background:var(--portfolio-page-bg);color:var(--portfolio-tag-text-hover,#334155);transform:translateY(-1px)}.portfolio-category-button.is-active[data-v-4ecbf3b5]{background:var(--portfolio-page-bg);color:var(--portfolio-tag-text-active,#334155);box-shadow:inset 0 0 0 1px var(--portfolio-tag-border,#667eea29)}.portfolio-search[data-v-4ecbf3b5]{align-items:center;width:100%;display:flex;position:relative}.portfolio-search__icon[data-v-4ecbf3b5]{color:var(--portfolio-accent);pointer-events:none;position:absolute;top:50%;left:.78rem;transform:translateY(-50%)}.portfolio-search__input[data-v-4ecbf3b5]{background:var(--portfolio-search-bg);width:100%;height:2.38rem;color:var(--portfolio-strong-text);box-shadow:inset 0 -1px 0 var(--portfolio-search-border);border:0;border-radius:0;outline:none;padding:.56rem 2.3rem .56rem 2.28rem;font-size:.88rem;transition:box-shadow .16s}.portfolio-search__input[data-v-4ecbf3b5]:focus{box-shadow:var(--portfolio-search-focus-shadow);background:var(--portfolio-search-focus-bg)}.portfolio-search__input[data-v-4ecbf3b5]::placeholder{color:var(--portfolio-soft-text)}.portfolio-search__clear[data-v-4ecbf3b5]{background:var(--portfolio-accent-soft);width:1.65rem;height:1.65rem;color:var(--portfolio-accent);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:.45rem}.portfolio-results[data-v-4ecbf3b5]{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.portfolio-grid[data-v-4ecbf3b5]{scrollbar-gutter:stable;flex:auto;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(226px,calc(50% - .5rem));align-content:stretch;align-items:stretch;gap:1rem;min-height:0;padding:.12rem 4px .24rem 0;display:grid;overflow:hidden auto}.portfolio-card[data-v-4ecbf3b5]{background:color-mix(in srgb, var(--project-accent) 2%, var(--portfolio-panel-bg));cursor:pointer;border:1px solid #94a3b82e;border-radius:7px;grid-template-rows:minmax(124px,60%) minmax(88px,1fr);min-width:0;height:100%;min-height:0;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0a,0 8px 18px #0f172a0b}.portfolio-card[data-v-4ecbf3b5]:before{content:none}.portfolio-card[data-v-4ecbf3b5]:hover{border-color:#0969da38;transform:translateY(-1px);box-shadow:0 1px 2px #0f172a0a,0 14px 28px #0f172a16}.portfolio-card__cover[data-v-4ecbf3b5]{background:radial-gradient(circle at 18% 16%, color-mix(in srgb, var(--project-accent) 24%, transparent), transparent 35%), linear-gradient(135deg, color-mix(in srgb, var(--project-accent) 12%, var(--portfolio-panel-bg)), var(--portfolio-panel-bg));border-bottom:1px solid #94a3b829;border-radius:6px 6px 0 0;min-height:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff29}.portfolio-card__cover[data-v-4ecbf3b5]:after{content:"";opacity:.56;pointer-events:none;background:linear-gradient(#0000,#0f172a29);height:42%;position:absolute;inset:auto 0 0}.portfolio-card__cover-image[data-v-4ecbf3b5]{object-fit:cover;opacity:0;color:#0000;will-change:opacity, transform;width:100%;height:100%;font-size:0;transition:opacity .62s,transform .92s;position:absolute;inset:0;transform:scale(.985)}.portfolio-card__cover-image.is-active[data-v-4ecbf3b5],.portfolio-card__cover-image.is-single[data-v-4ecbf3b5]{opacity:1;transform:scale(1)}.portfolio-card:hover .portfolio-card__cover-image.is-active[data-v-4ecbf3b5],.portfolio-card:hover .portfolio-card__cover-image.is-single[data-v-4ecbf3b5]{transform:scale(1.018)}.portfolio-card__body[data-v-4ecbf3b5]{background:linear-gradient(180deg, color-mix(in srgb, var(--project-accent) 3%, var(--portfolio-panel-bg)), var(--portfolio-panel-bg) 68%);flex-direction:column;min-width:0;min-height:0;padding:.48rem .72rem .54rem;display:flex;overflow:hidden}.portfolio-card__title[data-v-4ecbf3b5]{flex:none;align-items:center;gap:.42rem;min-width:0;display:flex}.portfolio-card__title h2[data-v-4ecbf3b5]{color:#0969da;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:.88rem;line-height:1.24;overflow:hidden}.portfolio-language-dot[data-v-4ecbf3b5]{background:var(--language-color);border-radius:999px;width:.58rem;height:.58rem;display:inline-flex}.portfolio-card__actions[data-v-4ecbf3b5]{z-index:2;opacity:0;pointer-events:none;visibility:hidden;align-items:center;gap:.38rem;transition:opacity .16s,visibility .16s;display:inline-flex;position:absolute;top:.58rem;right:.58rem}.portfolio-card:hover .portfolio-card__actions[data-v-4ecbf3b5]{opacity:1;pointer-events:auto;visibility:visible}.portfolio-card__open[data-v-4ecbf3b5]{color:#ffffffeb;-webkit-backdrop-filter:blur(12px);background:#0f172a61;border:1px solid #ffffff85;border-radius:999px;justify-content:center;align-items:center;width:1.78rem;height:1.78rem;display:inline-flex;box-shadow:0 10px 22px #0f172a29}.portfolio-card__language[data-v-4ecbf3b5]{pointer-events:none;flex:none;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.portfolio-card__language-logo[data-v-4ecbf3b5]{object-fit:contain;width:1rem;height:1rem}.portfolio-card__open[data-v-4ecbf3b5]{cursor:pointer;transition:background-color .16s,color .16s,transform .16s,border-color .16s}.portfolio-card__open[data-v-4ecbf3b5]:hover{color:#fff;background:#0969dad1;border-color:#ffffffb8;transform:translateY(-1px)}.portfolio-card p[data-v-4ecbf3b5]{color:var(--portfolio-page-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:none;margin:.3rem 0 0;padding:0;font-size:.71rem;line-height:1.34;display:-webkit-box;overflow:hidden}.portfolio-card__features[data-v-4ecbf3b5]{min-height:0;color:var(--portfolio-muted-text);flex:0 auto;gap:.16rem;margin:.32rem 0 0;padding:0;font-size:.64rem;line-height:1.3;list-style:none;display:grid}.portfolio-card__features li[data-v-4ecbf3b5]{overflow-wrap:anywhere;-webkit-line-clamp:1;-webkit-box-orient:vertical;padding-left:.72rem;display:-webkit-box;position:relative;overflow:hidden}.portfolio-card__features li[data-v-4ecbf3b5]:before{content:"";background:color-mix(in srgb, var(--project-accent) 76%, #94a3b8);border-radius:999px;width:.24rem;height:.24rem;position:absolute;top:.55em;left:.1rem}.portfolio-pagination[data-v-4ecbf3b5]{flex:none;justify-content:flex-end;align-items:center;gap:.52rem;min-height:2.25rem;padding:.34rem 4px 0 0;display:flex}.portfolio-pagination__summary[data-v-4ecbf3b5]{color:var(--portfolio-muted-text);white-space:nowrap;font-size:.72rem;font-weight:800}.portfolio-pagination__controls[data-v-4ecbf3b5]{align-items:center;gap:.32rem;display:flex}.portfolio-page-button[data-v-4ecbf3b5]{border:1px solid var(--portfolio-border);background:var(--portfolio-pagination-bg);min-width:1.8rem;height:1.8rem;color:var(--portfolio-muted-text);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;padding:0 .46rem;font-size:.74rem;font-weight:850;transition:background-color .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.portfolio-page-button[data-v-4ecbf3b5]:hover:not(:disabled){border-color:var(--portfolio-border-strong);background:var(--portfolio-accent-soft);color:var(--portfolio-accent);transform:translateY(-1px)}.portfolio-page-button.is-active[data-v-4ecbf3b5]{border-color:color-mix(in srgb, var(--portfolio-accent) 34%, transparent);background:var(--portfolio-accent);color:#fff}.portfolio-page-button[data-v-4ecbf3b5]:disabled{cursor:default;opacity:.45}.portfolio-page-button--icon[data-v-4ecbf3b5]{width:1.8rem;padding:0}.portfolio-empty[data-v-4ecbf3b5]{min-height:240px;color:var(--portfolio-muted-text);text-align:center;flex:auto;justify-content:center;align-items:center;display:flex}@media (width<=1180px){.portfolio-grid[data-v-4ecbf3b5]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=980px){.portfolio-grid[data-v-4ecbf3b5]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.portfolio-page[data-v-4ecbf3b5]{padding:0 1rem 1.4rem}.portfolio-toolbar[data-v-4ecbf3b5]{flex-direction:column;grid-template-columns:1fr;align-items:stretch;gap:.85rem;min-height:0;padding:.8rem 0 .9rem;display:flex;position:relative}.portfolio-grid[data-v-4ecbf3b5]{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-category-row[data-v-4ecbf3b5]{flex-direction:column;align-items:flex-start;gap:.38rem}.portfolio-category-shell[data-v-4ecbf3b5]{width:100%}.portfolio-pagination[data-v-4ecbf3b5]{flex-direction:column;align-items:flex-end;gap:.45rem}}@media (width<=560px){.portfolio-grid[data-v-4ecbf3b5]{grid-template-columns:1fr}}html[data-theme=dark] .portfolio-page{--portfolio-page-text:#d4d4d4;--portfolio-strong-text:#f5f7fa;--portfolio-muted-text:#9aa4b2;--portfolio-soft-text:#6f7a86;--portfolio-canvas-bg:#101727;--portfolio-shell-bg:var(--portfolio-canvas-bg);--portfolio-page-bg:var(--portfolio-shell-bg);--portfolio-toolbar-bg:var(--portfolio-shell-bg);--portfolio-panel-bg:var(--portfolio-shell-bg);--portfolio-border:#47556980;--portfolio-border-strong:#4fc1ff38;--portfolio-search-bg:transparent;--portfolio-search-border:#52525be0;--portfolio-search-focus-bg:transparent;--portfolio-search-focus-shadow:inset 0 -2px 0 #4fc1ff9e, 0 10px 24px #4fc1ff1a;--portfolio-accent:#4fc1ff;--portfolio-accent-soft:#4fc1ff1f;--portfolio-chip-bg:#333337;--portfolio-pagination-bg:var(--portfolio-page-bg);--portfolio-chip-text:#d4d4d4;--portfolio-chip-border:transparent;--portfolio-chip-active-bg:#007acc4d;background:var(--portfolio-page-bg)}:is(html[data-theme=dark] .content:has(.portfolio-page),html[data-theme=dark] .content-body:has(.portfolio-page),html[data-theme=dark] .content-body-page:has(.portfolio-page)){background:#101727}html[data-theme=dark] .portfolio-card{background:var(--portfolio-panel-bg)}html[data-theme=dark] .portfolio-category-button{background:var(--portfolio-page-bg)!important;color:color-mix(in srgb, var(--portfolio-tag-text,#7dd3fc) 46%, #d7e8f6 54%)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--portfolio-tag-text,#7dd3fc) 18%, transparent)!important}html[data-theme=dark] .portfolio-category-button:hover{background:var(--portfolio-page-bg)!important;color:color-mix(in srgb, var(--portfolio-tag-text-hover,#7dd3fc) 44%, #f4fbff 56%)!important}html[data-theme=dark] .portfolio-category-button.is-active{background:var(--portfolio-page-bg)!important;color:color-mix(in srgb, var(--portfolio-tag-text-active,#7dd3fc) 42%, #fff 58%)!important}html[data-theme=dark] .portfolio-category-scroll{color:#cbd5e1!important;background:#0f172ae0!important;border-color:#94a3b866!important}html[data-theme=dark] .portfolio-category-scroll:hover{background:#1e293bf0!important}html[data-theme=eye] .portfolio-page{--portfolio-page-text:#4a3f32;--portfolio-strong-text:#2f271f;--portfolio-muted-text:#6b604f;--portfolio-soft-text:#8c7e68;--portfolio-canvas-bg:#f1eadc;--portfolio-shell-bg:var(--portfolio-canvas-bg);--portfolio-page-bg:var(--portfolio-shell-bg);--portfolio-toolbar-bg:var(--portfolio-shell-bg);--portfolio-panel-bg:var(--portfolio-shell-bg);--portfolio-border:#7060482e;--portfolio-border-strong:#70604842;--portfolio-search-bg:transparent;--portfolio-search-border:#7060483d;--portfolio-search-focus-bg:transparent;--portfolio-search-focus-shadow:inset 0 -2px 0 #70604870, 0 10px 24px #5c4e3714;--portfolio-accent:#5f4b32;--portfolio-accent-soft:#7060481f;--portfolio-chip-bg:#f7efdf;--portfolio-chip-text:#51483a;--portfolio-chip-border:#7060481f;--portfolio-chip-active-bg:#e7dbc4;background:var(--portfolio-page-bg)}:is(html[data-theme=eye] .content:has(.portfolio-page),html[data-theme=eye] .content-body:has(.portfolio-page),html[data-theme=eye] .content-body-page:has(.portfolio-page)){background:#f1eadc}html[data-theme=eye] .portfolio-card{background:var(--portfolio-panel-bg)}html[data-theme=eye] .portfolio-category-button{background:var(--portfolio-page-bg)!important;color:color-mix(in srgb, var(--portfolio-tag-text,#5f5445) 66%, #4f4336 34%)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--portfolio-tag-text,#5f5445) 14%, transparent)!important}html[data-theme=eye] .portfolio-category-button:hover,html[data-theme=eye] .portfolio-category-button.is-active{background:var(--portfolio-page-bg)!important;color:color-mix(in srgb, var(--portfolio-tag-text-hover,#5f5445) 72%, #3f3932 28%)!important}html[data-theme=eye] .portfolio-category-scroll{color:#4d4439!important;background:#ffffffe0!important;border-color:#786f5c5c!important}html[data-theme=eye] .portfolio-category-scroll:hover{background:#f8f3ecf0!important}html[data-theme=dark] .portfolio-category-button:before,html[data-theme=eye] .portfolio-category-button:before{opacity:0!important}html[data-theme=dark] .portfolio-category-button__count,html[data-theme=eye] .portfolio-category-button__count{background:color-mix(in srgb, currentColor 16%, transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent)!important}
