/* Dense photo library: inspired by the approved visual direction, using Dazi assets only. */
.dazi-nexus-library { background: var(--paper); padding-block: 0 96px; }
.dazi-nexus-library + .dazi-content { display: none; }
.dazi-detail .dazi-library-hero { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; border-radius: 0; }
.dazi-detail .dazi-library-hero__image { filter: saturate(.82) brightness(.66); }
.dazi-detail .dazi-library-hero__shade { background: var(--overlay); opacity: .35; }
.dazi-detail .dazi-library-hero__inner { width: 100%; text-align: center; }
.dazi-detail .dazi-library-hero .dazi-detail__crumbs,
.dazi-detail .dazi-library-hero .dazi-kicker { display: none; }
.dazi-detail .dazi-library-hero__copy { margin: 0 auto; max-width: 1120px; }
.dazi-detail .dazi-library-hero h1 { color: transparent; -webkit-text-stroke: 1px var(--paper); font-size: clamp(3.6rem, 11vw, 10.5rem); font-style: normal; font-weight: 500; letter-spacing: -.075em; line-height: .86; margin: 0; text-transform: uppercase; }
.dazi-detail .dazi-library-hero__tagline { color: var(--paper); font-size: clamp(1.05rem, 1.65vw, 1.35rem); font-weight: 500; margin: 28px auto 0; max-width: 540px; }
.dazi-detail .dazi-library-hero__copy > p:not(.dazi-library-hero__tagline) { color: var(--paper); font-size: .96rem; line-height: 1.7; margin: 20px auto 0; max-width: 620px; }
.dazi-detail .dazi-library-hero__scroll { border-bottom: 1px solid var(--paper); color: var(--paper); display: inline-block; font-size: .82rem; font-weight: 600; letter-spacing: .08em; margin-top: 38px; padding-bottom: 8px; text-transform: uppercase; }

