.reference-section{padding:0 0 clamp(80px,10vw,140px)}.reference-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(28px,4vw,50px)}.reference-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:transparent;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:14px;color:var(--fg);cursor:pointer;transition:background .22s ease,color .22s ease,border-color .22s ease}.reference-chip:hover{border-color:var(--fg)}.reference-chip.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.reference-chip-count{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--fg-faint)}.reference-chip.is-active .reference-chip-count{color:#ffffffb3}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media (max-width: 880px){.reference-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 540px){.reference-grid{grid-template-columns:1fr}}.reference-item{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:6px;background:var(--paper);border:0;padding:0;cursor:pointer;font:inherit;text-align:left;color:inherit}.reference-item.is-hidden{display:none}.reference-item picture,.reference-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .42s cubic-bezier(.2,.7,.2,1)}.reference-item:hover img{transform:scale(1.05)}.reference-item:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 0% 35%,#00000073 60%,#000000d9,#000000f5);opacity:0;transition:opacity .32s ease}.reference-item:hover:after,.reference-item:focus-visible:after{opacity:1}.reference-item-meta{position:absolute;inset:auto 18px 18px 18px;color:#fff;opacity:0;transform:translateY(12%);transition:opacity .32s ease,transform .32s ease;display:flex;flex-direction:column;gap:6px;text-shadow:0 1px 2px rgba(0,0,0,.7),0 0 18px rgba(0,0,0,.55);z-index:1}.reference-item:hover .reference-item-meta,.reference-item:focus-visible .reference-item-meta{opacity:1;transform:translateY(0)}.reference-item-cat{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#ffffffe6}.reference-item-title{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.2;letter-spacing:-.01em;color:#fff}.reference-item-loc{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffffc7}.reference-empty{padding:40px 0;color:var(--fg-muted);text-align:center}.reference-empty[hidden]{display:none}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a0a09f5;display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vw,60px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}.lightbox.is-open{opacity:1;visibility:visible}.lightbox[hidden]{display:none}.lightbox-figure{position:relative;max-width:min(100%,1400px);max-height:100%;margin:0;display:flex;flex-direction:column;align-items:center;gap:16px}.lightbox img{display:block;max-width:100%;max-height:78vh;object-fit:contain;border-radius:4px}.lightbox-caption{color:#fff;text-align:center;display:grid;gap:6px}.lightbox-cat{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#ffffffb3}.lightbox-title{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,2vw,28px);line-height:1.15}.lightbox-loc{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff8c}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:#ffffff14;border:1px solid rgba(255,255,255,.18);color:#fff;width:48px;height:48px;border-radius:999px;font-size:22px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .22s ease,border-color .22s ease}.lightbox-close{top:24px;right:24px;font-size:28px}.lightbox-prev{top:50%;left:24px;transform:translateY(-50%)}.lightbox-next{top:50%;right:24px;transform:translateY(-50%)}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:var(--accent);border-color:var(--accent)}body.lightbox-open{overflow:hidden}
