@font-face{font-family:Portfolio;src:url('inter-variable.woff2?v=693b77d4f32ee9b8') format('woff2');font-weight:100 900;font-display:optional}
:root{--black:#000;--white:#f5f5f3;--margin:32px;--gap:12px;--opening-height:100vh;--page-height:100vh;--chrome-clearance:0px;--title-size:clamp(64px,7vw,104px);--cover-space:calc(var(--opening-height) - var(--title-size)*1.92 - 180px);color-scheme:dark}
@supports(height:100dvh){:root{--opening-height:100dvh;--page-height:100lvh}}
@media(hover:none) and (pointer:coarse){:root{--chrome-clearance:max(48px,env(safe-area-inset-bottom))}}
*{box-sizing:border-box}
html{background:var(--black);scrollbar-color:#444 var(--black);scrollbar-width:thin}
body{margin:0;background:var(--black);color:var(--white);font-family:Portfolio,sans-serif}
::selection{background:#dadada;color:#000}
.opening{position:relative;min-height:var(--opening-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px var(--margin)}
.masthead{text-align:center;color:#d9d9d7}
.lead-photograph{--lead-height:min(440px,52svh,max(0px,var(--cover-space)));width:min(calc(100vw - var(--margin)*2),calc(var(--lead-height)*var(--cover-ratio,.75)));aspect-ratio:var(--cover-ratio,.75);max-width:100%}
.js .lead-photograph:not([data-cover-ready]){visibility:hidden}
.js .lead-photograph img{opacity:0}
.js .lead-photograph[data-image-ready] img:not(.lead-preview),.js .lead-photograph[data-preview-ready] .lead-preview{opacity:1}
@media(prefers-reduced-motion:no-preference){.js .lead-photograph img{transition:opacity 360ms cubic-bezier(.2,.55,.3,1)}}
.lead-photograph .photograph{position:relative;width:100%;height:100%;border-radius:16px;overflow:visible}
.lead-photograph img{border-radius:inherit}
.lead-photograph img:not(.lead-preview){position:relative;z-index:1}
.lead-photograph .lead-preview{position:absolute;inset:0;pointer-events:none}
h1{font:500 var(--title-size)/.96 Portfolio,sans-serif;margin:0;letter-spacing:-.03em;font-optical-sizing:auto}
h1 span{display:block}
main{width:calc(100% - var(--margin)*2);max-width:1440px;margin:max(24px,calc(var(--page-height) - var(--opening-height) + var(--chrome-clearance) + 24px)) auto 64px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
main[data-laid-out]{display:block}
.js main:not([data-laid-out]){visibility:hidden}
.photo-row{display:flex;gap:var(--gap);margin:0 auto var(--gap);align-items:flex-start}
.photograph{display:block;appearance:none;border:0;padding:0;margin:0;background:#000;color:var(--white);cursor:zoom-in;min-width:0;flex:none;overflow:visible;aspect-ratio:var(--ratio,auto)}
.photograph img{display:block;width:100%;height:100%;object-fit:contain;dynamic-range-limit:no-limit}
.photograph:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.photograph:hover{cursor:zoom-in}
.photograph.load-failed{outline:1px solid #555;outline-offset:-1px}
dialog{border:0;padding:0;margin:0;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:var(--black);color:var(--white)}
dialog[open]{display:flex;flex-direction:column}
dialog::backdrop{background:transparent}
.viewer-toolbar{display:flex;justify-content:flex-end;padding:calc(12px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) 0;flex:none;height:calc(62px + env(safe-area-inset-top))}
.viewer-stage{--viewer-side:64px;min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:0 max(var(--viewer-side),env(safe-area-inset-right)) 0 max(var(--viewer-side),env(safe-area-inset-left));touch-action:pan-y pinch-zoom}
.viewer-stage img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;dynamic-range-limit:no-limit}
.viewer-stage img:not([src]){visibility:hidden}
html.viewer-open{overflow:hidden;overscroll-behavior:none}
#viewer{overflow:hidden;overscroll-behavior:none}
#viewer-image{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.viewer-toolbar,.viewer-navigation{position:relative;z-index:2}
.viewer-outgoing,.viewer-stage .viewer-neighbor{position:fixed;max-width:none;max-height:none;object-fit:contain;pointer-events:none;dynamic-range-limit:no-limit}
.viewer-pending #viewer-image{opacity:.55}
@media(prefers-reduced-motion:no-preference){#viewer-image{transition:opacity 160ms ease-out}}
.viewer-navigation{display:flex;justify-content:center;gap:12px;height:calc(66px + env(safe-area-inset-bottom));padding:8px env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex:none}
.viewer-toolbar button,.viewer-navigation button{width:44px;height:44px;padding:11px;appearance:none;border:0;border-radius:0;background:transparent;color:var(--white);cursor:pointer}
@media(hover:hover) and (pointer:fine){.viewer-toolbar button:hover:not(:disabled),.viewer-navigation button:hover:not(:disabled){background:#191919}}
.viewer-toolbar button:active:not(:disabled),.viewer-navigation button:active:not(:disabled){background:#252525}
.viewer-toolbar button:focus-visible,.viewer-navigation button:focus-visible{outline:2px solid var(--white);outline-offset:0}
.viewer-navigation button:disabled{color:#4b4b4b;cursor:default}
svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square}
.skip{position:fixed;top:8px;left:8px;z-index:5;padding:12px;background:var(--white);color:#000;text-decoration:none;clip-path:inset(100%)}
.skip:focus{clip-path:none;outline:2px solid var(--white);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:900px){:root{--margin:20px;--gap:10px}.viewer-stage{--viewer-side:20px}}
@media(max-width:700px){:root{--title-size:clamp(52px,16vw,72px);--cover-space:calc(var(--opening-height) - var(--title-size)*1.92 - 176px)}.opening{gap:24px;padding:28px var(--margin)}.lead-photograph{--lead-height:min(400px,48svh,max(0px,var(--cover-space)))}main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){:root{--margin:12px;--gap:8px}main{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}.viewer-stage{--viewer-side:8px}.viewer-toolbar{padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 0;height:calc(56px + env(safe-area-inset-top))}.viewer-navigation{height:calc(72px + env(safe-area-inset-bottom))}}

.scroll-cue{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:#a5a5a3;text-decoration:none}
.scroll-cue svg{width:24px;height:24px;stroke-width:1.5}
.scroll-cue:hover{color:var(--white)}
.scroll-cue:focus-visible{outline:2px solid var(--white);outline-offset:2px}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(prefers-reduced-motion:no-preference){.scroll-cue svg{animation:scroll-nudge 1400ms ease-in-out 1000ms 3}.scroll-cue:hover svg,.scroll-cue:focus-visible svg{animation-play-state:paused}}

@media(min-width:1600px){.lead-photograph{--lead-height:min(560px,50svh,max(0px,var(--cover-space)))}}

@media(prefers-reduced-motion:no-preference){.viewer-toolbar button,.viewer-navigation button{transition:background-color 140ms ease-out,transform 120ms ease-out}.viewer-toolbar button:active,.viewer-navigation button:active:not(:disabled){transform:scale(.94)}}

/* A failed initializer still leaves the existing photographs readable. */
.portfolio-fallback main:not([data-laid-out]) .photograph{width:100%;height:auto}
.portfolio-fallback main:not([data-laid-out]) .photograph img{height:auto}