.dazi-nexus-library .dazi-frame { max-width: 1460px; }
.dazi-nexus-library .dazi-pages__filters { background: var(--paper); border-bottom: 1px solid var(--line); display: flex; gap: 0; justify-content: center; margin: 0 calc((100vw - 100%) / -2) 50px; padding: 17px max(24px, calc((100vw - 1460px) / 2)); position: sticky; top: var(--site-header-height, 72px); z-index: 8; }
.dazi-nexus-library .dazi-pages__filters button { background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--ink); cursor: pointer; font: inherit; font-size: .8rem; font-weight: 600; letter-spacing: .04em; padding: 11px 22px; transition: border-color .25s ease, color .25s ease; }
.dazi-nexus-library .dazi-pages__filters button[aria-pressed="true"] { border-color: var(--clay); color: var(--clay); }
.dazi-nexus-library .dazi-pages__gallery { display: grid; gap: 13px; grid-auto-flow: dense; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dazi-nexus-library figure { aspect-ratio: 1 / 1; margin: 0; overflow: hidden; position: relative; }
.dazi-nexus-library figure[hidden], .dazi-nexus-library [data-gallery-heading][hidden] { display: none; }
.dazi-nexus-library figure button { appearance: none; background: var(--ink); border: 0; cursor: pointer; display: block; height: 100%; overflow: hidden; padding: 0; position: relative; width: 100%; }
.dazi-nexus-library figure button::after { background: linear-gradient(110deg, transparent 34%, color-mix(in srgb, var(--paper) 55%, transparent) 48%, transparent 62%); content: ""; inset: 0; pointer-events: none; position: absolute; transform: translateX(-150%); }
.dazi-nexus-library figure:nth-of-type(6n + 1) button::after { animation: dazi-gallery-sheen 10s 2s ease-in-out infinite; }
.dazi-nexus-library figure img { aspect-ratio: 1 / 1; display: block; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.2,1); width: 100%; }
.dazi-nexus-library figure:hover img, .dazi-nexus-library figure:focus-within img { transform: scale(1.045); }
.dazi-nexus-library figure figcaption { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.dazi-nexus-library__feature { grid-column: span 2; grid-row: span 2; }
.dazi-nexus-library__feature img { aspect-ratio: 1 / 1; }
.dazi-nexus-library figure.is-gallery-tail button::before { align-items: center; background: color-mix(in srgb, var(--ink) 62%, transparent); color: var(--paper); content: "+"; display: flex; font-size: 3.7rem; font-weight: 300; inset: 0; justify-content: center; opacity: 0; position: absolute; transition: opacity .25s ease; z-index: 1; }
.dazi-nexus-library figure.is-gallery-tail:hover button::before, .dazi-nexus-library figure.is-gallery-tail:focus-within button::before { opacity: 1; }
.dazi-nexus-library__branch { align-items: end; border-top: 1px solid var(--line); display: grid; gap: 18px; grid-column: 1 / -1; grid-template-columns: 52px minmax(0, 1fr); margin: 58px 0 12px; padding-top: 18px; }
.dazi-nexus-library__branch:first-child { margin-top: 0; }
.dazi-nexus-library__index, .dazi-nexus-library__eyebrow { color: var(--clay); font-size: .76rem; font-weight: 700; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.dazi-nexus-library__title { color: var(--ink); font-size: clamp(2rem, 3.2vw, 3.4rem); font-style: italic; font-weight: 500; letter-spacing: -.06em; line-height: .98; margin: 7px 0 12px; }
.dazi-nexus-library__description { color: var(--muted); line-height: 1.65; margin: 0; max-width: 610px; }
.dazi-nexus-library .dazi-pages__gallery > [data-gallery-heading][data-branch="ben-thanh"] { order: 1; }
.dazi-nexus-library .dazi-pages__gallery > figure[data-branch="ben-thanh"] { order: 2; }
.dazi-nexus-library .dazi-pages__gallery > [data-gallery-heading][data-branch="hue"] { order: 3; }
.dazi-nexus-library .dazi-pages__gallery > figure[data-branch="hue"] { order: 4; }
.dazi-nexus-library .dazi-pages__gallery > [data-gallery-heading][data-branch="long-thanh"] { order: 5; }
.dazi-nexus-library .dazi-pages__gallery > figure[data-branch="long-thanh"] { order: 6; }
@keyframes dazi-gallery-sheen { 0%, 72%, 100% { transform: translateX(-150%); } 84% { transform: translateX(150%); } }
/* Reflective sweep shared with the About page: one calm pass at a time, staggered
   across the grid instead of a distracting simultaneous flash. */
.dazi-nexus-library figure button::after { width: 48%; inset: 0 auto 0 0; opacity: 0; background: linear-gradient(112deg, transparent 0%, rgba(255,255,255,.06) 35%, rgba(255,255,255,.55) 50%, rgba(255,255,255,.06) 65%, transparent 100%); animation: dazi-library-image-sheen 7.2s cubic-bezier(.25,.75,.35,1) infinite; }
.dazi-nexus-library figure:nth-of-type(5n + 1) button::after { animation-delay: 0s; }
.dazi-nexus-library figure:nth-of-type(5n + 2) button::after { animation-delay: -1.44s; }
.dazi-nexus-library figure:nth-of-type(5n + 3) button::after { animation-delay: -2.88s; }
.dazi-nexus-library figure:nth-of-type(5n + 4) button::after { animation-delay: -4.32s; }
.dazi-nexus-library figure:nth-of-type(5n) button::after { animation-delay: -5.76s; }
@keyframes dazi-library-image-sheen { 0%, 14% { opacity: 0; transform: translateX(-170%) skewX(-16deg); } 17% { opacity: 1; } 31% { opacity: .9; transform: translateX(290%) skewX(-16deg); } 34%, 100% { opacity: 0; transform: translateX(290%) skewX(-16deg); } }

.dazi-nexus-fancybox .fancybox-bg { background: #000; opacity: 1; }
.dazi-nexus-fancybox .fancybox-toolbar, .dazi-nexus-fancybox .fancybox-infobar { background: transparent; }
.dazi-nexus-fancybox .fancybox-infobar, .dazi-nexus-fancybox .fancybox-button, .dazi-nexus-fancybox .fancybox-caption { color: var(--paper); }
.dazi-nexus-fancybox .fancybox-button { background: transparent; }
.dazi-nexus-fancybox .fancybox-button:hover { background: color-mix(in srgb, var(--paper) 12%, transparent); }
.dazi-nexus-fancybox .fancybox-thumbs { background: #000; bottom: 0; height: 104px; left: 0; padding: 8px 18px; right: 0; top: auto; width: auto; }
.dazi-nexus-fancybox .fancybox-thumbs__list { scrollbar-width: none; text-align: center; }
.dazi-nexus-fancybox .fancybox-thumbs__list::-webkit-scrollbar { display: none; }
.dazi-nexus-fancybox .fancybox-thumbs__list a { height: 82px; margin: 0 4px; width: 112px; }
.dazi-nexus-fancybox .fancybox-thumbs__list a::before { border-color: var(--paper); }
.dazi-nexus-fancybox.fancybox-show-thumbs .fancybox-inner { bottom: 104px; right: 0; }
.dazi-nexus-fancybox .fancybox-navigation .fancybox-button { background: color-mix(in srgb, #000 78%, transparent); height: 66px; width: 66px; }
.dazi-detail .mouseCursor { border-radius: 50%; left: 0; pointer-events: none; position: fixed; top: 0; visibility: hidden; will-change: transform; z-index: 10000001; }
.dazi-detail .cursor-outer { background: color-mix(in srgb, var(--clay) 16%, transparent); border: 1px solid var(--clay); height: 32px; margin: -16px 0 0 -16px; opacity: .76; transition: width .2s ease, height .2s ease, margin .2s ease; width: 32px; }
.dazi-detail .cursor-inner { background: var(--clay); box-shadow: 0 0 12px color-mix(in srgb, var(--clay) 70%, transparent); height: 7px; margin: -3.5px 0 0 -3.5px; width: 7px; }
@media (max-width: 767px) { .dazi-detail .dazi-library-hero h1 { font-size: clamp(3.2rem, 16vw, 5.3rem); } .dazi-detail .dazi-library-hero__copy > p:not(.dazi-library-hero__tagline) { font-size: .88rem; } .dazi-nexus-library { padding-bottom: 56px; } .dazi-nexus-library .dazi-pages__filters { justify-content: flex-start; margin-bottom: 30px; overflow-x: auto; padding: 10px 16px; } .dazi-nexus-library .dazi-pages__filters button { flex: 0 0 auto; padding: 10px 12px; } .dazi-nexus-library .dazi-pages__gallery { gap: 8px; } .dazi-nexus-library__branch { margin-top: 40px; } .dazi-nexus-library__description { font-size: .91rem; } }
@media (min-width: 768px) { .dazi-nexus-library .dazi-pages__gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .dazi-nexus-library .dazi-pages__gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } .dazi-nexus-library__branch { grid-template-columns: 90px minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .dazi-nexus-library *, .dazi-nexus-library *::before, .dazi-nexus-library *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
