/* Layout and component styles. Desktop and mobile overrides retain cascade order. */
*{box-sizing:border-box}
:root{font-family:Arial,'Helvetica Neue',sans-serif;font-size:12px;color:#111;background:#fff}
body{margin:0}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible{outline:1px solid #111;outline-offset:4px}
button:hover{text-decoration:underline}
button{touch-action:manipulation}
[hidden]{display:none!important}
#landing{height:100svh;overflow:hidden;background:#111}
#enter{display:block;border:0;padding:0;width:100%;height:100%;background:#111}
#enter img{width:100%;height:100%;object-fit:cover;display:block;animation:breathe 14s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.025)}}
#site{min-height:100svh;padding:28px 4vw}
nav button,#close{border:0;background:none;text-align:left;padding:0;min-height:32px}
.project-link{display:block}
.people{display:flex;gap:36px}
h1,h2{font-size:12px;font-weight:400;margin:0;line-height:1.5}
h1 span{display:block;font-size:12px}
.links{display:flex;flex-direction:column;align-items:flex-start}
.links button{min-height:32px}
dialog{position:fixed;inset:28px 4vw 28px 28vw;margin:0;width:auto;max-width:none;height:calc(100svh - 56px);max-height:none;border:0;padding:0 24px 24px;background:#fff;color:#111;overflow:auto;overscroll-behavior:contain;box-shadow:0 0 0 1px #efefef}
dialog::backdrop{background:rgba(255,255,255,.38)}
body.popup-open{overflow:hidden}
.popup-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:#fff;padding:10px 0 18px;z-index:1}
#close{min-height:44px;min-width:44px;text-align:right}
.gallery{display:grid;gap:70px}
figure{margin:0}
.gallery img{display:block;width:100%;height:auto}
.gallery figure:nth-child(even){width:78%;margin-left:auto}
figcaption{font-size:12px;line-height:1.5;margin-top:6px}
footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;padding:60px 0 12px;line-height:1.6;font-size:12px}
.information{min-height:240px;padding:48px 0;line-height:1.8}
.information p{margin:0 0 24px}
.muted{color:#666}
.photo-button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
#lightbox{inset:12px;margin:0;width:calc(100% - 24px);height:calc(100svh - 24px);box-shadow:none}
#lightbox::backdrop{background:rgba(255,255,255,.96)}
#large-image{display:block}
#image-close{right:18px;top:6px;min-width:44px;border:0;background:white}
@media(min-width:800px){#enter img{object-fit:contain}}
@media(max-width:799px){dialog{inset:72px 10px 10px;width:auto;height:calc(100svh - 82px);padding:0 8px 18px}.gallery figure:nth-child(even){width:100%}footer{grid-template-columns:1fr;gap:20px}.popup-header{padding-top:0}}
@media(prefers-reduced-motion:reduce){#enter img{animation:none}}
.project-group{height:56px}
.people{margin-top:38px}
.name-trigger{line-height:1.5}
.name-trigger span{display:block}
.submenu{visibility:hidden;opacity:0;pointer-events:none}
.menu-group.is-open>.submenu{visibility:visible;opacity:1;pointer-events:auto}
.links{margin-top:10px}
.links button,.project-group .submenu button{min-height:24px;line-height:24px}
@media(max-width:799px){.links button{min-height:28px;line-height:28px}}
.photography-archive{padding-top:22px}
.work-list{display:grid;justify-items:start;gap:4px}
.work-list p{margin:0 0 12px}
.work-link{border:0;background:none;padding:4px 0;font-size:12px;line-height:20px;text-align:left}
.work-link[aria-expanded="true"]{text-decoration:underline}
.archive-viewer{margin-top:32px}
.archive-photo{border:0;padding:0;background:none;text-align:left;cursor:pointer}
.archive-photo:disabled{cursor:default}
.archive-image{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100svh - 180px);object-fit:contain}
.archive-viewer [role="status"]:empty{display:none}
.album-list{padding-top:22px;display:grid;gap:10px}
.album-trigger{border:0;background:none;padding:4px 0;font-size:12px;line-height:24px;text-align:left}
.album-tracks{list-style:none;margin:0;padding:12px 16px 16px;border:1px solid #efefef;background:#fff}
.album-tracks a{display:block;color:#111;text-decoration:none;font-size:12px;line-height:1.6;padding:5px 0}
.album-tracks a:hover,.album-tracks a:focus-visible{text-decoration:underline}
.album-trigger[aria-expanded="true"]{text-decoration:underline}
#popup-content{min-height:calc(100% - 72px)}
.contact-links a{display:block;width:fit-content;color:inherit;text-decoration:none;margin-bottom:10px}
.contact-links a:hover{text-decoration:underline}
.archive-photo{width:fit-content;max-width:100%}
.image-toolbar{position:sticky;top:0;z-index:3;background:#fff;display:flex;flex-shrink:0}
#lightbox{padding:0 12px 12px}
#image-close{position:static;min-height:48px;padding:0 12px}
@media(max-width:799px){:root{font-size:13px}#site{padding:20px max(20px,env(safe-area-inset-right)) 32px max(20px,env(safe-area-inset-left))}#landing{height:100dvh;min-height:100svh}.people{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.project-group{height:88px}nav button,.links button,.project-group .submenu button{min-height:44px;line-height:1.4;min-width:88px;padding:8px 0;font-size:13px}h1,h2,h1 span{font-size:13px}.name-trigger{min-height:52px}.links{margin-top:4px}#popup{inset:0;width:100%;height:100dvh;max-height:100dvh;padding:env(safe-area-inset-top) 20px max(24px,env(safe-area-inset-bottom));box-shadow:none}.popup-header{padding:0;min-height:64px;gap:16px;border-bottom:1px solid #f2f2f2;margin-bottom:16px}#close{min-width:64px;min-height:48px;text-align:right;font-size:13px}.popup-header h2{line-height:1.4}#popup-content{min-height:calc(100% - 96px)}.information{padding:20px 0;font-size:13px;overflow-wrap:anywhere}.gallery{gap:28px}footer{padding-top:32px;padding-bottom:40px}.album-list,.photography-archive{padding-top:4px}.album-trigger,.work-link{min-height:44px;font-size:13px;line-height:1.6;padding:10px 0}.album-tracks{padding:8px 12px}.album-tracks a{min-height:44px;padding:12px 0;font-size:13px}.contact-links a{min-height:44px;padding:10px 0;margin:0;font-size:13px}.archive-viewer{margin-top:16px}.archive-image{max-height:calc(100dvh - 190px)}#lightbox{inset:0;width:100%;height:100dvh;max-height:100dvh;padding:env(safe-area-inset-top) 12px max(12px,env(safe-area-inset-bottom))}#large-image{height:calc(100% - 48px)}}
button,a{-webkit-tap-highlight-color:transparent}
button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}
@media(hover:none),(max-width:799px){button:focus,a:focus{outline:none}.album-tracks{border:0;padding-left:0}}
.archive-photo{touch-action:pan-y pinch-zoom}
.archive-image{user-select:none;-webkit-user-drag:none}
#lightbox{display:none;overflow:hidden}
#lightbox[open]{display:flex;flex-direction:column}
.image-toolbar{justify-content:flex-end}
.image-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}
#large-image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;flex-shrink:1}
footer button{border:0;background:none;font:inherit;color:inherit;text-align:left;padding:0;line-height:1.6;cursor:pointer}
.footer-tracks{display:grid;gap:4px}
.album-tracks span{display:block;font-size:12px;line-height:1.6;padding:5px 0}
@media(max-width:799px){footer button{min-height:44px}.album-tracks span{font-size:13px;min-height:44px;padding:12px 0}}
.submenu{transition:opacity 100ms ease-out,visibility 0s linear 100ms}
.menu-group.is-open>.submenu{transition:opacity 220ms ease-out,visibility 0s}
@media(prefers-reduced-motion:reduce){.submenu,.menu-group.is-open>.submenu{transition:none}}
.artist-info{max-width:100%}
.artist-info p{margin:0}
.info-portrait{display:block;max-width:40vw;padding:0;border:0;background:none;cursor:zoom-in}
.info-portrait img{display:block;width:100%;height:auto}
.archive-photo{display:grid;justify-items:start;align-items:start}
.archive-photo .archive-image{grid-area:1 / 1}
.artist-info{width:100%}
.info-portrait{width:128px;margin:100px 24px 0 auto}
@media(max-width:799px){.info-portrait{width:124px;margin:88px 0 0 auto}}
.album-trigger{display:inline-block;color:inherit;text-decoration:none}
.album-trigger:hover{text-decoration:underline}
.album-toggle{border:0;background:none;font:inherit;color:#666;margin-left:14px;padding:8px 0;min-height:32px}
@media(max-width:799px){.album-toggle{min-height:44px}}
@media(min-width:800px){#landing,#enter{background:#f2f2f2}#popup .gallery img{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 190px);object-fit:contain}#popup .gallery .photo-button{display:flex;justify-content:flex-start}#popup .gallery figure:nth-child(even) .photo-button{justify-content:flex-end}#popup .gallery figure:nth-child(even) figcaption{text-align:right}#popup .gallery figure{scroll-margin-top:84px}}

/* Stable, borderless photo interaction area; images crossfade at its center. */
.archive-photo{display:grid;width:100%;height:calc(100dvh - 220px);min-height:180px;place-items:center;overflow:hidden;touch-action:pan-y pinch-zoom}
.archive-photo .archive-image{grid-area:1 / 1;width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain}
@media(max-width:799px){.archive-photo{height:calc(100dvh - 210px);min-height:160px}}

.archive-photo{background:#f2f2f2}

@media(max-width:799px){
 .archive-viewer{width:100%;min-width:0}
 .archive-photo{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;width:100%;max-width:100%;height:clamp(240px,60svh,560px);min-height:0;padding:0;border:0;border-radius:0;background:#f2f2f2;overflow:hidden;touch-action:pan-y pinch-zoom;-webkit-appearance:none;appearance:none}
 .archive-photo .archive-image{grid-area:1 / 1;place-self:center;width:auto;height:auto;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:contain;pointer-events:none}
}

/* Stable composited layers: decode first, then blend over an opaque prior frame. */
.archive-photo{position:relative;isolation:isolate}
.archive-photo .archive-image{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#f2f2f2;will-change:opacity;pointer-events:none}

a.album-toggle{display:inline-block;text-decoration:none}a.album-toggle:hover,a.album-toggle:focus-visible{text-decoration:underline}

.photography-gallery{margin-top:32px;background:transparent}@media(max-width:799px){.photography-gallery{margin-top:20px}}
