/* Sandy Photography — derived from V10 assets/styles.css (gallery). Do not edit tokens here; use Elementor Site Settings. */
body.sandy-surface-home:not(.elementor-editor-active){overflow:hidden;height:100dvh}
.infinite-home{width:100%;height:100dvh;position:relative;isolation:isolate;overflow:hidden}
.wall-scroll{position:absolute;inset:0;z-index:3;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior-y:contain;scroll-behavior:auto}
.wall-scroll::-webkit-scrollbar{display:none}
.wall-panels{position:relative;width:100%}
.wall-panel{position:relative;width:100%;height:max(900px,112vh);overflow:hidden;isolation:isolate}
.home-wordmark{position:fixed;left:50%;top:51%;transform:translate(-50%,-50%);z-index:1;text-align:center;pointer-events:none;white-space:nowrap;font:900 clamp(42px,5vw,98px)/1 var(--sandy-display);letter-spacing:-.05em;word-spacing:-.05em;text-transform:uppercase}
.wall-photo{position:absolute;display:block;z-index:4;overflow:hidden;transform:translateZ(0);width:var(--w);left:var(--x);top:var(--y);height:var(--h);outline-offset:6px}
.wall-photo img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--sandy-ease),filter .65s;will-change:transform}
.wall-photo:hover img{transform:scale(1.045);filter:contrast(1.04)}
.wall-photo:focus-visible{outline:2px solid #111}
.home-mist{z-index:8}
.home-hint{position:fixed;z-index:16;right:22px;bottom:12px;font:400 10px/1.2 var(--sandy-body);letter-spacing:.065em;color:#373737;pointer-events:none}
@media (min-width:1500px){.home-wordmark{font-size:5.25vw}}
@media (max-width:900px){.home-wordmark{font-size:7.1vw}.wall-panel{height:110svh;min-height:680px}.wall-photo{width:calc(var(--w)*1.4);height:calc(var(--h)*.88)}}
@media (max-width:650px){.wall-panel{height:105svh;min-height:630px}.home-wordmark{font-size:7.25vw;letter-spacing:-.07em;top:50%}.wall-photo{height:var(--h);width:var(--w)}.wall-photo:nth-child(1){width:32%!important;height:18%!important;top:1%!important;left:-14%!important}.wall-photo:nth-child(2){width:34%!important;height:30%!important;top:8%!important;left:16%!important}.wall-photo:nth-child(3){width:37%!important;height:16%!important;top:17%!important;left:71%!important}.wall-photo:nth-child(4){display:none}.wall-photo:nth-child(5){width:33%!important;height:26%!important;top:38%!important;left:-11%!important}.wall-photo:nth-child(6){width:35%!important;height:24%!important;top:58%!important;left:21%!important}.wall-photo:nth-child(7){width:38%!important;height:24%!important;top:67%!important;left:73%!important}.wall-photo:nth-child(8){width:34%!important;height:20%!important;top:35%!important;left:75%!important}.wall-photo:nth-child(9){width:30%!important;height:14%!important;top:89%!important;left:-5%!important}.wall-photo:nth-child(10){width:32%!important;height:15%!important;top:94%!important;left:43%!important}.home-hint{display:none}}
.wall-panel{height:var(--panel-h,1900px);min-height:0;overflow:hidden}
.wall-scroll{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}
.wall-photo{--reveal-offset:18px;opacity:0;transform:translate3d(0,var(--reveal-offset),0);transition:opacity .9s cubic-bezier(.2,.65,.22,1),transform .9s cubic-bezier(.2,.65,.22,1);contain:layout style}
.wall-photo.is-revealed{opacity:1;transform:translate3d(0,0,0)}
.has-gsap .wall-photo{transition:none}
.wall-photo img{width:100%;height:100%;object-fit:cover;will-change:auto;transition:transform .7s var(--sandy-ease),filter .7s ease}
.wall-photo:hover img{transform:scale(1.028);filter:contrast(1.018)}
@media (max-width:900px){.wall-panel{height:var(--panel-h,1900px);min-height:0}.wall-photo{width:auto;height:auto}}
@media (max-width:650px){.wall-panel{height:var(--panel-h,2100px);min-height:0}.wall-photo,.wall-photo:nth-child(n){display:block;top:auto;left:auto;width:auto;height:auto}.wall-photo:nth-child(n){top:revert;left:revert;width:revert;height:revert}.home-wordmark{font-size:7.25vw}}
@media (prefers-reduced-motion:reduce){.wall-photo{opacity:1;transform:none}}
.menu-open .wall-scroll{overflow:hidden!important}
.wall-photo{backface-visibility:hidden;transform:translateZ(0);}
.wall-photo img{transition:transform .64s var(--motion-arrive),filter .64s ease}
@media (hover:hover) and (pointer:fine){.wall-photo:hover img{transform:scale(1.018);filter:contrast(1.012)}}
.wall-photo.is-revealed{opacity:1;clip-path:inset(0% 0 0 0)}
@media (prefers-reduced-motion:reduce){.wall-photo,.wall-photo.is-revealed{clip-path:none;transform:none;opacity:1}.wall-photo img:hover{transform:none!important}}
.wall-scroll{position:absolute;inset:0;z-index:3;overflow-y:auto;overflow-x:hidden;touch-action:pan-y}
.wall-panels{position:sticky;top:0;left:0;width:100%;height:100dvh;overflow:hidden;pointer-events:none;isolation:isolate}
.wall-scroll-spacer{height:170000px;width:1px;pointer-events:none}
.wall-lane{position:absolute;top:0;bottom:0;left:var(--lane-x);width:var(--lane-w);overflow:hidden;pointer-events:none;contain:layout paint}
.wall-lane-track{position:absolute;top:0;left:0;right:0;will-change:transform;pointer-events:none}
.wall-lane .wall-photo,.wall-lane .wall-photo:nth-child(n){display:block;position:absolute;left:var(--local-x)!important;top:var(--local-y)!important;width:var(--tile-w)!important;height:var(--tile-h)!important;pointer-events:auto;overflow:hidden;contain:layout paint}
.wall-lane .wall-photo img{height:100%;width:100%;object-fit:cover}
.wall-lane .wall-photo[aria-hidden="true"]{pointer-events:auto}
@media (max-width:650px){.wall-lane{overflow:hidden}.home-wordmark{font-size:7.25vw}}
@media (prefers-reduced-motion:reduce){.wall-lane .wall-photo{opacity:1;clip-path:none!important;transform:none!important}.wall-lane-track{will-change:auto}}
.wall-lane .wall-photo{opacity:1;}
.wall-lane .wall-photo img{object-fit:cover}
.elastic-home-canvas{position:absolute;inset:0;z-index:5;pointer-events:none;display:block}
.elastic-ready .wall-lane .wall-photo img{opacity:0!important}
.elastic-ready .wall-photo:focus-visible{z-index:6;outline:2px solid #111}
@media (prefers-reduced-motion:reduce){.elastic-home-canvas{display:none}.elastic-ready .wall-lane .wall-photo img{opacity:1!important}}
