.photo-app{--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffb8;--glass-bg-hover:#ffffffbf;--glass-border:#ffffff8c;--glass-highlight:#ffffffd9;--glass-shadow:0 8px 32px #00000026;--glass-shadow-soft:0 4px 16px #0000001f;background:radial-gradient(64rem 46rem at 12% 2%, #f5c87866, transparent 70%), radial-gradient(60rem 44rem at 86% 12%, #f7ae9261, transparent 68%), radial-gradient(60rem 44rem at 20% 24%, #f4a2c261, transparent 70%), radial-gradient(62rem 46rem at 84% 35%, #c8ace65c, transparent 68%), radial-gradient(66rem 48rem at 14% 47%, #a4b2ec5c, transparent 70%), radial-gradient(62rem 46rem at 84% 59%, #9aceee61, transparent 68%), radial-gradient(62rem 46rem at 22% 71%, #98dcd05c, transparent 70%), radial-gradient(58rem 42rem at 82% 83%, #f4a8c457, transparent 68%), radial-gradient(66rem 48rem at 16% 95%, #f5c88061, transparent 70%), radial-gradient(54rem 42rem at 52% 50%, #c4b4e62e, transparent 66%), var(--bg);min-height:100svh}@media (prefers-color-scheme:dark){.photo-app{--glass-bg:#1c1c2080;--glass-bg-strong:#1c1c20ad;--glass-bg-hover:#30303699;--glass-border:#ffffff24;--glass-highlight:#fff3;--glass-shadow:0 8px 32px #0000008c;--glass-shadow-soft:0 4px 16px #00000073;background:radial-gradient(64rem 46rem at 12% 2%, #e2aa4e57, transparent 68%), radial-gradient(60rem 44rem at 86% 12%, #e4866857, transparent 66%), radial-gradient(60rem 44rem at 20% 24%, #e27ea857, transparent 68%), radial-gradient(62rem 46rem at 84% 35%, #a084d857, transparent 66%), radial-gradient(66rem 48rem at 14% 47%, #6484da57, transparent 68%), radial-gradient(62rem 46rem at 84% 59%, #54acd857, transparent 66%), radial-gradient(62rem 46rem at 22% 71%, #5cc2b652, transparent 68%), radial-gradient(58rem 42rem at 82% 83%, #e286a252, transparent 66%), radial-gradient(66rem 48rem at 16% 95%, #e2aa5857, transparent 68%), radial-gradient(54rem 42rem at 52% 50%, #988eca33, transparent 64%), var(--bg)}}.photo-chip,.photo-lightbox__button{background:var(--glass-bg);-webkit-backdrop-filter:blur(18px)saturate(180%);backdrop-filter:blur(18px)saturate(180%);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-soft), inset 0 1px 0 var(--glass-highlight), inset 0 -1px 0 #0000000f}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.photo-chip,.photo-lightbox__button{background:var(--surface)}}.photo-topbar{z-index:100;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex;position:fixed;top:1rem;left:1rem;right:1rem}.photo-topbar>*,.photo-topbar__right>*{pointer-events:auto}.photo-topbar__right{align-items:center;gap:.5rem;display:flex}.photo-chip__short{display:none}.photo-chip{color:var(--text);border-radius:999px;margin:0;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:background .25s,transform .25s cubic-bezier(.2,.9,.3,1.2);display:inline-block}a.photo-chip:hover{background:var(--glass-bg-hover);transform:scale(1.04)}.photo-chip--title{font-family:var(--serif)}.photo-main{max-width:1400px;margin:0 auto;padding:6rem clamp(1rem,4vw,3rem) 2.5rem}.photo-intro{text-align:center;margin-bottom:clamp(2rem,5vw,3.5rem)}.photo-intro__title{letter-spacing:-.02em;font-size:clamp(2.25rem,5vw,3.5rem)}.photo-intro__tagline{color:var(--text-muted);margin:.75rem 0 0;font-size:clamp(.95rem,1.5vw,1.1rem)}.photo-masonry{align-items:flex-start;gap:1rem;display:flex}.photo-masonry__col{flex-direction:column;flex:1;gap:1rem;min-width:0;display:flex}@media (width<=600px){.photo-masonry,.photo-masonry__col{gap:.6rem}}.photo-masonry__item{cursor:pointer;width:100%;box-shadow:var(--glass-shadow-soft);background:0 0;border:none;border-radius:12px;margin:0;padding:0;transition:transform .3s cubic-bezier(.2,.9,.3,1.2);display:block;overflow:hidden}.photo-masonry__item:hover{transform:scale(1.02)}.photo-masonry__item:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.photo-masonry__item img{width:100%;height:auto;display:block}.photo-follow{text-align:center;margin-top:clamp(1.5rem,4vw,2.5rem)}.photo-follow__chip{max-width:100%;display:inline-block}.photo-categories{grid-template-columns:repeat(3,1fr);gap:clamp(.75rem,2vw,1.25rem);display:grid}@media (width<=900px){.photo-categories{grid-template-columns:repeat(2,1fr)}}.photo-category{aspect-ratio:4/3;box-shadow:var(--glass-shadow-soft);border-radius:16px;text-decoration:none;transition:transform .3s cubic-bezier(.2,.9,.3,1.2);display:block;position:relative;overflow:hidden}.photo-category:hover{transform:translateY(-3px)}.photo-category:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.photo-category__img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.9,.3,1.2)}.photo-category:hover .photo-category__img{transform:scale(1.05)}.photo-category__label{color:#fff;font-family:var(--serif);background:linear-gradient(#0000,#0000008c);justify-content:space-between;align-items:center;gap:.5rem;padding:2.5rem 1rem .9rem;font-size:clamp(1.05rem,2vw,1.35rem);display:flex;position:absolute;inset:auto 0 0}.photo-category__count{font-family:var(--sans);opacity:.85;background:#ffffff38;border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.photo-backchip{cursor:pointer;margin-bottom:1.25rem}.photo-about-button{cursor:pointer}.photo-about-backdrop{z-index:900;position:fixed;inset:0}.photo-about{z-index:950;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(18px)saturate(180%);backdrop-filter:blur(18px)saturate(180%);border:1px solid var(--glass-border);width:min(360px,100vw - 2rem);max-height:calc(100vh - 5.5rem);box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight), inset 0 -1px 0 #0000000f;transform-origin:100% 0;border-radius:24px;padding:1.5rem;animation:.35s cubic-bezier(.2,.9,.3,1.15) photo-pop;position:fixed;top:4.25rem;right:1rem;overflow-y:auto}@keyframes photo-pop{0%{opacity:0;transform:scale(.94)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.photo-about__header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.photo-about__title{font-size:1.5rem}.photo-about__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.2rem;line-height:1}.photo-about__portrait{object-fit:cover;border:1px solid var(--glass-border);width:96px;height:96px;box-shadow:var(--glass-shadow-soft);border-radius:50%;margin-top:1rem;display:block}.photo-about__name{color:var(--text-muted);margin:.4rem 0 0;font-size:.9rem}.photo-about__bio{white-space:pre-line;margin:.9rem 0 0;font-size:.95rem}.photo-about__links{border-top:1px solid var(--glass-border);flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;padding-top:1.15rem;display:flex}.photo-about__link{cursor:pointer}a.photo-about__link:hover{background:var(--glass-bg-hover);transform:scale(1.04)}.photo-lightbox{z-index:1000;-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);background:#00000073;justify-content:center;align-items:center;animation:.25s photo-fade-in;display:flex;position:fixed;inset:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.photo-lightbox{background:#000000d9}}@keyframes photo-fade-in{0%{opacity:0}to{opacity:1}}.photo-lightbox__image{object-fit:contain;max-width:90vw;max-height:85vh;box-shadow:var(--glass-shadow);border-radius:12px}.photo-lightbox__button{width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;transition:background .25s,transform .25s cubic-bezier(.2,.9,.3,1.2);display:flex;position:absolute}.photo-lightbox__button:hover{background:var(--glass-bg-hover);transform:scale(1.06)}.photo-lightbox__button:focus-visible{outline:2px solid var(--glass-highlight);outline-offset:2px}.photo-lightbox__counter{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;border-radius:999px;padding:.3rem .8rem;font-size:.85rem;position:absolute;top:1.4rem;left:1.4rem}.photo-lightbox__close{top:1rem;right:1rem}.photo-lightbox__prev{top:50%;left:1rem;transform:translateY(-50%)}.photo-lightbox__next{top:50%;right:1rem;transform:translateY(-50%)}.photo-lightbox__prev:hover,.photo-lightbox__next:hover{transform:translateY(-50%)scale(1.06)}@media (width<=640px){.photo-chip--back .photo-chip__label,.photo-chip--instagram .photo-chip__long{display:none}.photo-chip--instagram .photo-chip__short{display:inline}.photo-main{padding-top:5rem}}@media (prefers-reduced-motion:reduce){.photo-category,.photo-category__img,.photo-masonry__item,.photo-chip,.photo-lightbox,.photo-lightbox__button,.photo-about{transition:none;animation:none}}
