.photos-page{padding-top:58px}.photos-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;display:flex}.photos-page h1{letter-spacing:.02em;margin:0;font-size:40px;font-weight:500}.lead{max-width:28em;color:var(--muted);margin:14px 0 0;font-size:14px}.count{color:var(--faint);white-space:nowrap;margin:0 0 6px;font-size:12px}.photo-timeline{padding:18px 0 4px;position:relative}.timeline-spine{background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--accent) 48%, var(--line)) 26px, var(--line) calc(100% - 26px), transparent);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{grid-template-columns:repeat(2,minmax(0,1fr));min-height:160px;margin-bottom:54px;display:grid;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{background:var(--line);content:"";width:112px;height:1px;position:absolute;top:24px}.timeline-item.is-left:before{left:calc(50% - 112px)}.timeline-item.is-right:before{left:50%}.timeline-dot{z-index:2;border:3px solid var(--bg);background:var(--accent);width:13px;height:13px;box-shadow:0 0 0 1px var(--line);border-radius:50%;position:absolute;top:18px;left:50%;transform:translate(-50%)}.timeline-date{z-index:1;background:var(--bg);color:var(--faint);letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:11px;position:absolute;top:24px;transform:translateY(-50%)}.is-left .timeline-date{text-align:right;right:calc(50% + 22px)}.is-right .timeline-date{text-align:left;left:calc(50% + 22px)}.is-left .photo-card{grid-column:1;padding-right:112px}.is-right .photo-card{grid-column:2;padding-left:112px}.photo-card{margin:0}.photo-card a{aspect-ratio:var(--photo-ratio,4 / 3);background:color-mix(in srgb, var(--text) 5%, transparent);border-radius:12px;display:block;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%;transition:transform .55s cubic-bezier(.22,.72,.24,1),filter .55s;display:block}.photo-card a:hover img{filter:saturate(1.05)contrast(1.03);transform:scale(1.035)}figcaption{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin-top:8px;font-size:11px;overflow:hidden}.empty-state{border:1px solid var(--line);color:var(--muted);border-radius:12px;padding:28px;font-size:14px}.empty-state p{margin:0}.empty-state p+p{margin-top:8px}code{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.photo-lightbox{color:#f3f1eb;background:#090909c2;border:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0;overflow:hidden}.photo-lightbox[open]{place-items:center;animation:.24s both lightbox-fade;display:grid}.photo-lightbox[open].is-closing{animation:.22s forwards lightbox-fade-out}.photo-lightbox::backdrop{background:0 0}.lightbox-content{box-sizing:border-box;place-items:center;gap:12px;width:fit-content;max-width:100%;height:fit-content;max-height:100%;padding:48px;display:grid}.lightbox-content img{object-fit:contain;border-radius:8px;max-width:min(92vw,1500px);max-height:calc(100vh - 112px);animation:.34s cubic-bezier(.22,.72,.24,1) both lightbox-image-in;display:block;box-shadow:0 24px 80px #0000006b}.photo-lightbox.is-closing .lightbox-content img{animation:.2s forwards lightbox-image-out}.lightbox-content p{color:#ffffffa8;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100vw - 120px);margin:0;font-size:11px;position:absolute;bottom:16px;left:50%;overflow:hidden;transform:translate(-50%)}.lightbox-close{z-index:2;color:#fff;width:40px;height:40px;font:inherit;cursor:pointer;background:#0000002e;border:1px solid #ffffff38;border-radius:50%;padding:0;font-size:24px;line-height:1;transition:background .2s,transform .2s;position:fixed;top:20px;right:24px}.lightbox-close:hover{background:#ffffff21;transform:rotate(4deg)}html.lightbox-open{overflow:hidden}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}@keyframes lightbox-fade-out{0%{opacity:1}to{opacity:0}}@keyframes lightbox-image-in{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes lightbox-image-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(5px)scale(.985)}}@keyframes timeline-reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translate(0,0)}}@keyframes timeline-draw{0%{opacity:.3;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}.photo-timeline.is-animating .timeline-spine{animation:timeline-draw var(--timeline-duration) var(--timeline-start-delay) linear both}.photo-timeline.is-animating .timeline-item{opacity:0;animation:.52s cubic-bezier(.22,.72,.24,1) forwards timeline-reveal;animation-delay:var(--node-delay)}@media (width<=680px){.photos-page{padding-top:42px}.photos-page h1{font-size:34px}.photos-head{flex-direction:column;align-items:flex-start;margin-bottom:28px}.photo-timeline{padding-left:24px}.timeline-spine{left:6px}.timeline-item{min-height:0;margin-bottom:38px;display:block}.timeline-item:before{width:18px;top:18px;left:-18px!important}.timeline-dot{top:12px;left:-18px}.timeline-date,.is-left .timeline-date,.is-right .timeline-date{background:0 0;margin-bottom:9px;padding:0;display:block;position:static;transform:none}.is-left .photo-card,.is-right .photo-card{padding:0}.lightbox-content{padding:54px 14px 44px}.lightbox-content img{max-width:calc(100vw - 28px);max-height:calc(100vh - 108px)}.lightbox-close{top:12px;right:14px}}
