.tab-row[data-astro-cid-jmhcnsek]{border-bottom:calc(var(--space-px) * 2) solid var(--color-border-strong);margin-bottom:var(--space-6);max-width:var(--container-max);top:var(--nav-h,0px);background:var(--color-bg);z-index:40;margin-left:auto;margin-right:auto;display:flex;position:sticky}.tab-btn[data-astro-cid-jmhcnsek]{padding:var(--space-3) var(--space-8);font-family:var(--font-display), serif;font-size:var(--text-lg);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);border:none;border-bottom:calc(var(--space-px) * 3) solid transparent;margin-bottom:calc(var(--space-px) * -2);cursor:pointer;transition:all var(--duration-base) var(--ease-out);background:0 0}.tab-btn[data-astro-cid-jmhcnsek]:hover{color:var(--color-text)}.tab-btn[data-astro-cid-jmhcnsek].active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.chip-row[data-astro-cid-jmhcnsek]{gap:var(--space-2);max-width:var(--container-max);margin:0 auto var(--space-8);flex-wrap:wrap;display:flex}.chip-btn[data-astro-cid-jmhcnsek]{padding:var(--space-2) var(--space-5);border:var(--space-px) solid var(--color-border);font-size:var(--text-base);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);transition:all var(--duration-base) var(--ease-out);background:0 0;border-radius:9999px}.chip-btn[data-astro-cid-jmhcnsek]:hover{border-color:var(--color-border-strong);color:var(--color-text)}.chip-btn[data-astro-cid-jmhcnsek].active{background:var(--color-ink);color:var(--color-bg);border-color:var(--color-ink)}.port-grid[data-astro-cid-jmhcnsek]{gap:var(--space-3);max-width:var(--container-max);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid}.port-grid[data-astro-cid-jmhcnsek] figure[data-astro-cid-jmhcnsek]{aspect-ratio:3/4;border-radius:var(--radius-xs);cursor:pointer;background:var(--color-border-warm);position:relative;overflow:hidden}.port-grid[data-astro-cid-jmhcnsek] figure[data-astro-cid-jmhcnsek] img[data-astro-cid-jmhcnsek]{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out)}.port-grid[data-astro-cid-jmhcnsek] figure[data-astro-cid-jmhcnsek]:hover img[data-astro-cid-jmhcnsek]{transform:scale(1.05)}.port-grid[data-astro-cid-jmhcnsek] figcaption[data-astro-cid-jmhcnsek]{padding:var(--space-3);color:var(--color-bg);font-size:var(--text-base);letter-spacing:var(--tracking-wide);background:linear-gradient(#0000,#2b2b28c7);position:absolute;bottom:0;left:0;right:0}.port-grid[data-astro-cid-jmhcnsek].is-empty,.port-grid[data-astro-cid-jmhcnsek]:has(.port-grid-empty){text-align:center;padding:var(--space-20) 0;display:block}.port-grid-empty[data-astro-cid-jmhcnsek]{color:var(--color-text-muted);font-size:var(--text-lg)}.lightbox[data-astro-cid-jmhcnsek]{z-index:2000;background:#2b2b28eb;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.lightbox[data-astro-cid-jmhcnsek].open{display:flex}.lightbox-close[data-astro-cid-jmhcnsek]{top:var(--space-6);right:var(--space-8);color:var(--color-bg);font-size:var(--text-2xl);cursor:pointer;opacity:.8;background:0 0;border:none;line-height:1;position:absolute}.lightbox-close[data-astro-cid-jmhcnsek]:hover{opacity:1}.lightbox-inner[data-astro-cid-jmhcnsek]{gap:var(--space-8);align-items:flex-start;max-width:90vw;max-height:90vh;display:flex}.lightbox-img[data-astro-cid-jmhcnsek]{-o-object-fit:contain;object-fit:contain;border-radius:var(--radius-xs);flex-shrink:0;max-width:60vw;max-height:85vh}.lightbox-info[data-astro-cid-jmhcnsek]{color:var(--color-bg);padding-top:var(--space-4);flex-shrink:0}.lightbox-title[data-astro-cid-jmhcnsek]{font-family:var(--font-display), serif;font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4)}.lightbox-desc[data-astro-cid-jmhcnsek]{font-size:var(--text-base);color:#f7f4edc7;line-height:1.85}.lightbox-cta[data-astro-cid-jmhcnsek]{margin-top:var(--space-6)}@media (width<=768px){.tab-btn[data-astro-cid-jmhcnsek]{padding:var(--space-3) var(--space-4);font-size:var(--text-base)}.port-grid[data-astro-cid-jmhcnsek]{grid-template-columns:repeat(2,1fr)}.lightbox-inner[data-astro-cid-jmhcnsek]{flex-direction:column}.lightbox-img[data-astro-cid-jmhcnsek]{max-width:90vw}.lightbox-info[data-astro-cid-jmhcnsek]{width:90vw}}@media (prefers-reduced-motion:reduce){.port-grid[data-astro-cid-jmhcnsek] figure[data-astro-cid-jmhcnsek]:hover img[data-astro-cid-jmhcnsek]{transform:none}}.port-hero[data-astro-cid-bzl2dswc]{padding:var(--space-16) var(--space-12) var(--space-10);background:var(--color-portfolio-bg)}.port-hero-inner[data-astro-cid-bzl2dswc]{max-width:var(--container-max);margin:0 auto}.port-hero-kicker[data-astro-cid-bzl2dswc]{font-family:var(--font-eng);color:var(--color-accent);font-style:italic;font-size:var(--text-lg);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4);display:block}.port-hero-title[data-astro-cid-bzl2dswc]{font-size:clamp(32px,3.5vw,52px);font-weight:var(--weight-regular);letter-spacing:var(--tracking-wide);line-height:1.4}.port-hero-desc[data-astro-cid-bzl2dswc]{margin-top:var(--space-4);font-size:var(--text-base);color:var(--color-text-muted);max-width:520px;line-height:1.85}.port-cta[data-astro-cid-bzl2dswc]{text-align:center;margin-top:var(--space-16);max-width:var(--container-max);padding-top:var(--space-16);margin-left:auto;margin-right:auto}.port-cta-title[data-astro-cid-bzl2dswc]{font-weight:var(--weight-regular);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-6)}.port-grid[data-astro-cid-bzl2dswc]{gap:var(--space-3);max-width:var(--container-max);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid}.port-empty[data-astro-cid-bzl2dswc]{text-align:center;padding:var(--space-20) 0;max-width:var(--container-max);margin:0 auto}.port-empty-mark[data-astro-cid-bzl2dswc]{font-size:var(--text-4xl);color:var(--color-border);margin-bottom:var(--space-4)}.port-empty-cta[data-astro-cid-bzl2dswc]{margin-top:var(--space-8);display:inline-block}@media (width<=768px){.port-hero[data-astro-cid-bzl2dswc]{padding:var(--space-12) var(--space-6) var(--space-16)}.port-grid[data-astro-cid-bzl2dswc]{grid-template-columns:repeat(2,1fr)}}
