:root { color-scheme:dark; --bg:#000; --ink:#f5f5f5; --muted:#b5b5b5; --blue:#fff; --rule:#383838; --sans:"Helvetica Neue",Helvetica,Arial,sans-serif; --display:Georgia,"Times New Roman",serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:5px; }
button { font:inherit; cursor:pointer; }
::selection { background:var(--blue); color:var(--bg); }
:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
[hidden] { display:none !important; }
.portfolio-shell { max-width:1320px; margin:auto; padding:0 clamp(20px,5vw,64px); }
.skip-link { position:absolute; left:20px; top:-100px; padding:12px; background:var(--ink); color:var(--bg); z-index:5; }
.skip-link:focus { top:10px; }
.portfolio-nav { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 0; border-bottom:1px solid var(--rule); }
.portfolio-brand { font:24px Georgia,serif; text-decoration:none; letter-spacing:-.025em; }
.portfolio-nav nav { display:flex; gap:28px; }
.portfolio-nav nav a { min-height:44px; display:inline-flex; align-items:center; font-size:14px; color:var(--muted); text-decoration:none; }
.portfolio-nav nav a:hover { color:var(--ink); }
.portfolio-intro { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:32px; padding:clamp(36px,4vw,56px) 0; }
h1 { font:400 clamp(48px,7vw,88px)/1.12 var(--display); letter-spacing:-.025em; margin:0; }
h1 span { color:var(--blue); }
.portfolio-intro p { color:var(--muted); font-size:15px; line-height:1.65; margin:18px 0 0; }
.portfolio-intro .portfolio-lede { font-size:clamp(20px,2vw,26px); line-height:1.4; color:var(--ink); margin:0; letter-spacing:-.025em; }
.portfolio-controls { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:0 0 24px; }
.portfolio-filters { display:flex; gap:8px 24px; flex-wrap:wrap; }
.portfolio-filters button { padding:10px 0; min-height:44px; border:0; border-bottom:2px solid transparent; color:var(--muted); background:none; font-size:14px; }
.portfolio-filters button[aria-pressed=true] { color:var(--blue); border-bottom-color:var(--blue); }
#portfolio-status { color:var(--muted); font-size:13px; white-space:nowrap; }
.portfolio-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:clamp(30px,5vw,68px) clamp(24px,4vw,48px); }
.portfolio-figure { margin:0; min-width:0; }
.portfolio-featured { grid-column:1/-1; }
.portfolio-image-link { display:block; }
.portfolio-figure img { display:block; width:100%; height:auto; background:#111; }
.portfolio-figure:not(.portfolio-featured) img { max-height:720px; object-fit:contain; object-position:left; background:none; }
.portfolio-figure figcaption { display:flex; justify-content:space-between; gap:12px; padding-top:12px; color:var(--muted); font-size:13px; line-height:1.5; }
.portfolio-figure figcaption span:first-child { color:var(--ink); }
.portfolio-contact { padding:clamp(64px,9vw,120px) 0; margin-top:clamp(48px,8vw,96px); border-top:1px solid var(--rule); display:flex; justify-content:space-between; align-items:end; gap:24px; }
h2 { margin:0; font:400 clamp(30px,4vw,48px)/1.2 var(--display); letter-spacing:-.035em; }
.portfolio-contact a { color:var(--blue); display:inline-flex; min-height:44px; align-items:center; }
.portfolio-contact p { font-size:13px; }
footer { display:flex; justify-content:space-between; gap:16px; border-top:1px solid var(--rule); padding:24px 0 36px; color:var(--muted); font-size:13px; }
footer a { min-height:44px; display:inline-flex; align-items:center; }
#photo-viewer { width:min(1280px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 24px); border:0; padding:16px; background:#000; color:var(--ink); }
#photo-viewer::backdrop { background:rgba(0,0,0,.96); }
.viewer-top,.viewer-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; }
#viewer-image { width:100%; height:min(72dvh,900px); object-fit:contain; display:block; }
#photo-viewer button { background:none; color:var(--ink); border:0; padding:12px; min-height:44px; font-size:14px; }
#photo-viewer button:hover { color:var(--blue); }
#viewer-caption,#viewer-position { font-size:13px; color:var(--muted); line-height:1.5; }
#viewer-caption { text-align:center; }
@media (max-width:700px) { .portfolio-nav { align-items:flex-start; flex-direction:column; gap:8px; padding:18px 0; } .portfolio-nav nav { gap:24px; } .portfolio-intro { grid-template-columns:1fr; gap:28px; } .portfolio-controls { align-items:start; flex-direction:column; gap:4px; } .portfolio-gallery { grid-template-columns:1fr; } .portfolio-contact { flex-direction:column; align-items:start; gap:30px; } .portfolio-filters { gap:4px 22px; } .portfolio-figure figcaption { font-size:12px; } .viewer-bottom { gap:4px; } }

.portfolio-collection-link{margin:0 0 28px;font-size:17px}.portfolio-collection-link a{display:inline-flex;align-items:center;min-height:44px}

/* Keep subject navigation available while browsing photographs. */
.portfolio-controls{position:sticky;top:0;z-index:3;background:#000;padding:12px 0;border-bottom:1px solid var(--rule);margin-bottom:28px}
@media(max-width:700px){.portfolio-filters{flex-wrap:nowrap;overflow-x:auto;width:100%;gap:22px;padding-bottom:4px}.portfolio-filters button{flex:none}.portfolio-controls{gap:0}#portfolio-status{margin:4px 0}}
