.gallery-lightbox{z-index:9999;background-color:var(--color-modal-backdrop);-webkit-backdrop-filter:blur(16px);opacity:0;visibility:hidden;pointer-events:none;border:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;transition:opacity .28s cubic-bezier(.16,1,.3,1),visibility .28s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;overflow:hidden}.gallery-lightbox--open{opacity:1;visibility:visible;pointer-events:auto}.gallery-lightbox__content{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.gallery-lightbox__close{top:var(--space-m);right:var(--space-m);z-index:10;width:3rem;height:3rem;color:var(--color-surface);background:color-mix(in srgb, var(--color-ink) 50%, transparent);cursor:pointer;border:none;border-radius:50%;place-items:center;padding:0;transition:background-color .2s,transform .2s;display:grid;position:absolute}.gallery-lightbox__close:hover{background:color-mix(in srgb, var(--color-ink) 80%, transparent);transform:scale(1.06)}.gallery-lightbox__media{width:100%;height:100%;padding:var(--space-2xl) var(--space-m);justify-content:center;align-items:center;display:flex}.gallery-lightbox__media img{object-fit:contain;border-radius:var(--radius-m);max-width:100%;max-height:100%;box-shadow:0 2rem 4rem color-mix(in srgb, var(--color-ink) 30%, transparent);opacity:0;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1);transform:scale(.94)}.gallery-lightbox--open .gallery-lightbox__media img{opacity:1;transform:scale(1)}.gallery-lightbox__caption{bottom:var(--space-xl);z-index:10;opacity:0;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1);position:absolute;transform:translateY(.5rem)}.gallery-lightbox--open .gallery-lightbox__caption{opacity:1;transform:translateY(0)}.gallery-lightbox__controls{pointer-events:none;padding:0 var(--space-m);justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.gallery-lightbox__arrow{pointer-events:auto;width:3.5rem;height:3.5rem;color:var(--color-surface);background:color-mix(in srgb, var(--color-ink) 50%, transparent);cursor:pointer;border:none;border-radius:50%;place-items:center;padding:0;transition:background-color .2s,transform .2s;display:grid}.gallery-lightbox__arrow:hover{background:color-mix(in srgb, var(--color-ink) 80%, transparent);transform:scale(1.08)}.gallery-lightbox__arrow--next:hover{background:color-mix(in srgb, var(--color-surface) 30%, transparent);transform:scale(1.08)}.gallery-lightbox__arrow--prev svg{transform:rotate(180deg)}@media (width<48rem){.gallery-lightbox__controls{top:auto;bottom:var(--space-l);padding:0 var(--space-xl)}.gallery-lightbox__caption{bottom:6rem}}.gallery-page{color:var(--color-ink);background:var(--color-page)}.gallery-page__content{padding-bottom:var(--section-spacing);background:var(--color-page)}.gallery-page__main{padding:clamp(var(--space-l), 5vw, var(--space-2xl));border:1px solid var(--color-border);border-radius:var(--radius-l);background:linear-gradient(135deg, color-mix(in srgb, var(--color-purple-soft) 26%, var(--color-surface)), color-mix(in srgb, var(--color-blue-soft) 16%, var(--color-surface)));box-shadow:var(--shadow-card)}.gallery-page__heading{text-align:center;width:min(100%,48rem);margin-inline:auto}.gallery-page__label{margin-bottom:var(--space-xs);color:var(--color-purple);letter-spacing:.14em}.gallery-page__heading h2{color:var(--color-ink);letter-spacing:var(--letter-spacing-section-title);text-wrap:balance}.gallery-page__heading>p:last-child{margin-top:var(--space-s);color:var(--color-ink-soft);line-height:var(--line-height-body);text-wrap:balance}.gallery-categories{gap:var(--space-s);margin-top:var(--space-xl);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.gallery-category{--gallery-category-accent:var(--color-purple);--gallery-category-soft:var(--color-purple-soft);gap:var(--space-xs);min-width:0;min-height:4.5rem;padding:var(--space-xs) var(--space-s);border:1px solid color-mix(in srgb, var(--gallery-category-accent) 17%, var(--color-border));border-radius:var(--radius-m);color:var(--color-ink);background:color-mix(in srgb, var(--gallery-category-soft) 38%, var(--color-surface));box-shadow:0 .5rem 1.4rem color-mix(in srgb, var(--color-ink) 3%, transparent);font-family:var(--font-heading);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-compact);grid-template-columns:2.85rem minmax(0,1fr);align-items:center;text-decoration:none;display:grid}.gallery-category--purple{--gallery-category-accent:var(--color-purple);--gallery-category-soft:var(--color-purple-soft)}.gallery-category--green{--gallery-category-accent:var(--color-green-dark);--gallery-category-soft:var(--color-green-soft)}.gallery-category--blue{--gallery-category-accent:var(--color-blue-dark);--gallery-category-soft:var(--color-blue-soft)}.gallery-category--yellow{--gallery-category-accent:color-mix(in srgb, var(--color-yellow), var(--color-ink) 28%);--gallery-category-soft:var(--color-yellow-soft)}.gallery-category__icon{aspect-ratio:1;width:2.85rem;color:var(--gallery-category-accent);background:var(--color-surface);border-radius:50%;place-items:center;display:grid}.gallery-grid{gap:var(--space-xl);margin-top:var(--space-l);flex-direction:column;display:flex}.gallery-category-section{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(13rem,auto);grid-auto-flow:dense;gap:var(--space-m);scroll-margin-top:var(--section-spacing);display:grid}.gallery-card{--gallery-card-accent:var(--color-purple);--gallery-card-soft:var(--color-purple-soft);aspect-ratio:4/3;border:1px solid color-mix(in srgb, var(--gallery-card-accent) 16%, var(--color-border));border-radius:var(--radius-m);background:var(--color-surface);min-width:0;height:100%;box-shadow:var(--shadow-card);cursor:pointer;margin:0;position:relative;overflow:hidden}@media (width>=48rem){.gallery-category-section .gallery-card:nth-child(5n+1){aspect-ratio:16/9;grid-column:span 2}.gallery-category-section .gallery-card:nth-child(5n+3){aspect-ratio:3/4;grid-row:span 2}.gallery-category-section .gallery-card:nth-child(5n+4){aspect-ratio:16/9;grid-column:span 2}}.gallery-card--purple{--gallery-card-accent:var(--color-purple);--gallery-card-soft:var(--color-purple-soft)}.gallery-card--green{--gallery-card-accent:var(--color-green-dark);--gallery-card-soft:var(--color-green-soft)}.gallery-card--blue{--gallery-card-accent:var(--color-blue-dark);--gallery-card-soft:var(--color-blue-soft)}.gallery-card--yellow{--gallery-card-accent:color-mix(in srgb, var(--color-yellow), var(--color-ink) 28%);--gallery-card-soft:var(--color-yellow-soft)}.gallery-card__media{position:absolute;inset:0;overflow:hidden}.gallery-card__media:after{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--color-ink) 18%, transparent));content:"";pointer-events:none;height:42%;position:absolute;inset:auto 0 0}.gallery-card__media img{object-fit:cover;width:100%;height:100%!important;aspect-ratio:unset!important}.gallery-card__placeholder{align-content:center;justify-items:center;gap:var(--space-xs);padding:var(--space-m);color:var(--gallery-card-accent);background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--gallery-card-soft) 82%, transparent), transparent 58%), linear-gradient(135deg, color-mix(in srgb, var(--gallery-card-soft) 58%, var(--color-surface)), var(--color-surface));font-family:var(--font-heading);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);text-align:center;display:grid;position:absolute;inset:0}.gallery-card figcaption{right:var(--space-s);bottom:var(--space-s);left:var(--space-s);z-index:2;width:fit-content;max-width:calc(100% - (var(--space-s) * 2));align-items:center;gap:var(--space-xs);border:1px solid color-mix(in srgb, var(--gallery-card-accent) 13%, var(--color-border));border-radius:var(--radius-pill);color:var(--color-ink);background:color-mix(in srgb, var(--color-surface) 94%, transparent);box-shadow:0 .4rem 1rem color-mix(in srgb, var(--color-ink) 7%, transparent);font-family:var(--font-heading);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);line-height:var(--line-height-compact);-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);padding:.55rem .9rem;display:inline-flex;position:absolute}.gallery-card__caption-icon{aspect-ratio:1;width:2rem;color:var(--gallery-card-accent);background:var(--gallery-card-soft);border-radius:50%;flex:none;place-items:center;display:grid}.gallery-category:focus-visible{outline:3px solid color-mix(in srgb, var(--color-purple) 52%, transparent);outline-offset:3px}@media (hover:hover){.gallery-category,.gallery-card,.gallery-card__media img{transition:transform .18s,box-shadow .18s,border-color .18s,filter .18s}.gallery-category:hover{border-color:var(--gallery-category-accent);box-shadow:0 .8rem 1.8rem color-mix(in srgb, var(--gallery-category-accent) 8%, transparent);transform:translateY(-.12rem)}.gallery-card:hover{border-color:color-mix(in srgb, var(--gallery-card-accent) 34%, var(--color-border));box-shadow:0 1.2rem 2.8rem color-mix(in srgb, var(--color-ink) 7%, transparent);transform:translateY(-.2rem)}.gallery-card:hover .gallery-card__media img{transform:scale(1.025)}}@media (width<64rem){.gallery-categories,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<48rem){.gallery-page__main{padding:var(--space-m);border-radius:var(--radius-m)}.gallery-categories,.gallery-category-section{grid-template-columns:1fr}.gallery-category-section .gallery-card{aspect-ratio:16/11!important;grid-area:auto!important}.gallery-category{min-height:4rem}.gallery-card{aspect-ratio:16/11}.gallery-cta{padding:var(--space-m);border-radius:var(--radius-m);grid-template-columns:1fr;justify-items:start}}@media (width<30rem){.gallery-card figcaption{right:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);max-width:calc(100% - (var(--space-xs) * 2))}}@media (prefers-reduced-motion:reduce){.gallery-category,.gallery-card,.gallery-card__media img{transition:none}.gallery-category:hover,.gallery-card:hover,.gallery-card:hover .gallery-card__media img{transform:none}}
