:root{--stamp: #f59a23}.gallery-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-block:2rem 0;font-size:.95em}.gallery-home{font-weight:500}.gallery-header nav{display:flex;gap:1.4rem}.gallery-header nav a[aria-current=page]{color:var(--accent)}.gallery-footer{padding-block:4rem 3rem;color:var(--text-muted);font-size:.9em}.gallery-footer a{text-decoration:underline;text-underline-offset:3px}.gallery-intro{padding-block:3.5rem 2.2rem}.crumbs{display:flex;gap:.45em;margin:0 0 .55em;color:var(--text-muted);font-size:.92em}.gallery-intro h1{margin:0 0 .3em;font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:500;line-height:1.2}.gallery-lede{margin:0;max-width:38em;color:var(--text-muted)}.stamp{position:absolute;right:.7em;bottom:.55em;color:var(--stamp);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:clamp(.72rem,1.4vw,.95rem);font-weight:600;letter-spacing:.06em;text-shadow:0 0 3px rgba(245,154,35,.55),0 1px 1px rgba(0,0,0,.35);pointer-events:none}.roll-year{margin:0 0 3rem}.roll-year h2{margin:0 0 1rem;font-size:1.05em;font-weight:500;color:var(--text-muted)}.rolls{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:1.6rem 1.2rem;margin:0;padding:0;list-style:none}.roll a{display:block}.roll-cover{position:relative;aspect-ratio:4 / 5;overflow:hidden;border-radius:6px;background:var(--bg-soft)}.roll-cover img,.roll-cover video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .3s ease-out}.roll a:hover .roll-cover :is(img,video){transform:scale(1.03)}.roll-name{margin:.7em 0 0;font-weight:500}.roll-meta{margin:0;color:var(--text-muted);font-size:.9em}@media (prefers-reduced-motion: reduce){.roll-cover :is(img,video){transition:none}}.contact-strip{display:flex;gap:4px;margin:0;padding:6px;overflow-x:auto;scrollbar-width:thin;background:#1f1f1f;border-radius:6px;list-style:none}.contact-strip a{position:relative;display:block;flex:0 0 auto;width:64px;height:64px;overflow:hidden;border-radius:2px;opacity:.7;transition:opacity .15s ease-out}.contact-strip a:hover,.contact-strip a[aria-current=true]{opacity:1}.contact-strip a[aria-current=true]{outline:2px solid var(--stamp);outline-offset:-2px}.contact-strip img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.contact-strip .strip-video{display:grid;place-items:center;width:100%;height:100%;background:#3a3a3a;color:#ddd;font-size:.8em}.frames{display:grid;gap:4.5rem;margin:3rem 0 0;padding:0;list-style:none}.frame{margin:0;scroll-margin-top:1.5rem}.frame-photo{position:relative;width:min(100%,calc(82vh * var(--ratio, 1.333)));margin-inline:auto;background:var(--bg-soft)}.frame-photo img,.frame-photo video{display:block;width:100%;height:auto;max-height:82vh;-o-object-fit:contain;object-fit:contain}.frame-photo video{background:#111}.frame-photo :is(img,video),.roll-cover :is(img,video){dynamic-range-limit:standard}.frame figcaption{max-width:36em;margin:.9em auto 0}.frame-meta-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.frame-meta{margin:0;color:var(--text-muted);font-size:.85em;font-variant-numeric:tabular-nums}.frame-share{flex:none;color:var(--text-muted);font-size:.85em;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px}.frame-share:hover{color:var(--accent);text-decoration-color:currentColor}.frame-note{margin:.25em 0 0;font-family:var(--font-read);font-size:1.05rem;line-height:1.6}.roll-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:5rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.roll-nav a{display:grid;gap:.1em}.roll-nav small{color:var(--text-muted);font-size:.8em}.roll-nav .newer{margin-left:auto;text-align:right}.single-intro{padding-block:2.5rem 1.5rem}.single-nav{margin-top:3rem}.single-nav .in-roll{text-align:center}.single-nav .in-roll:first-child{margin-inline:auto}.keys-hint{margin:.6rem 0 0;color:var(--text-muted);font-size:.8em}@media (hover: none){.keys-hint{display:none}}.empty-state{padding-block:2rem 4rem;color:var(--text-muted)}
