.gallery{--measure:1120px;--frame-gap:var(--space-6);padding-bottom:var(--space-24)}.gallery:before{content:"";z-index:4;pointer-events:none;background:linear-gradient(#080706b8 0%,#08070673 45%,#08070600 100%);height:128px;position:fixed;top:0;left:0;right:0}.gallery-hero{margin:0 0 var(--space-16);position:relative}.gallery-hero-frame{background:var(--bg-elevated);cursor:zoom-in;border:none;width:100%;height:min(100svh,900px);padding:0;display:block}.gallery-hero-img,.gallery-hero-frame picture{object-fit:cover;width:100%;height:100%;display:block}.gallery-hero-caption{inset-inline:0;padding:var(--space-24) var(--space-8) var(--space-8);pointer-events:none;background:linear-gradient(#08070600 0%,#080706bd 62%,#080706e6 100%);position:absolute;bottom:0}.gallery-hero-title{font-family:var(--font-display);font-size:var(--text-h1);letter-spacing:-.02em;color:#f7f6f3;margin:0;font-weight:500;line-height:1.05}.gallery-hero-intro{font-family:var(--font-sans);font-size:var(--text-body);color:#e2ded6;max-width:52ch;margin:var(--space-3) 0 0;line-height:1.6}.gallery-hero-meta{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.1em;text-transform:uppercase;color:#c6c0b5;margin:var(--space-4) 0 0}.gallery-spine{gap:0 var(--space-6);max-width:var(--measure);margin:0 auto var(--space-16);padding:0 var(--space-6);flex-wrap:wrap;display:flex}.gallery-spine-link{min-height:44px;font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-items:center;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.gallery-spine-link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:12px;left:0;transform:scaleX(0)}.gallery-spine-link:hover{color:var(--accent)}.gallery-spine-link:hover:after{transform:scaleX(1)}.gallery-river{max-width:var(--measure);padding-inline:var(--space-6);margin-inline:auto}.passage{scroll-margin-top:var(--space-8)}.passage+.passage{margin-top:var(--space-24)}.passage-head{align-items:baseline;gap:var(--space-4);padding-bottom:var(--space-4);margin-bottom:var(--space-8);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.passage-title{font-family:var(--font-display);font-size:var(--text-h2);letter-spacing:-.015em;color:var(--text);font-weight:500}.passage-span,.passage-count{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.passage-count{margin-left:auto}.row+.row{margin-top:var(--frame-gap)}.row--pair{gap:var(--frame-gap);grid-template-columns:1fr 1fr;align-items:start;display:grid}.row--upright .frame{width:fit-content;max-width:100%;margin-inline:auto}.row--upright .frame-shell{width:auto;height:min(76vh,900px)}.frame{text-align:left;cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.frame-shell{background:var(--bg-elevated);width:100%;display:block;overflow:hidden}.frame-img,.frame-shell picture{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}.frame:hover .frame-img{transform:scale(1.012)}.frame-failed{width:100%;height:100%;font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.frame-meta{align-items:baseline;gap:var(--space-3);padding-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-caption);color:var(--text-muted);flex-wrap:wrap;display:flex}.frame-meta-alt{color:var(--text)}.frame-meta-date{letter-spacing:.08em;text-transform:uppercase}.river--animated .frame{opacity:0;filter:blur(8px);transform:translateY(16px)}.river--animated .frame.is-settled{opacity:1;filter:none;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1);transform:none}.gallery-colophon{max-width:var(--measure);margin:var(--space-24) auto 0;padding:var(--space-8) var(--space-6) 0;border-top:1px solid var(--border);justify-content:space-between;gap:var(--space-4);font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);flex-wrap:wrap;display:flex}.gallery-colophon p{margin:0}.gallery-colophon a{min-height:24px;color:var(--text);border-bottom:1px solid var(--border);text-decoration:none;transition:color .2s,border-color .2s;display:inline-block}.gallery-colophon a:hover{color:var(--accent);border-color:var(--accent)}.viewer{z-index:1000;cursor:zoom-out;background:#0b0a09;flex-direction:column;animation:.32s cubic-bezier(.16,1,.3,1) viewer-in;display:flex;position:fixed;inset:0}@keyframes viewer-in{0%{opacity:0}to{opacity:1}}.viewer-stage{min-height:0;padding:var(--space-8) var(--space-6) var(--space-4);cursor:default;flex:1;justify-content:center;align-items:center;display:flex}.viewer-stage picture{display:contents}.viewer-img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;animation:.34s cubic-bezier(.16,1,.3,1) frame-in;display:block}@keyframes frame-in{0%{opacity:0}to{opacity:1}}.viewer-bar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-6);cursor:default;display:flex}.viewer-caption{align-items:baseline;gap:var(--space-3);min-width:0;font-family:var(--font-mono);font-size:var(--text-caption);flex-wrap:wrap;flex:1;margin:0;display:flex}.viewer-caption-alt{color:#ece9e2}.viewer-caption-date,.viewer-count{letter-spacing:.1em;text-transform:uppercase;color:#b3b0a8;font-family:var(--font-mono);font-size:var(--text-caption);margin:0}.viewer-count{font-variant-numeric:tabular-nums}.viewer-step,.viewer-close{color:#ece9e2;cursor:pointer;background:0 0;border:1px solid #ece9e238;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1rem;line-height:1;transition:border-color .2s,background-color .2s;display:flex}.viewer-step:hover,.viewer-close:hover{background:#ece9e214;border-color:#ece9e299}.viewer :focus-visible{outline-offset:2px;outline:2px solid #ece9e2}@media (max-width:900px){.gallery-hero-frame{height:min(100svh - 64px,720px)}.gallery-hero-caption{padding:var(--space-16) var(--space-4) var(--space-6)}}@media (max-width:700px){.gallery{--frame-gap:var(--space-4)}.gallery-spine,.gallery-river,.gallery-colophon{padding-inline:var(--space-4)}.gallery-spine{gap:0 var(--space-4);margin-bottom:var(--space-12)}.passage+.passage{margin-top:var(--space-16)}.row--pair{grid-template-columns:1fr}.row--upright .frame{width:100%}.row--upright .frame-shell{width:100%;height:auto}.passage{scroll-margin-top:88px}.passage-count{margin-left:0}.viewer-bar{padding:var(--space-3) var(--space-4) var(--space-4);flex-wrap:wrap}.viewer-caption{flex-basis:100%;order:-1}}
