.viewer-overlay{z-index:200;background:color-mix(in oklab, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:zoom-out;justify-content:center;align-items:center;animation:.2s both viewer-fade;display:flex;position:fixed;inset:0}@keyframes viewer-fade{0%{opacity:0}to{opacity:1}}.viewer-content{cursor:default;flex-direction:column;align-items:center;gap:16px;animation:.25s cubic-bezier(.2,.7,.1,1) both viewer-rise;display:flex}@keyframes viewer-rise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.viewer-img{border:1px solid var(--rule);border-radius:2px;width:auto;max-width:min(92vw,1400px);height:auto;max-height:88vh;display:block}.viewer-caption{text-align:center}.viewer-meta{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);font-size:11px}.viewer-close{border:1px solid var(--rule);color:var(--fg-dim);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:flex;position:fixed;top:24px;right:28px}.viewer-close:hover{color:var(--fg);border-color:var(--fg-dim);background:color-mix(in oklab, var(--fg) 8%, transparent)}.viewer-nav{border:1px solid var(--rule);color:var(--fg-dim);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;transition:color .15s,border-color .15s,background .15s,transform .15s;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.viewer-nav:hover{color:var(--fg);border-color:var(--fg-dim);background:color-mix(in oklab, var(--fg) 8%, transparent)}.viewer-prev{left:20px}.viewer-prev:hover{transform:translateY(-50%)translate(-2px)}.viewer-next{right:20px}.viewer-next:hover{transform:translateY(-50%)translate(2px)}.viewer-counter{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);font-size:11px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}
.page-head{border-bottom:1px solid var(--rule);padding:clamp(56px,10vw,120px) 0 clamp(48px,7vw,80px)}.crumb{font-family:var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--fg-mute);align-items:center;gap:10px;margin-bottom:clamp(28px,4vw,44px);font-size:11px;display:flex}.crumb a{color:var(--fg-dim);transition:color .2s}.crumb a:hover{color:var(--fg)}.crumb .sep{opacity:.5}.page-head h1{font-family:var(--f-display);letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(48px,9vw,128px);font-weight:300;line-height:.96}.page-head h1 em{color:var(--accent);font-style:italic;font-weight:300}.head-meta{grid-template-columns:1fr auto;align-items:end;gap:32px;margin-top:clamp(32px,5vw,56px);display:grid}.head-meta p{max-width:52ch;color:var(--fg-dim);margin:0;font-size:clamp(15px,1.2vw,17px);line-height:1.6}.head-meta p b{color:var(--fg);font-weight:500}@media (max-width:600px){.head-meta{grid-template-columns:1fr}}.counter{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-mute);text-align:right;white-space:nowrap;font-size:11px}.counter b{color:var(--fg);font-size:48px;font-weight:400;line-height:1;font-family:var(--f-display);letter-spacing:-.02em;margin-bottom:6px;display:block}.gallery-section{padding:clamp(48px,7vw,96px) 0 clamp(80px,12vw,160px)}.gallery-grid{columns:3;column-gap:clamp(12px,2vw,24px)}@media (max-width:900px){.gallery-grid{columns:2}}@media (max-width:500px){.gallery-grid{columns:1}}.gallery-item{break-inside:avoid;cursor:default;margin-bottom:clamp(12px,2vw,24px)}.gallery-item.is-clickable{cursor:zoom-in}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-item:hover .gallery-thumb{border-color:var(--fg-mute)}.gallery-thumb{border:1px solid var(--rule);background:var(--bg-2);border-radius:2px;width:100%;transition:border-color .3s;position:relative;overflow:hidden}.gallery-img{width:100%;height:auto;display:block}.gallery-placeholder{aspect-ratio:4/5;background:repeating-linear-gradient(135deg, color-mix(in oklab, var(--fg) 5%, transparent) 0 1px, transparent 1px 10px),var(--bg-2);width:100%;position:relative}.gallery-placeholder:before{content:attr(data-id);font-family:var(--f-mono);letter-spacing:.2em;color:var(--fg-mute);font-size:10px;position:absolute;top:12px;left:12px}.gallery-placeholder:after{content:"drop image here";font-family:var(--f-mono);letter-spacing:.1em;color:var(--fg-mute);justify-content:center;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.gallery-item:nth-child(3n+1) .gallery-placeholder{aspect-ratio:4/5}.gallery-item:nth-child(3n+2) .gallery-placeholder{aspect-ratio:3/4}.gallery-item:nth-child(3n+3) .gallery-placeholder{aspect-ratio:1}.gallery-overlay{background:color-mix(in oklab, var(--bg) 70%, transparent);opacity:0;align-items:flex-end;padding:16px;transition:opacity .25s;display:flex;position:absolute;inset:0}.gallery-overlay-title{font-family:var(--f-display);letter-spacing:-.01em;color:var(--fg);font-size:clamp(16px,2vw,22px);font-weight:300}.gallery-caption{flex-direction:column;gap:3px;margin-top:10px;display:flex}.gallery-title{color:var(--fg);font-size:14px;font-weight:400}.gallery-meta{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-mute);font-size:11px}
