.gallery-container{max-width:1400px;margin:0 auto;padding:4rem 2rem 6rem}.gallery-container h1{letter-spacing:-.03em;text-transform:uppercase;margin-bottom:.25rem;font-size:4rem;font-weight:700}.gallery-container h1 sup{vertical-align:super;opacity:.5;letter-spacing:.05em;font-size:1rem;font-weight:400}.gallery-container>.page-subtitle{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.15em;opacity:.5;margin-bottom:2rem;font-size:.85rem;font-weight:400}.gallery-cat-menu{gap:3px;height:66vh;min-height:420px;margin-bottom:0;display:flex;overflow:hidden}@keyframes menuSlideUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}@keyframes menuSlideDown{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.gallery-cat-menu.menu-exit{animation:.38s cubic-bezier(.4,0,1,1) forwards menuSlideUp}.gallery-cat-menu.menu-enter{animation:.5s cubic-bezier(0,0,.2,1) forwards menuSlideDown}@keyframes cardIn{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.gallery-cat-card{cursor:pointer;min-width:0;animation:.65s cubic-bezier(.22,1,.36,1) both cardIn;animation-delay:calc(var(--card-i)*75ms);background:0 0;border:1px solid #f8f5f20f;flex:1;padding:0;transition:flex .65s cubic-bezier(.22,1,.36,1),border-color .35s;position:relative;overflow:hidden}.gallery-cat-card:hover{border-color:#f8f5f238;flex:3.2}.gallery-cat-card.cat-unavailable{cursor:default}.cat-bg{position:absolute;inset:0}.cat-bg img{filter:brightness(.45)saturate(.75);transition:transform .85s cubic-bezier(.22,1,.36,1),filter .5s}.gallery-cat-card:hover .cat-bg img{filter:brightness(.62)saturate(1.05);transform:scale(1.09)}.gallery-cat-card.cat-unavailable .cat-bg img{filter:brightness(.3)saturate(.4)}.cat-overlay{background:linear-gradient(#0808080a 0%,#08080840 50%,#080808f0 100%);position:absolute;inset:0}.cat-content{flex-direction:column;gap:0;padding:1.6rem 1.4rem;display:flex;position:absolute;bottom:0;left:0;right:0}.cat-label-vert{writing-mode:vertical-rl;text-orientation:mixed;text-transform:uppercase;letter-spacing:.18em;color:var(--warm-off-white,#f8f5f2);opacity:.42;white-space:nowrap;pointer-events:none;align-self:flex-start;margin-bottom:.6rem;font-size:.68rem;font-weight:700;transition:opacity .3s;transform:rotate(180deg)}.cat-full{opacity:0;pointer-events:none;flex-direction:column;gap:.22rem;transition:opacity .35s 80ms,transform .35s cubic-bezier(.22,1,.36,1) 80ms;display:flex;transform:translateY(10px)}.gallery-cat-card:hover .cat-label-vert{opacity:0}.gallery-cat-card:hover .cat-full{opacity:1;transform:translateY(0)}.cat-jp{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;letter-spacing:.16em;opacity:.38;color:var(--warm-off-white,#f8f5f2);font-size:.62rem}.cat-label{text-transform:uppercase;letter-spacing:.03em;color:var(--warm-off-white,#f8f5f2);margin-top:.1rem;font-size:1.45rem;font-weight:700;line-height:1.1}.cat-count{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.38;color:var(--warm-off-white,#f8f5f2);margin-top:.3rem;font-size:.62rem}.cat-soon{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.14em;opacity:.28;color:var(--warm-off-white,#f8f5f2);margin-top:.3rem;font-size:.62rem}.cat-arrow{color:var(--warm-off-white,#f8f5f2);opacity:0;margin-top:.6rem;font-size:1.1rem;transition:opacity .3s .15s,transform .3s .15s;display:inline-block;transform:translate(-8px)}.gallery-cat-card:hover .cat-arrow{opacity:.65;transform:translate(0)}.gallery-cat-card.cat-unavailable:hover .cat-arrow{display:none}@keyframes gridFadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes gridFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-14px)}}.gallery-grid-mode,.gallery-grid-mode.grid-enter{animation:.5s cubic-bezier(.22,1,.36,1) forwards gridFadeUp}.gallery-grid-mode.grid-exit{animation:.32s cubic-bezier(.4,0,1,1) forwards gridFadeOut}.gallery-grid-topbar{align-items:center;gap:1.5rem;margin-bottom:3rem;display:flex}.gallery-change-btn{color:var(--warm-off-white,#f8f5f2);font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;opacity:.55;white-space:nowrap;background:0 0;border:1px solid #f8f5f22e;flex-shrink:0;padding:.45rem 1rem;font-size:.7rem;transition:opacity .25s,border-color .25s}.gallery-change-btn:hover{opacity:1;border-color:#f8f5f280}.gallery-active-cat{text-transform:uppercase;letter-spacing:.1em;color:var(--warm-off-white,#f8f5f2);flex-shrink:0;font-size:.78rem;font-weight:700}.gallery-active-jp{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;opacity:.35;letter-spacing:.06em;font-size:.62rem;font-weight:400}.gallery-soon-state{text-align:center;font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.18em;opacity:.28;padding:8rem 0;font-size:.82rem}.gallery-search-wrapper{align-items:center;width:100%;display:flex;position:relative}.gallery-search-icon{color:var(--warm-off-white,#f8f5f2);opacity:.3;pointer-events:none;font-size:.75rem;position:absolute;left:.75rem}.gallery-search{color:var(--warm-off-white,#f8f5f2);font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;background:0 0;border:1px solid #f8f5f226;outline:none;width:100%;padding:.5rem 1rem .5rem 2.25rem;font-size:.85rem;transition:border-color .3s}.gallery-search::placeholder{color:var(--warm-off-white,#f8f5f2);opacity:.3}.gallery-search:focus{border-color:#f8f5f266}.gallery-no-results{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.4;text-align:center;grid-column:1/-1;padding:4rem 0;font-size:.85rem}.gallery-section{margin-bottom:4rem}.gallery-section-title{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.15em;opacity:.4;margin-bottom:1.5rem;font-size:.75rem;font-weight:400}.album-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.album-grid.has-active .album-card{opacity:.28}.album-grid.has-active .album-card.active,.album-card.active .album-info{opacity:1}.album-card{color:inherit;will-change:transform;text-decoration:none;transition:opacity .3s,transform .12s,box-shadow .4s;display:block;position:relative;overflow:hidden}.album-card.active{transform:perspective(560px)rotateX(var(--rx,0deg))rotateY(var(--ry,0deg));z-index:2;box-shadow:0 16px 52px #000000c7,0 0 18px #8c00121f}.album-card:before{content:"";z-index:4;pointer-events:none;opacity:0;background:repeating-linear-gradient(#0000 0 3px,#00000012 3px 4px);transition:opacity .4s;position:absolute;inset:0}.album-card.active:before{opacity:1}.album-card:after{content:"";z-index:4;pointer-events:none;background:linear-gradient(calc(var(--ry-num,0)*4*1deg + 90deg),#d2001c38 0%,#d2001c14 18%,transparent 32%,transparent 68%,#00bed214 82%,#00bed22e 100%);mix-blend-mode:screen;opacity:0;transition:opacity .35s;position:absolute;inset:0}.album-card.active:after{opacity:1}.album-cover{aspect-ratio:3/4;position:relative;overflow:hidden}.album-cover img{object-fit:cover;width:100%;height:100%;transition:transform .15s;display:block}.album-card.active .album-cover img{transform:scale(1.1)translate(calc(var(--par-x,0px)*.38),calc(var(--par-y,0px)*.38))}.album-card:not(.active):hover .album-cover img{transform:scale(1.05)}.album-info{opacity:0;background:linear-gradient(#0000 40%,#1a191733 60%,#1a1917d9 100%);flex-direction:column;justify-content:flex-end;padding:1.25rem;transition:opacity .4s,transform .12s;display:flex;position:absolute;inset:0}.album-card:hover .album-info{opacity:1}.album-card.active .album-info{opacity:1;transform:translate(calc(var(--par-x,0px)*-.18),calc(var(--par-y,0px)*-.18))}.album-title{text-transform:uppercase;letter-spacing:.05em;color:var(--warm-off-white,#f8f5f2);background:linear-gradient(var(--warm-off-white,#f8f5f2),var(--warm-off-white,#f8f5f2))no-repeat left center;background-size:0% 100%;padding:1px 3px;font-size:1rem;font-weight:700;transition:background-size .28s,color .2s}.album-card.active .album-title{color:#0c0b0a;background-size:100% 100%}.album-description{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;letter-spacing:.05em;opacity:.7;color:var(--warm-off-white,#f8f5f2);margin-top:.25rem;font-size:.7rem;font-weight:400}.album-count{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.5;color:var(--warm-off-white,#f8f5f2);margin-top:.25rem;font-size:.7rem}.masonry-grid{columns:3;column-gap:1rem}.masonry-item{break-inside:avoid;cursor:pointer;margin-bottom:1rem;position:relative;overflow:hidden}.masonry-item img,.masonry-item video{width:100%;transition:transform .6s cubic-bezier(.25,.46,.45,.94),filter .4s;display:block}.masonry-item:hover img,.masonry-item:hover video{transform:scale(1.05)}.masonry-play-icon{color:var(--warm-off-white,#f8f5f2);opacity:.6;pointer-events:none;font-size:.75rem;position:absolute;top:.75rem;right:.75rem}.masonry-overlay{opacity:0;background:linear-gradient(#0000 50%,#1a1917cc 100%);flex-direction:column;justify-content:flex-end;padding:1.25rem;transition:opacity .4s;display:flex;position:absolute;inset:0}.masonry-item:hover .masonry-overlay{opacity:1}.masonry-overlay span{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--warm-off-white,#f8f5f2);font-size:.75rem}.photo-description{text-transform:none;letter-spacing:.05em;opacity:.7;margin-top:.25rem;font-size:.7rem;font-weight:400;display:block}.lightbox-description{text-transform:none;letter-spacing:.05em;opacity:.7;margin-top:.5rem;font-size:.7rem;font-weight:400;display:block}.lightbox-backdrop{z-index:1000;cursor:zoom-out;overscroll-behavior:none;touch-action:none;background:#000000eb;justify-content:center;align-items:center;animation:.3s lbFadeIn;display:flex;position:fixed;inset:0}@keyframes lbFadeIn{0%{opacity:0}to{opacity:1}}.lightbox-backdrop img,.lightbox-backdrop video{object-fit:contain;cursor:default;border:1px solid #f8f5f214;max-width:90vw;max-height:85vh}.lightbox-caption{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.6;color:var(--warm-off-white,#f8f5f2);font-size:.75rem;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}.lightbox-nav{color:var(--warm-off-white,#f8f5f2);cursor:pointer;background:0 0;border:1px solid #f8f5f226;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.5rem;transition:border-color .3s,background .3s;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#f8f5f20d;border-color:#f8f5f266}.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}.lightbox-close{color:var(--warm-off-white,#f8f5f2);font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:1px solid #f8f5f226;padding:.5rem 1rem;font-size:.75rem;transition:border-color .3s,background .3s;position:fixed;top:1.5rem;right:1.5rem}.lightbox-close:hover{background:#f8f5f20d;border-color:#f8f5f266}.gallery-nav-links{gap:2rem;margin-bottom:2rem;display:flex}.gallery-back{font-family:var(--font-pp-supply-mono),"PP Supply Mono",monospace;text-transform:uppercase;letter-spacing:.1em;opacity:.5;color:var(--warm-off-white,#f8f5f2);font-size:.75rem;text-decoration:none;transition:opacity .3s;display:inline-block}.gallery-back:hover{opacity:1}@media (max-width:1024px){.album-grid{grid-template-columns:repeat(2,1fr)}.masonry-grid{columns:2}}@media (max-width:768px){.gallery-container{padding:3rem 1rem 4rem}.gallery-container h1{font-size:3.5rem}.gallery-cat-menu{flex-direction:column;gap:2px;height:auto}.gallery-cat-card{flex:none;height:23vmax;min-height:130px;transition:none}.gallery-cat-card:hover{flex:none}.cat-label-vert{display:none}.cat-full{opacity:1!important;transition:none!important;transform:none!important}.cat-arrow{display:none}.gallery-grid-topbar{flex-wrap:wrap;gap:.75rem}.album-grid{grid-template-columns:repeat(2,1fr)}.masonry-grid{columns:2}}
