:root{--ph-canvas: #0c0e0f;--ph-surface: #191d1f;--ph-ink: #f0f1ed;--ph-muted: #a4aba8;--ph-accent: #b8cbb8;--ph-rule: rgba(240, 241, 237, .14);--ph-rule-strong: rgba(240, 241, 237, .3);--ph-header-height: 56px;--ph-shell-width: 1760px;--ph-gutter: clamp(16px, 2.5vw, 40px)}@media(min-width:768px){:root{--ph-header-height: 64px}}html{background:var(--ph-canvas);color-scheme:dark;scrollbar-color:var(--ph-accent) var(--ph-canvas);scrollbar-gutter:stable;scrollbar-width:thin}html.ph-viewer-open{overflow:hidden}body.ph-page{margin:0;background:var(--ph-canvas);color:var(--ph-ink);caret-color:var(--ph-accent);font-family:Satoshi,system-ui,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.ph-page ::selection{background:var(--ph-accent);color:var(--ph-canvas)}.ph-page :focus-visible{outline:2px solid var(--ph-accent);outline-offset:3px}.ph-page ::-webkit-scrollbar{width:10px;height:10px}.ph-page ::-webkit-scrollbar-track{background:var(--ph-canvas)}.ph-page ::-webkit-scrollbar-thumb{background:var(--ph-accent);border:3px solid var(--ph-canvas)}.ph-skip{position:absolute;top:12px;left:12px;z-index:100;padding:8px 12px;background:var(--ph-ink);color:var(--ph-canvas);font-size:.8125rem;text-decoration:none;transform:translateY(-200%)}.ph-skip:focus{transform:translateY(0)}.ph-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ph-shell{display:flex;flex-direction:column;width:100%;max-width:var(--ph-shell-width);min-height:100dvh;margin:0 auto;border-right:1px solid var(--ph-rule);border-left:1px solid var(--ph-rule)}.ph-header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;height:var(--ph-header-height);padding:0 var(--ph-gutter);border-bottom:1px solid var(--ph-rule)}.ph-wordmark{color:var(--ph-ink);font-size:.9375rem;font-weight:600;letter-spacing:-.02em;text-decoration:none}.ph-wordmark-media{color:var(--ph-muted);font-weight:400}.ph-header-nav{display:flex;align-items:center;gap:clamp(12px,2vw,24px);flex-shrink:0}.ph-header-link{color:var(--ph-muted);font-size:.8125rem;text-decoration:underline;text-decoration-color:var(--ph-rule-strong);text-decoration-thickness:1px;text-underline-offset:.35em}.ph-header-link:hover{color:var(--ph-ink);text-decoration-color:var(--ph-accent)}.ph-gallery,.ph-state{flex:1 0 auto}.ph-browse{display:inline-block;margin-top:2rem;color:var(--ph-ink);font-size:1rem;text-decoration:underline;text-decoration-color:var(--ph-accent);text-decoration-thickness:1px;text-underline-offset:.4em;transition:color .16s ease,text-decoration-color .16s ease}.ph-browse:hover{color:var(--ph-accent)}.ph-media-loader{position:absolute;inset:0;z-index:0;display:block;background:var(--ph-surface);pointer-events:none}.ph-media-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;background:var(--ph-surface);color:var(--ph-muted);font-size:.8125rem;text-align:center}.ph-media-error p{margin:0}.ph-text-button{padding:4px 0;border:0;background:none;color:var(--ph-ink);font:inherit;text-decoration:underline;text-decoration-color:var(--ph-rule-strong);text-decoration-thickness:1px;text-underline-offset:.35em;cursor:pointer}.ph-text-button:hover:not(:disabled){color:var(--ph-accent);text-decoration-color:var(--ph-accent)}.ph-text-button:disabled{color:var(--ph-muted);text-decoration:none;cursor:default;opacity:.5}.ph-index-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 32px;padding:28px var(--ph-gutter) 26px}.ph-index-title{margin:0;font-size:clamp(2.75rem,6vw,6rem);font-weight:600;line-height:1.06;letter-spacing:-.04em;overflow-wrap:anywhere}.ph-index-title>span{color:var(--ph-accent)}.ph-index-meta{margin:0;color:var(--ph-muted);font-size:.8125rem;font-variant-numeric:tabular-nums}.ph-album-gallery .ph-index-head{justify-content:flex-start}.ph-back-link{flex-basis:100%;width:fit-content;color:var(--ph-muted);font-size:.8125rem;text-decoration:underline;text-underline-offset:.35em}.ph-back-link:hover{color:var(--ph-ink)}.ph-album-description{flex-basis:100%;max-width:65ch;margin:0;color:var(--ph-muted);font-size:1rem;text-wrap:pretty}.ph-album-description+.ph-index-meta{margin-inline-start:auto;text-align:right}.ph-archive-nav{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:0 28px;padding:0 var(--ph-gutter);border-block:1px solid var(--ph-rule);background:var(--ph-canvas)}.ph-archive-link{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;padding:8px 0;border-bottom:2px solid transparent;color:var(--ph-muted);font-size:.875rem;text-decoration:none;transition:color .18s ease,border-color .18s ease}.ph-archive-link:hover,.ph-archive-link[aria-current=page]{color:var(--ph-ink);border-bottom-color:var(--ph-accent)}.ph-archive-count{color:var(--ph-muted);font-size:.6875rem;font-variant-numeric:tabular-nums}.ph-contact-section{padding:20px var(--ph-gutter) 48px;scroll-margin-top:116px}.ph-contact-sheet{--ph-row-height: clamp(180px, 18vw, 280px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px 12px;margin:0;padding:0;list-style:none}.ph-contact-sheet:after{content:"";flex-grow:1000}.ph-contact-sheet .ph-tile{flex:var(--ph-ratio) 1 calc(var(--ph-ratio) * var(--ph-row-height));min-width:0;max-width:100%;margin:0}.ph-contact-caption{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0 5px;color:var(--ph-muted);font-size:.75rem;line-height:1.5}.ph-contact-caption>:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ph-contact-caption a{color:inherit;text-decoration:none}.ph-contact-caption a:hover{color:var(--ph-ink);text-decoration:underline;text-underline-offset:.3em}.ph-frame-number{flex-shrink:0;font-variant-numeric:tabular-nums;font-size:.6875rem}@media(max-width:639px){.ph-index-head{gap:10px;padding-block:22px}.ph-index-meta{flex-basis:100%}.ph-archive-nav{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.ph-archive-link{gap:8px;font-size:.8125rem}.ph-contact-section{padding-top:16px}.ph-contact-sheet{--ph-row-height: clamp(100px, 32vw, 140px);gap:12px 8px}}.ph-tile-media{position:relative;overflow:hidden;background:var(--ph-surface)}.ph-tile-open,.ph-tile-link{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;border:0;background:transparent;color:inherit}.ph-tile-open{cursor:zoom-in}.ph-tile-link{cursor:pointer}.ph-tile-open:focus-visible,.ph-tile-link:focus-visible{outline-color:var(--ph-ink);outline-offset:-3px}.ph-tile-image{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1),filter .3s ease}.ph-empty{padding:clamp(48px,10vw,120px) clamp(20px,5vw,64px);color:var(--ph-muted)}.ph-empty p,.ph-empty-note{max-width:52ch;margin:0;color:var(--ph-muted);font-size:1.0625rem;line-height:1.6}.ph-empty-note{padding:clamp(32px,6vw,72px) clamp(20px,5vw,64px)}.ph-state{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding:clamp(48px,12vw,160px) clamp(20px,5vw,64px)}.ph-state h1{margin:0;font-size:clamp(2.5rem,6vw,5rem);line-height:1;letter-spacing:-.03em}.ph-state p{max-width:52ch;margin:0;color:var(--ph-muted);font-size:1.0625rem;line-height:1.6}.ph-state .ph-browse{margin-top:8px}.ph-license{flex:1 0 auto;width:100%;max-width:68ch;margin:0 auto;padding:clamp(32px,7vw,96px) clamp(20px,5vw,56px)}.ph-license-head{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--ph-rule)}.ph-license-title{margin:0;font-size:clamp(2.75rem,7vw,5rem);line-height:.96;letter-spacing:-.035em}.ph-license-intro{margin:16px 0 0;color:var(--ph-muted);font-size:1.125rem;line-height:1.6;text-wrap:pretty}.ph-license-body{display:flex;flex-direction:column;gap:18px;color:var(--ph-muted);line-height:1.7}.ph-license-body h2{margin:12px 0 0;color:var(--ph-ink);font-size:1.25rem;letter-spacing:-.02em}.ph-license-body p{margin:0}.ph-license-body a{color:var(--ph-ink);text-decoration-color:var(--ph-accent);text-underline-offset:.35em}.ph-license-body a:hover{color:var(--ph-accent)}.ph-license-example{padding:16px 18px;border:1px solid var(--ph-rule);color:var(--ph-ink)}.ph-footer{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px clamp(16px,3vw,40px);border-top:1px solid var(--ph-rule);color:var(--ph-muted);font-size:.8125rem}.ph-footer p{margin:0}.ph-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.ph-footer a{color:var(--ph-ink);text-decoration:underline;text-decoration-color:var(--ph-rule-strong);text-underline-offset:.35em}.ph-footer a:hover{color:var(--ph-accent);text-decoration-color:var(--ph-accent)}.ph-viewer{position:fixed;inset:0;width:min(1600px,calc(100vw - 48px));max-width:none;height:calc(100dvh - 48px);max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--ph-rule-strong);background:var(--ph-canvas);color:var(--ph-ink)}.ph-viewer::backdrop{background:#0c0e0ff0}.ph-photo-page{flex:1;min-width:0}.ph-photo-presentation{display:grid;grid-template-columns:minmax(0,1fr) clamp(230px,20vw,280px);grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;overflow:hidden;background:var(--ph-canvas);color:var(--ph-ink)}.ph-photo-page .ph-photo-presentation{height:calc(100dvh - var(--ph-header-height));min-height:0}.ph-photo-presentation:fullscreen{width:100vw;height:100dvh;min-height:0}.ph-photo-toolbar{position:relative;z-index:3;grid-column:1 / -1;display:flex;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:0 24px;padding:4px 20px;border-bottom:1px solid var(--ph-rule)}.ph-photo-context,.ph-photo-actions,.ph-photo-navigation{display:flex;align-items:center;gap:8px}.ph-photo-context{flex:1;gap:20px;min-height:44px;min-width:0}.ph-photo-context>a{overflow:hidden;color:var(--ph-ink);font-size:.875rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.ph-photo-context>a:hover{text-decoration:underline;text-underline-offset:.3em}.ph-photo-count{flex-shrink:0;color:var(--ph-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.ph-photo-actions{flex-shrink:0}.ph-photo-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:8px 12px;border:0;background:transparent;color:var(--ph-ink);font:inherit;font-size:.8125rem;text-decoration:none;white-space:nowrap;cursor:pointer}.ph-photo-action:hover,.ph-photo-action:active,.ph-photo-action[aria-pressed=true]{background:var(--ph-surface)}.ph-photo-action[aria-disabled=true]{color:var(--ph-muted);opacity:.5;background:transparent;cursor:default}.ph-photo-close{border-left:1px solid var(--ph-rule)}.ph-photo-downloads{position:relative;flex-shrink:0}.ph-photo-downloads>summary{list-style:none}.ph-photo-downloads>summary::-webkit-details-marker{display:none}.ph-photo-downloads[open]>summary{background:var(--ph-surface)}.ph-download-panel{position:absolute;top:100%;left:0;width:340px;max-height:calc(100dvh - var(--ph-header-height) - 110px);padding:16px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--ph-rule-strong);background:var(--ph-canvas);color:var(--ph-ink);font-size:.8125rem}.ph-download-heading,.ph-download-option{display:flex;align-items:center;justify-content:space-between;gap:12px}.ph-download-heading{margin:0 0 8px;font-weight:600}.ph-download-heading>span,.ph-download-dimensions{color:var(--ph-muted);font-size:.75rem;font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}.ph-download-option{min-height:44px;padding:8px;color:var(--ph-ink);text-decoration:none}.ph-download-option:hover,.ph-download-option:active{background:var(--ph-surface)}.ph-download-license{margin:12px 0 0;color:var(--ph-muted);font-size:.75rem;line-height:1.6}.ph-download-license{padding-top:12px;border-top:1px solid var(--ph-rule)}.ph-download-license a{color:var(--ph-ink);text-underline-offset:.3em}.ph-photo-stage{position:relative;flex:1 0 160px;min-height:160px;overflow:hidden;background:#080a0b}.ph-photo-image{position:absolute;inset:16px;z-index:1;display:block;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:contain}.ph-photo-footer{display:flex;flex-direction:column;min-height:0;padding:24px 20px;overflow-y:auto;border-left:1px solid var(--ph-rule)}.ph-photo-description{margin-bottom:24px}.ph-photo-heading{min-width:0}.ph-photo-title{margin:0;font-size:clamp(1.125rem,1.6vw,1.5rem);font-weight:500;line-height:1.3;letter-spacing:-.02em;overflow-wrap:anywhere}.ph-photo-location{margin:4px 0 0;color:var(--ph-muted);font-size:.8125rem}.ph-photo-exif{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;margin:0 0 32px;font-size:1rem}.ph-photo-exif dt{margin-bottom:4px;color:var(--ph-muted);font-size:.75rem}.ph-photo-exif dd{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.ph-photo-equipment{grid-column:span 2}.ph-photo-equipment dd{font-size:.875rem}.ph-photo-license{margin-top:auto;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;padding-top:10px;border-top:1px solid var(--ph-rule);color:var(--ph-muted);font-size:.75rem;line-height:1.6}.ph-photo-license p{margin:0}.ph-photo-license a{color:var(--ph-muted);text-decoration:underline;text-decoration-color:var(--ph-rule-strong);text-underline-offset:.3em}.ph-photo-license a:hover{color:var(--ph-ink)}.ph-photo-feedback{margin:0;color:var(--ph-accent);font-size:.8125rem}.ph-photo-feedback:not(:empty){margin-top:10px}.ph-photo-copy-fallback{display:grid;gap:6px;margin-top:8px;font-size:.8125rem}.ph-photo-copy-fallback input{min-width:0;width:100%;padding:10px;border:1px solid var(--ph-rule-strong);background:var(--ph-surface);color:var(--ph-ink);font:inherit}.ph-photo-icon{flex:0 0 18px}.ph-photo-navigation{position:absolute;inset:0 12px;z-index:2;justify-content:space-between;pointer-events:none}.ph-photo-step{width:44px;padding:0;border:1px solid var(--ph-rule-strong);background:#0c0e0fdb;pointer-events:auto}.ph-photo-step[aria-disabled=true]{visibility:hidden}.ph-details-shortcut,.ph-back-to-photo{display:none}@media(min-width:768px)and (max-width:1100px){.ph-action-label{display:none}}@media(max-width:767px){.ph-viewer{width:100vw;height:100dvh;border:0}.ph-photo-presentation{display:block;overflow-y:auto}.ph-photo-page .ph-photo-presentation:not(:fullscreen){height:auto;min-height:0;overflow:visible}.ph-photo-toolbar{position:sticky;top:0;z-index:3;flex-wrap:nowrap;gap:4px;padding:4px 8px;background:var(--ph-canvas)}.ph-photo-context{flex:1;gap:8px}.ph-photo-actions{flex-shrink:0;gap:0}.ph-photo-actions .ph-photo-action{width:44px;padding-inline:8px}.ph-photo-downloads{position:static}.ph-download-panel{left:auto;right:8px;width:min(340px,calc(100% - 16px))}.ph-action-label{display:none}.ph-details-shortcut{display:inline-flex}.ph-photo-stage{height:auto;min-height:120px;max-height:calc(100dvh - 53px);aspect-ratio:var(--ph-photo-ratio);scroll-margin-top:53px}.ph-photo-page .ph-photo-stage{max-height:calc(100dvh - var(--ph-header-height) - 53px)}.ph-photo-presentation:fullscreen .ph-photo-stage{max-height:calc(100dvh - 53px)}.ph-photo-image{inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}.ph-photo-footer{padding:20px 16px 28px;border-left:0;border-top:1px solid var(--ph-rule);scroll-margin-top:53px}.ph-photo-description{margin-bottom:20px}.ph-back-to-photo{display:block;width:fit-content;min-height:44px;margin-bottom:12px;color:var(--ph-muted);font-size:.8125rem;text-underline-offset:.3em}.ph-photo-exif{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;font-size:.9375rem}.ph-photo-equipment{grid-column:span 2}.ph-photo-exif dt{font-size:.6875rem}}@media(max-width:399px){.ph-photo-count>[aria-hidden=true]{display:none}.ph-photo-context{gap:0}}@media(prefers-reduced-motion:no-preference){.ph-contact-sheet .ph-tile{animation:ph-arrive .42s ease-out backwards}.ph-contact-sheet .ph-tile:nth-child(4n+2){animation-delay:40ms}.ph-contact-sheet .ph-tile:nth-child(4n+3){animation-delay:80ms}.ph-contact-sheet .ph-tile:nth-child(4n){animation-delay:.12s}.ph-media-loader{animation:ph-pulse 1.8s ease-in-out infinite}.ph-tile-open:hover .ph-tile-image,.ph-tile-link:hover .ph-tile-image{transform:scale(1.012);filter:brightness(1.05)}}@media(prefers-reduced-motion:reduce){.ph-media-loader{animation:none}.ph-tile-image,.ph-archive-link{transition:none}}@keyframes ph-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes ph-arrive{0%{opacity:0}to{opacity:1}}
