:root{color-scheme:light dark;--bg:#fefefe;--fg:#060606;--muted:#6b6b6b;--line:#060606;--surface:#fff;--border:4px;--photo-border:8px;--shadow:none;--gap:16px;--row-height:18rem;--font:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--font-display:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#060606;--fg:#fcfcfb;--muted:#8f8f8f;--line:#fcfcfb;--surface:#111}}:root[data-theme=dark]{color-scheme:dark;--bg:#060606;--fg:#fcfcfb;--muted:#8f8f8f;--line:#fcfcfb;--surface:#111}:root[data-theme=light]{color-scheme:light}@media (width<=40rem){:root{--row-height:11rem}}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}body{flex-direction:column;min-height:100vh;display:flex}html.lightbox-open{overflow:hidden}a{color:inherit}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{border:var(--border) solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem clamp(1rem,3vw,2.5rem);display:flex}.breadcrumb{letter-spacing:.02em;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.95rem;display:flex}.breadcrumb a{text-decoration:none}.breadcrumb a:hover{text-underline-offset:.2em;text-decoration:underline}.breadcrumb .sep{color:var(--muted)}.site-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;font-weight:800}.theme-toggle{width:2.25rem;height:2.25rem;color:var(--fg);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}main{flex:1;padding:clamp(1rem,3vw,2.5rem)}.site-footer{border-top:var(--border) solid var(--line);color:var(--muted);letter-spacing:.04em;padding:1rem clamp(1rem,3vw,2.5rem);font-size:.8rem}.site-footer a{color:var(--fg);text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-underline-offset:.2em;text-decoration:underline}.album-header{margin:0 0 2rem}.album-header h1{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;margin:0;font-size:clamp(2rem,6vw,4.5rem);font-weight:800;line-height:.95}.album-description{max-width:40rem;color:var(--muted);margin:1rem 0 0;line-height:1.5}.sub-albums{margin-bottom:2.5rem}.sub-albums+.photos{border-top:var(--border) solid var(--line);padding-top:2.5rem}.album-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:clamp(1rem,2vw,1.75rem);margin:0;padding:0;list-style:none;display:grid}.album-card{border:var(--photo-border) solid var(--line);background:var(--line);box-shadow:var(--shadow);text-decoration:none;display:block}.album-card-cover{aspect-ratio:4/3;background:var(--surface);display:block;overflow:hidden}.album-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:block}.album-card:hover .album-card-cover img{transform:scale(1.03)}.album-card-title{background:var(--line);color:var(--bg);text-transform:uppercase;letter-spacing:.06em;padding:.7rem .4rem .45rem;font-size:.95rem;font-weight:700;transition:background .2s,color .2s;display:block}.album-card:hover .album-card-title,.album-card:focus-visible .album-card-title{background:var(--bg);color:var(--fg)}.justified{align-items:flex-start;gap:var(--gap);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.justified:after{content:"";flex-grow:99900}@media (width<=40rem){.justified:after{content:none}}.justified>li{box-sizing:content-box;flex-grow:calc(var(--ratio) * 100);flex-basis:calc(var(--ratio) * var(--row-height));max-width:calc(100% - 2 * var(--photo-border));aspect-ratio:var(--ratio);border:var(--photo-border) solid var(--line);background:var(--surface);box-shadow:var(--shadow);position:relative}.justified a{height:100%;display:block}.justified picture,.justified img{width:100%;height:100%;display:block}.justified img{object-fit:cover}.photo-caption{color:#fff;opacity:0;pointer-events:none;background:linear-gradient(#0000,#0009);margin:0;padding:1.5rem .75rem .6rem;font-size:.85rem;transition:opacity .2s;position:absolute;inset:auto 0 0}.justified li:hover .photo-caption,.justified li:focus-within .photo-caption{opacity:1}@media (hover:none){.photo-caption{opacity:1}}.lightbox{z-index:10;background:var(--bg);grid-template-columns:1fr auto;display:grid;position:fixed;inset:0}.lightbox[hidden]{display:none}.lb-stage{touch-action:none;user-select:none;grid-template:minmax(0,1fr)/minmax(0,1fr);grid-area:1/1;place-items:center;min-width:0;padding:4rem clamp(.5rem,5vw,5rem);display:grid;position:relative;overflow:hidden}.lb-picture{display:contents}.lb-picture source{display:none}.lb-picture img{outline:var(--photo-border) solid var(--line);width:auto;height:auto;box-shadow:var(--shadow);-webkit-user-drag:none;display:block}.lb-loupe-available .lb-picture img{cursor:zoom-in}.lb-preload{display:none}.lb-loupe .lb-stage{place-items:start;padding:0}.lb-loupe .lb-picture img{box-shadow:none;cursor:zoom-out;position:absolute;top:0;left:0}.lb-chrome{pointer-events:none;grid-area:1/1;transition:opacity .2s;position:relative}.lb-controls-hidden .lb-chrome,.lb-loupe .lb-chrome{opacity:0}.lb-loupe .lb-chrome .lb-close{opacity:1}.lb-chrome>*{pointer-events:auto}.lb-controls-hidden .lb-chrome>*{pointer-events:none}.lb-button{border:2px solid var(--line);background:var(--bg);width:2.75rem;height:2.75rem;color:var(--fg);cursor:pointer;place-items:center;padding:0;display:grid;position:absolute}.lb-button svg{fill:none;stroke:currentColor;stroke-width:2.25px;width:1.25rem;height:1.25rem}.lb-close{top:.75rem;right:.75rem}.lb-info{top:.75rem;right:4rem}.lb-details-open .lb-info{background:var(--fg);color:var(--bg)}.lb-prev,.lb-next{top:50%;translate:0 -50%}.lb-prev{left:.75rem}.lb-next{right:.75rem}.lb-single .lb-prev,.lb-single .lb-next{display:none}.lb-counter{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--muted);font-size:.8rem;position:absolute;top:1.4rem;left:1rem}.lb-caption{text-align:center;max-width:min(40rem,90%);margin:0;font-size:.95rem;position:absolute;bottom:1rem;left:50%;translate:-50%}.lb-details{border-left:var(--border) solid var(--line);background:var(--bg);grid-area:1/2;width:min(20rem,85vw);padding:1.25rem 1.5rem;animation:.25s cubic-bezier(.2,.7,.2,1) lb-slide-in;overflow-y:auto}.lb-details[hidden]{display:none}.lb-details h2{text-transform:uppercase;letter-spacing:.12em;margin:.4rem 0 1.25rem;font-size:.8rem}.lb-details dl{grid-template-columns:auto 1fr;gap:.6rem 1rem;margin:0;font-size:.85rem;display:grid}.lb-details dt{color:var(--muted)}.lb-details dd{overflow-wrap:anywhere;margin:0}@media (width<=40rem){.lightbox{grid-template-rows:1fr auto;grid-template-columns:1fr}.lb-details{border-left:0;border-top:var(--border) solid var(--line);grid-area:2/1;width:auto;max-height:45vh;animation-name:lb-rise}.lb-prev,.lb-next{display:none}.lb-stage{padding:3.75rem .5rem}}.lb-loop{border:var(--border) solid var(--line);background:var(--bg);color:var(--fg);font-variant-numeric:tabular-nums;letter-spacing:.08em;opacity:0;pointer-events:none;align-items:center;gap:.75rem;padding:.8rem 1.25rem .8rem 1rem;font-size:1rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%}.lb-loop-icon{fill:none;stroke:currentColor;stroke-width:2.25px;width:1.5rem;height:1.5rem}.lb-loop-head{fill:currentColor;stroke:none}.lb-loop-show{animation:1.4s forwards lb-loop-cue}.lb-loop-show .lb-loop-icon{animation:.7s cubic-bezier(.3,.7,.2,1) lb-loop-turn}.lb-enter-next img{animation:.28s cubic-bezier(.2,.7,.2,1) lb-from-right}.lb-enter-prev img{animation:.28s cubic-bezier(.2,.7,.2,1) lb-from-left}.lb-enter-loop img{animation:.6s cubic-bezier(.2,.7,.2,1) lb-loop-in}.lb-enter-open img{animation:.2s lb-fade}@keyframes lb-from-right{0%{opacity:0;translate:3rem}}@keyframes lb-from-left{0%{opacity:0;translate:-3rem}}@keyframes lb-loop-in{0%{opacity:0;scale:.92}60%{opacity:1}}@keyframes lb-fade{0%{opacity:0}}@keyframes lb-loop-cue{0%{opacity:0;scale:.9}15%,70%{opacity:1;scale:1}to{opacity:0}}@keyframes lb-loop-turn{0%{rotate:-270deg}}@keyframes lb-slide-in{0%{translate:100%}}@keyframes lb-rise{0%{translate:0 100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
