.projects-page[data-astro-cid-3rkrlumz]{flex-direction:column;gap:2.25rem;width:100%;padding-bottom:0;display:flex}.page-top[data-astro-cid-3rkrlumz]{flex-direction:column;gap:.75rem;display:flex}.back-link[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);color:var(--muted-foreground);transition:color var(--dur-feedback);touch-action:manipulation;cursor:pointer;align-items:center;gap:.35rem;width:fit-content;font-size:.75rem;text-decoration:none;display:inline-flex}.back-link[data-astro-cid-3rkrlumz]:hover{color:var(--site-accent)}.back-arrow[data-astro-cid-3rkrlumz]{width:.875rem;height:.875rem;transition:transform var(--dur-feedback) var(--ease-out-quart)}.back-link[data-astro-cid-3rkrlumz]:hover .back-arrow[data-astro-cid-3rkrlumz]{transform:translate(-3px)}.page-title[data-astro-cid-3rkrlumz]{font-family:var(--font-sans);letter-spacing:-.025em;color:var(--foreground);margin:0;font-size:1.875rem;font-weight:400;line-height:1.2}@media (width>=640px){.page-title[data-astro-cid-3rkrlumz]{font-size:2.25rem}}.page-subtitle[data-astro-cid-3rkrlumz]{font-family:var(--font-sans);color:var(--muted-foreground);max-width:38rem;margin:0;font-size:.9375rem;line-height:1.6}.filter-pills-bar[data-astro-cid-3rkrlumz]{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.filter-pill[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);color:var(--muted-foreground);background:var(--site-surface-1);border:1px solid var(--site-divider);cursor:pointer;transition:all var(--dur-feedback) var(--ease-out-quart);touch-action:manipulation;border-radius:.5rem;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.6875rem;display:inline-flex}.filter-pill[data-astro-cid-3rkrlumz]:hover{color:var(--foreground);border-color:color-mix(in oklch, var(--foreground) 30%, var(--site-divider))}.filter-pill[data-astro-cid-3rkrlumz].active{color:var(--foreground);background:var(--site-surface-2);border-color:color-mix(in oklch, var(--foreground) 50%, var(--site-divider));font-weight:550}.pill-count[data-astro-cid-3rkrlumz]{opacity:.7;background:var(--site-divider);border-radius:.25rem;padding:.1rem .35rem;font-size:.625rem}.gallery-wrapper[data-astro-cid-3rkrlumz]{width:100%;position:relative}.gallery-wrapper[data-astro-cid-3rkrlumz].is-expanding{transition:max-height .75s cubic-bezier(.16,1,.3,1)}.gallery-wrapper[data-astro-cid-3rkrlumz].is-collapsed{max-height:2250px;margin-bottom:-6rem;overflow:hidden}@media (width>=768px){.gallery-wrapper[data-astro-cid-3rkrlumz].is-collapsed{max-height:1520px}}.gallery-wrapper[data-astro-cid-3rkrlumz].is-collapsed .gallery-grid[data-astro-cid-3rkrlumz]{-webkit-mask-image:linear-gradient(#000 calc(100% - 130px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 130px),#0000 100%)}.gallery-fade-curtain[data-astro-cid-3rkrlumz]{background:linear-gradient(to bottom, color-mix(in oklch, var(--background) 0%, transparent) 0%, color-mix(in oklch, var(--background) 50%, transparent) 30%, color-mix(in oklch, var(--background) 90%, transparent) 65%, var(--background) 100%);pointer-events:none;z-index:10;justify-content:center;align-items:flex-end;height:180px;padding-bottom:1.75rem;display:none;position:absolute;bottom:0;left:0;right:0}.gallery-wrapper[data-astro-cid-3rkrlumz].is-collapsed .gallery-fade-curtain[data-astro-cid-3rkrlumz]{display:flex}.btn-expand-catalog[data-astro-cid-3rkrlumz]{pointer-events:auto;font-family:var(--font-sans);color:var(--foreground);background:color-mix(in oklch, var(--site-surface-1) 85%, var(--background));border:1px solid color-mix(in oklch, var(--foreground) 25%, var(--site-divider));cursor:pointer;-webkit-backdrop-filter:blur(14px);transition:all .25s var(--ease-out-quart);touch-action:manipulation;border-radius:9999px;align-items:center;gap:.6rem;padding:.7rem 1.4rem;font-size:.8125rem;font-weight:550;display:inline-flex;box-shadow:0 10px 30px #00000040,0 2px 8px #0000001f}.btn-expand-catalog[data-astro-cid-3rkrlumz]:hover{background:var(--site-surface-2);border-color:var(--site-accent);box-shadow:0 14px 36px #00000059, 0 0 16px color-mix(in oklch, var(--site-accent) 25%, transparent);transform:translateY(-2px)}.pill-expand-count[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);background:var(--site-surface-2);border:1px solid var(--site-divider);color:var(--site-accent);border-radius:9999px;padding:.1rem .45rem;font-size:.6875rem;font-weight:600}.chevron-expand[data-astro-cid-3rkrlumz]{transition:transform .25s var(--ease-out-quart);color:var(--muted-foreground)}.btn-expand-catalog[data-astro-cid-3rkrlumz]:hover .chevron-expand[data-astro-cid-3rkrlumz]{color:var(--foreground);transform:translateY(2px)}.gallery-grid[data-astro-cid-3rkrlumz]{grid-template-columns:1fr;gap:1.25rem;width:100%;display:grid}@media (width>=768px){.gallery-grid[data-astro-cid-3rkrlumz]{grid-template-columns:repeat(3,1fr);gap:1.25rem}}.gallery-card[data-astro-cid-3rkrlumz]{border:1px solid var(--site-divider);background:var(--site-surface-1);box-shadow:var(--site-elevation);transition:border-color var(--dur-feedback) var(--ease-out-quart), box-shadow var(--dur-feedback) var(--ease-out-quart), transform var(--dur-feedback) var(--ease-out-quart);contain:layout paint;border-radius:.875rem;flex-direction:column;display:flex;overflow:hidden}.gallery-card[data-astro-cid-3rkrlumz]:hover{border-color:color-mix(in oklch, var(--site-accent) 40%, var(--site-divider));transform:translateY(-2px);box-shadow:0 6px 20px #00000012}@media (width>=768px){.gallery-card--span-3[data-astro-cid-3rkrlumz]{grid-column:1/-1;grid-template-columns:1.2fr 1fr;display:grid}.gallery-card--span-3[data-astro-cid-3rkrlumz] .gallery-media[data-astro-cid-3rkrlumz]{aspect-ratio:auto;border-bottom:none;border-right:1px solid var(--site-divider);height:100%;min-height:18rem}.gallery-card--span-2-left[data-astro-cid-3rkrlumz]{grid-column:span 2;grid-template-columns:1.15fr 1fr;display:grid}.gallery-card--span-2-left[data-astro-cid-3rkrlumz] .gallery-media[data-astro-cid-3rkrlumz]{aspect-ratio:auto;border-bottom:none;border-right:1px solid var(--site-divider);height:100%;min-height:16rem}.gallery-card--span-2-right[data-astro-cid-3rkrlumz]{grid-column:span 2;grid-template-columns:1.15fr 1fr;display:grid}.gallery-card--span-2-right[data-astro-cid-3rkrlumz] .gallery-media[data-astro-cid-3rkrlumz]{aspect-ratio:auto;border-bottom:none;border-right:1px solid var(--site-divider);height:100%;min-height:16rem}.gallery-card--span-1[data-astro-cid-3rkrlumz]{grid-column:span 1}}.gallery-media[data-astro-cid-3rkrlumz]{background:var(--site-surface-2);border-bottom:1px solid var(--site-divider);aspect-ratio:16/10;width:100%;position:relative;overflow:hidden}.gallery-img[data-astro-cid-3rkrlumz]{object-fit:cover;filter:saturate(.9)contrast(1.02);width:100%;height:100%;transition:transform .5s var(--ease-out-quart), filter .5s ease;transform:translateZ(0)}.gallery-card[data-astro-cid-3rkrlumz]:hover .gallery-img[data-astro-cid-3rkrlumz]{filter:saturate()contrast(1.04);transform:scale(1.035)translateZ(0)}.gallery-content[data-astro-cid-3rkrlumz]{flex-direction:column;flex-grow:1;justify-content:space-between;gap:1.25rem;padding:1.25rem;display:flex}.gallery-header-group[data-astro-cid-3rkrlumz]{flex-direction:column;gap:.5rem;display:flex}.gallery-meta[data-astro-cid-3rkrlumz]{align-items:center;gap:.5rem;display:flex}.meta-badge[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground);background:var(--site-surface-2);border:1px solid var(--site-divider);border-radius:.25rem;padding:.15rem .45rem;font-size:.625rem}.meta-year[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);color:var(--muted-foreground);font-size:.6875rem}.gallery-title[data-astro-cid-3rkrlumz]{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--foreground);margin:0;font-size:1.0625rem;font-weight:600;line-height:1.3}@media (width>=640px){.gallery-title[data-astro-cid-3rkrlumz]{font-size:1.125rem}}.gallery-title[data-astro-cid-3rkrlumz] a[data-astro-cid-3rkrlumz]{color:inherit;transition:color var(--dur-feedback);text-decoration:none}.gallery-title[data-astro-cid-3rkrlumz] a[data-astro-cid-3rkrlumz]:hover{color:var(--site-accent)}.gallery-desc[data-astro-cid-3rkrlumz]{font-family:var(--font-sans);color:var(--muted-foreground);margin:0;font-size:.8125rem;line-height:1.55}.gallery-footer-group[data-astro-cid-3rkrlumz]{border-top:1px solid var(--site-divider);flex-direction:column;gap:.875rem;padding-top:.875rem;display:flex}.gallery-tech-pills[data-astro-cid-3rkrlumz]{flex-wrap:wrap;gap:.3rem;display:flex}.tech-pill[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);color:var(--muted-foreground);background:var(--site-surface-2);border:1px solid var(--site-divider);border-radius:.25rem;padding:.15rem .45rem;font-size:.6875rem}.gallery-actions[data-astro-cid-3rkrlumz]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn-action[data-astro-cid-3rkrlumz]{font-family:var(--font-sans);transition:all var(--dur-feedback) var(--ease-out-quart);touch-action:manipulation;border-radius:.45rem;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.75rem;font-weight:550;text-decoration:none;display:inline-flex}.btn-action--primary[data-astro-cid-3rkrlumz]{background:var(--foreground);color:var(--background);border:1px solid var(--foreground)}.btn-action--primary[data-astro-cid-3rkrlumz]:hover{opacity:.85}.btn-action--secondary[data-astro-cid-3rkrlumz]{background:var(--site-surface-1);color:var(--foreground);border:1px solid var(--site-divider)}.btn-action--secondary[data-astro-cid-3rkrlumz]:hover{background:var(--site-surface-2);border-color:color-mix(in oklch, var(--foreground) 30%, var(--site-divider))}.badge-internal-system[data-astro-cid-3rkrlumz]{font-family:var(--font-mono);color:var(--muted-foreground);background:color-mix(in oklch, var(--site-surface-2) 65%, transparent);border:1px solid var(--site-border-subtle);letter-spacing:.02em;user-select:none;border-radius:.45rem;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.6875rem;font-weight:500;display:inline-flex}.internal-icon[data-astro-cid-3rkrlumz]{opacity:.7}.gallery-title-static[data-astro-cid-3rkrlumz]{color:var(--foreground);cursor:default}
