/* Photography shares the site's palette, with quieter typography and image-led spacing. */
.photos-demo-note{border-left:2px solid var(--blue);padding-left:14px;color:#b4bdd2;font-size:13px;margin-bottom:28px}.photos-albums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:54px 28px}.photos-album{min-width:0}.photos-album-cover{position:relative;overflow:hidden;border-radius:14px;background:#171a20;aspect-ratio:4/3}.photos-album-cover img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s}.photos-album-open{position:absolute;bottom:20px;right:20px;padding:9px 16px;background:#0a0d12cc;backdrop-filter:blur(12px);border:1px solid #ffffff26;border-radius:40px;font-size:13px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}.photos-album-label{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-top:20px}.photos-album-label h2{font-size:clamp(22px,2vw,30px);font-weight:500;line-height:1.2;text-transform:none;letter-spacing:-.035em}.photos-album-label>span{font-size:13px;color:var(--muted);flex-shrink:0}.photos-album-project{font-size:13px;color:var(--muted);margin-top:5px}.photos-empty{padding:50px 0 100px}.photos-empty h2{font-size:32px;text-transform:none;font-weight:500}.photos-empty p{color:var(--muted);margin:20px 0 28px}.photos-gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:20px 0 28px;font-size:13px;color:#aeb3c0}.photos-gallery-toolbar>div{display:flex;align-items:center;gap:22px}.photos-project-link{color:var(--link)}.photos-density{border:1px solid var(--line);border-radius:30px;min-height:44px;padding:7px 17px;color:var(--ink);background:transparent;font-size:13px;white-space:nowrap}.photos-density[aria-pressed=true]{background:#ffffff12}.photos-masonry{column-count:3;column-gap:18px}.photos-masonry.is-compact{column-count:4}.photos-tile{display:block;break-inside:avoid;position:relative;margin-bottom:18px;border-radius:9px;overflow:hidden;background:#151820;-webkit-tap-highlight-color:transparent}.photos-tile figure{position:relative}.photos-tile img{width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s}.photos-tile figcaption{position:absolute;bottom:0;left:0;right:0;padding:50px 18px 17px;background:linear-gradient(transparent,#000b);color:#fff;font-size:14px;line-height:1.4;opacity:0;transition:opacity .25s;pointer-events:none}.photos-tile-open{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:34px;height:34px;background:#0a0d1299;border-radius:50%;opacity:0;transition:opacity .25s;font-size:18px}.photos-tile:focus-visible figcaption,.photos-tile:focus-visible .photos-tile-open,.photos-album:focus-visible .photos-album-open{opacity:1;transform:none}.photos-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(hover:hover){.photos-album:hover .photos-album-cover img,.photos-tile:hover img{transform:scale(1.025);filter:brightness(.94)}.photos-album:hover .photos-album-open,.photos-tile:hover figcaption,.photos-tile:hover .photos-tile-open{opacity:1;transform:none}.photos-density:hover{border-color:#ffffff70}}
/* Native dialog supplies modal focus containment; custom controls remain touch-sized. */
.photos-viewer{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#080a0ef5;color:#f3f4f8;overscroll-behavior:contain;overflow:hidden;z-index:100}.photos-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.photos-viewer::backdrop{background:#080a0e}.photos-viewer button{color:inherit;min-width:44px;min-height:44px;background:transparent;border-radius:8px;line-height:1.1;font-size:23px;touch-action:manipulation;flex-shrink:0}.photos-viewer button:hover{background:#ffffff12}.photos-viewer button:disabled{opacity:.3;cursor:default}.photos-viewer button:focus-visible{outline-offset:-3px}.photos-viewer-bar{padding:max(12px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 10px max(24px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;gap:20px;min-width:0;z-index:2}.photos-viewer-heading{min-width:0;display:flex;align-items:baseline;gap:20px}.photos-viewer-heading h2{font-size:17px;line-height:1.4;font-weight:500;text-transform:none;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-viewer-heading>span{font-size:12px;color:#aab1c1;white-space:nowrap}.photos-viewer-tools{display:flex;align-items:center;gap:3px}.photos-viewer-tools [data-photo-reset]{font-size:12px;min-width:65px;font-variant-numeric:tabular-nums}.photos-viewer-tools svg{width:21px;height:21px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.photos-tool-divider{height:20px;width:1px;background:#ffffff24;margin:0 9px}.photos-viewer-main{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;position:relative;overflow:hidden}.photos-viewer.info-open .photos-viewer-main{grid-template-columns:minmax(0,1fr) 310px}.photos-stage{position:relative;min-width:0;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none;cursor:zoom-in}.photos-stage.is-zoomed{cursor:grab}.photos-stage.is-interacting.is-zoomed{cursor:grabbing}.photos-stage>[data-photo-image]{max-width:calc(100% - 80px);max-height:calc(100% - 18px);width:auto;height:auto;object-fit:contain;flex-shrink:0;will-change:transform;transform-origin:center;user-select:none;-webkit-user-drag:none;pointer-events:none}.photos-stage.is-smooth>[data-photo-image]{transition:transform .22s cubic-bezier(.2,.7,.2,1)}.photos-load-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;font-size:14px;color:#aab1c1;pointer-events:none}.photos-load-state a{color:var(--link);text-decoration:underline;pointer-events:auto}.photos-stage>.photos-previous,.photos-stage>.photos-next{position:absolute;top:50%;transform:translateY(-50%);z-index:1;width:46px;height:58px;font-size:39px;background:#171a2199;border:1px solid #ffffff10;backdrop-filter:blur(8px)}.photos-previous{left:12px}.photos-next{right:12px}.photos-viewer-caption{min-height:53px;max-height:100px;overflow:auto;text-align:center;padding:10px 24px 5px}.photos-viewer-caption>p{font-size:14px;line-height:1.45;color:#d5d9e3;white-space:pre-line}.photos-viewer-help{display:block;color:#737e92;font-size:11px;margin-top:4px}.photos-filmstrip{display:flex;align-items:center;gap:7px;width:100%;padding:9px max(22px,env(safe-area-inset-right)) max(13px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#566077 transparent;scroll-padding-inline:35vw;min-height:86px}.photos-filmstrip:before,.photos-filmstrip:after{content:'';flex:1 0 12px}.photos-filmstrip button{width:56px;height:56px;padding:3px;border:2px solid transparent;border-radius:6px;opacity:.55;overflow:hidden;min-width:56px;background:transparent;transition:opacity .2s,border-color .2s}.photos-filmstrip button img{width:100%;height:100%;object-fit:cover;border-radius:2px}.photos-filmstrip button[aria-current=true]{opacity:1;border-color:#98b2ff}.photos-filmstrip button:hover{opacity:1}.photos-information{border-left:1px solid #ffffff16;padding:22px 24px 28px;overflow:auto;overscroll-behavior:contain;background:#11141a}.photos-information-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.photos-information-header h3{font-size:15px;font-weight:500;letter-spacing:0}.photos-information-header button{font-size:25px;margin:-10px -12px}.photos-information h4{font-size:20px;line-height:1.35;font-weight:500;letter-spacing:-.02em;margin:0 0 12px}.photos-information p{font-size:13px;line-height:1.6;color:#aeb6c6;white-space:pre-line}.photos-information dl{border-top:1px solid #ffffff16;margin:24px 0;padding-top:6px}.photos-information dl>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px;margin-top:17px;font-size:12px;line-height:1.5}.photos-information dt{color:#8791a5}.photos-information dd{margin:0;overflow-wrap:anywhere;color:#e2e6ef}.photos-information a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:var(--link);margin-top:18px}.photos-viewer:fullscreen{background:#080a0e}
@media(min-width:1500px){.photos-albums{gap:60px 34px}.photos-masonry{column-gap:24px}.photos-tile{margin-bottom:24px}}
@media(max-width:1050px){.photos-albums{grid-template-columns:repeat(2,minmax(0,1fr))}.photos-masonry{column-count:2}.photos-masonry.is-compact{column-count:3}.photos-viewer-heading{display:block}.photos-viewer-heading>span{display:block}}
@media(max-width:700px){.photos-albums{grid-template-columns:1fr;gap:34px}.photos-album-cover{border-radius:10px}.photos-album-label{margin-top:15px}.photos-album-open{opacity:1;transform:none;font-size:12px;padding:6px 13px;bottom:14px;right:14px}.photos-gallery-toolbar{gap:12px;align-items:flex-start;padding-bottom:20px;font-size:12px}.photos-gallery-toolbar>div{align-items:flex-end;flex-direction:column;gap:12px}.photos-project-link{max-width:190px;text-align:right;line-height:1.5}.photos-density{font-size:12px;padding:6px 13px;min-height:44px}.photos-masonry{column-gap:10px}.photos-tile{margin-bottom:10px;border-radius:6px}.photos-masonry.is-compact{column-count:3}.photos-tile figcaption,.photos-tile-open{display:none}.photos-viewer-bar{padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right));gap:4px}.photos-viewer-heading{padding-left:5px}.photos-viewer-heading h2{font-size:13px;max-width:35vw}.photos-viewer-heading>span{font-size:11px}.photos-viewer-tools{gap:0}.photos-viewer-tools [data-photo-reset]{min-width:48px;font-size:11px}.photos-tool-divider{display:none}.photos-viewer-tools button{min-width:40px;width:40px;min-height:44px}.photos-stage>[data-photo-image]{max-width:100%;max-height:100%}.photos-stage>.photos-previous,.photos-stage>.photos-next{width:40px;min-width:40px;height:50px;font-size:30px;top:auto;bottom:10px;transform:none;background:#111722a6}.photos-previous{left:10px}.photos-next{right:10px}.photos-viewer.info-open .photos-viewer-main{grid-template-columns:minmax(0,1fr)}.photos-information{position:absolute;bottom:0;right:0;left:0;z-index:2;max-height:min(65dvh,500px);border:1px solid #ffffff24;border-bottom:0;border-radius:18px 18px 0 0;padding:18px 24px 25px;box-shadow:0 -25px 80px #0008}.photos-information-header{margin-bottom:18px}.photos-information dl{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:18px 0}.photos-information dl>div{display:block;margin-top:14px}.photos-information dd{margin-top:4px}.photos-viewer-help{display:none}.photos-viewer-caption{padding:9px 18px 3px;min-height:40px;max-height:75px}.photos-viewer-caption p{font-size:13px}.photos-filmstrip{gap:5px;padding-top:8px;min-height:75px}.photos-filmstrip button{width:48px;min-width:48px;height:48px}.photos-demo-note{font-size:12px}}
@media(max-width:359px){.photos-masonry{column-count:1}.photos-masonry.is-compact{column-count:2}.photos-viewer-tools [data-photo-reset]{display:none}.photos-viewer-heading h2{max-width:36vw}}
@media(prefers-reduced-motion:reduce){.photos-page *, .photos-viewer *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.photos-credits{font-size:12px;color:var(--muted);line-height:1.7;border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.photos-credits summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.photos-credits summary:before{content:'+';margin-right:12px}.photos-credits[open] summary:before{content:'−'}.photos-credits ul{padding-left:20px}.photos-credits li+li{margin-top:10px}.photos-credits a{color:var(--link);text-decoration:underline}
.photos-album-label h2{overflow-wrap:anywhere}.photos-gallery-toolbar>div{min-width:0}.photos-project-link{overflow-wrap:anywhere}
@media(max-width:700px){.photos-viewer-tools button{min-width:44px;width:44px}.photos-viewer-tools [data-photo-reset]{min-width:48px;width:48px}}

.photo-gallery-page .heading-caption>:last-child{margin-bottom:0}
