/* Sandy Photography — derived from V10 assets/styles.css (shell). Do not edit tokens here; use Elementor Site Settings. */
.site-plus{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:120;width:46px;height:46px;background:transparent;border:0;display:grid;place-items:center;padding:0;transition:transform .45s var(--sandy-ease),color .3s;color:var(--sandy-black)}
.site-plus span{position:absolute;display:block;width:32px;height:3px;background:currentColor;transition:transform .48s var(--sandy-ease),background .3s}
.site-plus span:nth-child(2){transform:rotate(90deg)}
.menu-open .site-plus{color:var(--sandy-menu-text);transform:translateX(-50%) rotate(45deg)}
.site-plus:hover{transform:translateX(-50%) scale(1.08)}
.menu-open .site-plus:hover{transform:translateX(-50%) rotate(45deg) scale(1.08)}
.fullscreen-menu{position:fixed;inset:0;z-index:100;visibility:hidden;opacity:0;pointer-events:none;background:var(--sandy-menu-bg);overflow:hidden;transition:opacity .42s ease,visibility 0s linear .42s;font-family:var(--sandy-display);color:var(--sandy-menu-text)}
.menu-open .fullscreen-menu{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .42s ease,visibility 0s}
.menu-open{overflow:hidden}
.menu-portrait{position:absolute;right:0;top:0;height:100%;width:63%;object-fit:cover;object-position:48% 45%;filter:grayscale(1);opacity:.97}
.menu-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--sandy-menu-shade) 0%,var(--sandy-menu-shade) 43%,color-mix(in srgb,var(--sandy-menu-shade) 93%,transparent) 50%,transparent 59%)}
/* Full-width progressive blur (V10 had a 35%-wide grey box that read as a broken blur). Text sits above it. */
.fullscreen-menu::after{content:"";position:absolute;left:0;right:0;bottom:0;height:31%;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 35%,#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 35%,#000 100%);pointer-events:none;z-index:1}
.menu-main{position:absolute;z-index:2;top:19%;left:9%;display:flex;flex-direction:column;align-items:flex-start;gap:clamp(12px,2.6vh,34px);font-size:clamp(56px,6vw,116px);font-weight:900;line-height:.97;letter-spacing:-.045em}
.menu-main a{white-space:nowrap}
.menu-social{position:absolute;bottom:11%;left:9%;z-index:2;display:flex;flex-wrap:wrap;gap:clamp(18px,2.5vw,42px);font:900 clamp(16px,1.5vw,25px)/1 var(--sandy-display)}
.menu-bio{position:absolute;right:2.5%;bottom:6.5%;z-index:2;max-width:clamp(170px,19vw,350px);text-align:right;color:var(--sandy-menu-bio);font:400 clamp(12px,.9vw,15px)/1.36 var(--sandy-body);text-transform:none}
.menu-bio strong{display:block;font-size:16px;font-weight:500;margin-bottom:5px}
.menu-bio p{margin:0}
.bottom-mist{position:fixed;left:0;right:0;bottom:0;z-index:12;pointer-events:none;height:clamp(110px,20vh,220px);isolation:isolate}
.bottom-mist::before{content:"";position:absolute;inset:0;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.25) 18%,black 80%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.25) 18%,black 80%)}
.bottom-mist::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--sandy-paper) 0%,transparent),color-mix(in srgb,var(--sandy-paper) 12%,transparent) 23%,color-mix(in srgb,var(--sandy-paper) 60%,transparent) 70%,var(--sandy-paper) 100%)}
@media (max-width:900px){.menu-main{left:8%;font-size:clamp(54px,9.6vw,86px)}.menu-portrait{right:0;width:75%;object-position:45%}.menu-shade{background:linear-gradient(90deg,var(--sandy-menu-shade) 0%,var(--sandy-menu-shade) 35%,color-mix(in srgb,var(--sandy-menu-shade) 88%,transparent) 55%,color-mix(in srgb,var(--sandy-menu-shade) 5%,transparent) 100%)}.menu-bio{right:4%;max-width:44%;font-size:11px}}
@media (max-width:650px){.site-plus{top:6px;width:43px;height:43px}.site-plus span{width:28px;height:2px}.menu-main{top:21%;left:8%;font-size:clamp(54px,12vw,85px);gap:19px}.menu-portrait{right:0;width:100%;opacity:.5;object-position:63%}.menu-shade{background:linear-gradient(90deg,color-mix(in srgb,var(--sandy-menu-shade) 98%,transparent) 0%,color-mix(in srgb,var(--sandy-menu-shade) 81%,transparent) 63%,color-mix(in srgb,var(--sandy-menu-shade) 26%,transparent) 100%)}.menu-social{left:8%;bottom:22%;gap:15px;font-size:13px}.menu-bio{bottom:7%;left:8%;right:8%;max-width:84%;text-align:left;color:var(--sandy-menu-text);font-size:12px}.menu-bio strong{font-size:14px}.bottom-mist{height:160px}}
.page-transition-overlay{position:fixed;inset:0;z-index:999;background:var(--sandy-paper);pointer-events:none;opacity:0;transition:opacity .26s cubic-bezier(.2,.8,.2,1)}
.is-navigating .page-transition-overlay{opacity:1}
.page-transition-overlay{z-index:200;opacity:0;background:var(--sandy-paper);pointer-events:none}
.fullscreen-menu{transition:opacity .34s var(--motion-arrive),visibility 0s linear .34s}
.menu-open .fullscreen-menu{transition:opacity .4s var(--motion-arrive),visibility 0s}
.site-plus{transform:translateX(-50%)!important;transition:opacity .2s ease!important}
.site-plus:hover{transform:translateX(-50%) scale(1.035)!important}
.menu-svg{position:absolute;display:block;width:30px;height:30px;object-fit:contain;transition:opacity .2s ease,transform .26s cubic-bezier(.2,.8,.25,1);pointer-events:none}
.menu-svg-close{opacity:0;transform:rotate(-15deg);filter:invert(1)}
.menu-open .menu-svg-open{opacity:0;transform:rotate(15deg)}
.menu-open .menu-svg-close{opacity:1;transform:rotate(0)}
.menu-audio{position:absolute;z-index:3;left:9%;bottom:4.4%;display:flex;align-items:center;gap:clamp(20px,3vw,44px);font:800 14px/1 var(--sandy-body);letter-spacing:.075em;color:var(--sandy-menu-text)}
.menu-audio button{border:0;padding:9px 0;background:none;color:inherit;font-weight:800;white-space:nowrap;letter-spacing:inherit}
.menu-audio label{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.045em;white-space:nowrap}
.menu-audio input{width:clamp(74px,8vw,115px);accent-color:#fff;cursor:pointer}
.menu-audio input:disabled{opacity:.35;cursor:default}
@media (max-width:650px){.menu-audio{left:6%;bottom:3.6%;font-size:12px;gap:14px}.menu-audio label{font-size:10px;gap:7px}.menu-audio input{width:68px}}
