.site-shell:has(.photo-gallery){display:flex;flex-direction:column;max-width:none;height:100svh;min-height:100svh;overflow:hidden;padding:18px 28px}body:has(.photo-gallery){height:100svh;overflow-x:hidden;overflow-y:hidden;background:#b0b0b0;color:#252525}body:has(.photo-gallery)::before,body:has(.photo-gallery)::after{display:none}body:has(.photo-gallery) .site-header{display:none}body:has(.photo-gallery) main{display:flex;flex:1;min-height:0;overflow:hidden}body:has(.photo-gallery) .site-badges-area,body:has(.photo-gallery) footer{display:none}.photo-gallery{--gallery-blue:#e34d91;--gallery-pink:#f08aa4;display:grid;position:relative;flex:1;grid-template-rows:auto 1fr auto;width:100%;height:100%;min-height:0;overflow:hidden;padding:18px 0 22px}.photo-gallery.is-wall{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.photo-gallery.is-wall .gallery-grid{cursor:default;touch-action:pan-y}.photo-gallery::after{content:"";position:fixed;right:0;bottom:0;left:0;z-index:35;height:94px;pointer-events:none;opacity:0;background:linear-gradient( to bottom,rgba(176,176,176,0) 0%,rgba(176,176,176,0.12) 22%,rgba(176,176,176,0.62) 66%,#b0b0b0 100% );-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 36%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 36%,#000 100%);transition:opacity 420ms ease}.photo-gallery.is-wall::after{opacity:1}.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;color:rgba(255,255,255,0.92);font-family:var(--font-mono);font-size:11px;letter-spacing:0.02em;line-height:1.3}.gallery-heading h1{margin:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:lowercase}.gallery-heading h1 span{opacity:0.62}.gallery-about{color:inherit;font:inherit;font-weight:400;letter-spacing:inherit;text-decoration:none;text-transform:lowercase}.gallery-about:hover,.gallery-about:focus-visible{color:var(--text)}.gallery-grid{position:relative;align-self:center;width:100%;height:min(74svh,760px);min-height:500px;margin:0 auto;isolation:isolate;--parallax-x:0px;--parallax-y:0px;--cloud-rotation:0deg;transform:rotate(var(--cloud-rotation));transform-origin:center;cursor:grab;touch-action:pan-y;transition:transform 900ms cubic-bezier(.2,.8,.2,1)}.gallery-grid.is-dragging{cursor:grabbing;transition:none}.gallery-grid::before,.gallery-grid::after{content:"";position:absolute;top:50%;left:50%;width:min(58vw,680px);aspect-ratio:1;border:1px dashed color-mix(in srgb,var(--text-muted) 20%,transparent);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.94);opacity:.28;transition:opacity 500ms ease,transform 700ms cubic-bezier(.2,.8,.2,1)}.gallery-grid::after{width:min(34vw,390px);border-style:dotted;opacity:.18;transform:translate(-50%,-50%) scale(.7)}.gallery-grid.is-shaped::before{opacity:.14;transform:translate(-50%,-50%) scale(1.06)}.gallery-card{position:absolute;top:0;left:0;z-index:var(--card-z,0);width:var(--card-w,110px);height:var(--card-h,90px);margin:0;outline:0;visibility:hidden;cursor:zoom-in;transform:translate3d(calc(var(--card-x, 0px) + var(--drift-x, 0px)),calc(var(--card-y, 0px) + var(--drift-y, 0px)),0) rotate(var(--card-r,0deg)) scale(1);transform-origin:50% 50%;transition:transform 700ms cubic-bezier(0.2,0.85,0.25,1),width 700ms cubic-bezier(0.2,0.85,0.25,1),height 700ms cubic-bezier(0.2,0.85,0.25,1),opacity 180ms ease,filter 280ms ease;will-change:transform}.gallery-grid.is-ready .gallery-card{visibility:visible}.gallery-card img{display:block;width:100%;height:100%;border:2px solid rgba(255,255,255,0.72);border-radius:2px;object-fit:contain;background:color-mix(in srgb,var(--surface) 82%,white);box-shadow:0 10px 28px rgba(45,38,29,.12),0 2px 4px rgba(45,38,29,.08);transition:border-radius 280ms ease,box-shadow 280ms ease}.gallery-card figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.gallery-card:hover,.gallery-card:focus-visible,.gallery-card.is-active{z-index:80;transform:translate3d(calc(var(--card-x, 0px) + var(--drift-x, 0px)),calc(var(--card-y, 0px) + var(--drift-y, 0px)),0) rotate(0deg) scale(1.07);filter:saturate(1.08)}.gallery-card:hover img,.gallery-card:focus-visible img,.gallery-card.is-active img{border-radius:2px;box-shadow:0 18px 42px rgba(45,38,29,.2),0 4px 9px rgba(45,38,29,.12)}.gallery-grid.is-shaped .gallery-card img{box-shadow:0 8px 22px rgba(0,0,0,0.16)}.gallery-card:focus-visible img{outline:2px solid var(--gallery-blue);outline-offset:2px}.gallery-shapes{position:fixed;bottom:18px;left:24px;z-index:90;display:flex;justify-content:flex-start;align-items:center;gap:2px;padding:8px 12px 0;font:11px/1.2 var(--font-mono);color:rgba(0,0,0,0.72)}.gallery-shape-menu{position:static;display:flex;gap:2px;width:0;max-width:0;overflow:hidden;padding:0;border:0;background:transparent;opacity:0;pointer-events:none;transform:translateX(-5px);transition:opacity 260ms ease,max-width 420ms cubic-bezier(.2,.8,.2,1),transform 360ms cubic-bezier(.2,.8,.2,1)}.gallery-shapes:hover .gallery-shape-menu,.gallery-shapes:focus-within .gallery-shape-menu{width:max-content;max-width:560px;opacity:1;pointer-events:auto;transform:translateX(0)}.gallery-shape-menu button{padding:0 8px;border:0;border-radius:0;color:rgba(0,0,0,0.42);font:400 17px/1 var(--font-body);white-space:nowrap}.gallery-shape-menu button:hover,.gallery-shape-menu button.active{background:transparent;color:#111}.gallery-shapes:hover .gallery-shape-arrow,.gallery-shapes:hover .gallery-shape-current,.gallery-shapes:focus-within .gallery-shape-arrow,.gallery-shapes:focus-within .gallery-shape-current{display:none}.gallery-shapes button{padding:5px 7px;border:0;border:1px solid transparent;border-radius:999px;background:transparent;color:rgba(0,0,0,0.46);font:inherit;cursor:pointer;transition:color 180ms ease,border-color 180ms ease,background 180ms ease,transform 180ms ease}.gallery-shape-arrow{width:24px;padding-right:3px!important;padding-left:3px!important;color:rgba(0,0,0,0.3)!important;font-family:var(--font-body)!important;font-size:24px!important;line-height:13px!important}.gallery-shape-current{min-width:70px;color:rgba(0,0,0,0.86)!important;text-align:center}.gallery-shapes:hover .gallery-shape-arrow,.gallery-shapes:focus-within .gallery-shape-arrow,.gallery-shape-arrow:hover{color:#111!important}.gallery-shape-current:hover,.gallery-shape-current:focus-visible{border-color:color-mix(in srgb,var(--gallery-blue) 40%,transparent);background:color-mix(in srgb,var(--gallery-blue) 10%,transparent);color:#111;transform:translateY(-1px)}.gallery-preview{position:fixed;top:var(--preview-y,16px);left:var(--preview-x,16px);z-index:1000;display:grid;place-items:center;width:var(--preview-w,auto);height:var(--preview-h,auto);pointer-events:none;opacity:0;transform:translateY(14px) scale(0.92);transform-origin:var(--preview-origin,center);transition:opacity 320ms ease,transform 420ms cubic-bezier(0.22,1,0.36,1),top 280ms ease,left 280ms ease,width 280ms ease,height 280ms ease}.gallery-preview.is-placing{transition:none}.gallery-preview.is-visible{opacity:1;transform:translateY(0) scale(1)}.gallery-preview img{display:block;width:100%;height:100%;border:2px solid var(--gallery-blue,#1d5cff);border-radius:15px;object-fit:contain;background:var(--surface);box-shadow:0 16px 48px rgba(0,0,0,0.22)}.gallery-preview-meta,.gallery-preview-caption{position:absolute;z-index:2;padding:4px 8px;background:var(--gallery-blue,#1d5cff);color:#fff;font:500 11px/1.25 var(--font-mono);white-space:nowrap}.gallery-preview-meta{top:-1px;left:-1px}.gallery-preview-caption{right:-1px;bottom:-1px}@media (max-width:768px){.gallery-heading{gap:12px}.gallery-grid{width:100%;height:680px;min-height:680px}}@media (hover:none),(pointer:coarse){.gallery-card{cursor:pointer}}@media (max-width:520px){.site-shell:has(.photo-gallery){padding:16px}.photo-gallery{height:100%;min-height:0;padding-top:14px}.gallery-grid{width:100%;height:700px;min-height:700px}.gallery-shapes{bottom:12px;left:8px}}@media (prefers-reduced-motion:reduce){.gallery-card,.gallery-preview{transition-duration:1ms}}html[data-crt="on"] body:has(.photo-gallery)::before,html[data-crt="on"] body:has(.photo-gallery)::after{display:none}html[data-crt="on"] .site-shell:has(.photo-gallery){text-shadow:none}