<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xml:lang="en" xmlns:atom="http://www.w3.org/2005/Atom"><channel><atom:link href="https://jimbo-tsai.github.io/jimbot/categories/content/rss.xml" rel="self" type="application/rss+xml"/><copyright>Jimmy Tsai ©</copyright><description>Recent content</description><language>en</language><lastBuildDate>Tue, 18 Nov 2025 12:32:52 -0500</lastBuildDate><link>https://jimbo-tsai.github.io/jimbot/categories/content/</link><managingEditor>will.faught@example.com (Will Faught)</managingEditor><title>Content · Categories · Jimmy Tsai</title><webMaster>will.faught@example.com (Will Faught)</webMaster><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[






















    























    



<style>
    .paige-youtube-skeleton-wrapper {
        position: relative;
        width: 100%;
        overflow: hidden;
        background-color: #f6eff3;
    }

    .paige-youtube-skeleton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 3;
        background: linear-gradient(90deg, #f6eff3 25%, #eddfe7 50%, #f6eff3 75%);
        background-size: 200% 100%;
        animation: paigeYoutubeShimmer 1.6s infinite linear;
        transition: opacity 0.4s ease-out, visibility 0.4s;
        will-change: opacity;
    }

    @keyframes paigeYoutubeShimmer {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }

    .paige-youtube-skeleton-wrapper .paige-youtube {
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        will-change: opacity;
    }

     
    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube {
        opacity: 1;
    }

    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube-skeleton {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
</style>

<div class="paige-youtube-skeleton-wrapper" style=" ">
    
    
    <div class="paige-youtube-skeleton"></div>

    <div class="paige-youtube">
        























<div class="paige-video ratio ratio-16x9" >
    






<iframe  allowfullscreen   referrerpolicy="no-referrer-when-downgrade"   src="https://www.youtube.com/embed/sQ5if51uSE8?hl=en&amp;modestbranding=1"   title="YouTube video" ></iframe>

</div>

    </div>

    
    <script>
        (function() {
            const currentShell = document.currentScript.parentElement;
            const targetVideo = currentShell.querySelector('iframe');

            if (targetVideo) {
                
                if (targetVideo.complete || targetVideo.readyState === 'complete') {
                    currentShell.classList.add('video-ready');
                } else {
                    targetVideo.addEventListener('load', function() {
                        window.requestAnimationFrame(function() {
                            currentShell.classList.add('video-ready');
                        });
                    });
                }
            } else {
                
                currentShell.classList.add('video-ready');
            }
        })();
    </script>
</div>
<div style="background-color: #a8dcd9; color: #284e4b; padding: 1.25rem; border-radius: 8px; margin-bottom: 1.5rem;">
  El Palo Alto is a coastal redwood tree nestled in between the cities of Palo Alto and Menlo Park. It once served as a marker for the explorers and settlers, and now it serves as a symbol for Stanford, Palo Alto, and many more. This documentary discusses the history and the health of El Palo Alto, with exclusive insight into  the most recent health study of the tree.
</div>
<blockquote>
<p>Big thanks to Robert Booty of Arborist OnSite, who conducted the health study and compiled the report on the tree. This project wouldn’t be possible without his contributions providing both footage and expertise in the subject.</p>
</blockquote>
<blockquote>
<p>This project is a completion of my older documentary, filling in gaps and introducing more interesting stories and the technicalities of the health of the tree. Huge thanks to all those who have supported me in this endeavor.</p>
</blockquote>
<ul>
<li><strong>Filmed, Edited, and Produced by</strong>
<ul>
<li>Jimmy Tsai</li>
</ul>
</li>
<li><strong>Special Thanks to</strong>
<ul>
<li>Robert Booty</li>
<li>Dave Dockter</li>
<li>Mark Lindstrom</li>
</ul>
</li>
<li><strong>Historical Images from</strong>
<ul>
<li>The Palo Alto Historical Society</li>
</ul>
</li>
</ul>
























    
        
            
        
    




<div class="paige-gallery">

<div class="align-items-center column-gap-3 d-flex flex-wrap justify-content-center row-gap-3">































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-1.2f0b30a75aa329a5112e8e06ce7e802b8eb88c1567c82968959b9f2000680eac.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-2.d3e3e97d7cd8e25f113dc8bf1e9d0d065d80047d1b3258deeceb12d12831e9b9.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-3.1895939d61dcd269bc6a24fb2238c7849543a2d0894d5688fd928167b16dd7cb.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-4.7b726e0229dea4aef83dc03496c35c7d4f8cfe4e4ab35f42b265926a92a662d6.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-5.196414e10e8c5d5885d267bb0b450aaa0513afc2f86059fafea46bee02a2a79a.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/living-legacy/living-legacy-6.5dc928b4c5f81cb3e3ccea1bdf952ed6c85e93a1018a1e024a142b66307b1f34.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>



</div>

</div>

]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-11-18:2025-11-18T12:32:52-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/films/living-legacy/</link><pubDate>Tue, 18 Nov 2025 12:32:52 -0500</pubDate><title>El Palo Alto: A Living Legacy</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<style>
  /* 1. Hide the title elements */
  main h1, 
  .paige-header h1, 
  #paige-metadata h1, 
  .display-1, .display-2, .display-3, .display-4, .display-5 { 
    display: none !important; 
  }

  /* 2. Disregard layout restrictions and force center the slideshow wrap */
  .paige-page, main > div {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 3. Ensure the main layout container scales correctly to prevent scroll overlaps */
  main {
    min-height: 80vh !important;
    position: relative !important;
  }
</style>
 
 
 
 




    
    


<div class="paige-slideshow-wrapper">
    
    
    <div class="slideshow-text-panel">
        <div class="slideshow-text-content">
            Tommy Emmanuel&rsquo;s tour stop at Cahn Auditorium on Oct 15, 2025. Shot for The Daily Northwestern.
        </div>
    </div>
    

    
    <div class="slideshow-carousel-panel" style="">
        <div class="slideshow-track" id="track-0">
            
            
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/1DSCF8926_compressed-wide_huaecdfad1de9a02d578ce010cdaad1df2_586838_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="1DSCF8926_compressed-wide.jpg" class="rounded-0 slide-img" loading="eager" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8474_compressed_hud288065abe8a64f398d577adfdcb86e9_424325_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8474_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8493_compressed_hu494fcf683f9234bb0e510f12d7611f5c_756222_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8493_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8507_compressed_hu9c69b1f3d3c1bb33370aa5681a528db3_395892_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8507_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8551_compressed_hu7267527098db1c28a91793958b56962b_532503_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8551_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8579_compressed_huc28ba1e680ad03c32577a0ab2a6c3c08_556215_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8579_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8690_compressed_hud94fc68a371d2aadf14e3f432c44a4b6_390907_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8690_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8707_compressed_huc1fb51af9bdb010d32a5a94e15bd2f33_394810_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8707_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8928_compressed-wide_hub4a3510c58c9d6a5819c33371ee7c54a_602219_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8928_compressed-wide.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8995_compressed_hu126fbb382c4782ec98981d58869a1fcc_412526_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8995_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF8999_compressed_hu238cc44f18946c08361d7ff587c65ccc_432466_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF8999_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/tommy-emmanuel-10-15-25/DSCF9010_compressed_hu6bfd4aa6117954b86061d6d1cc3a8b11_757446_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF9010_compressed.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                
            
            
        </div>

        
        
        <button class="slide-nav-btn prev-btn" aria-label="Previous image" onclick="document.getElementById('track-0').scrollBy({ left: -window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
        </button>
        <button class="slide-nav-btn next-btn" aria-label="Next image" onclick="document.getElementById('track-0').scrollBy({ left: window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </button>
        
    </div>
</div>

<style>
 
@keyframes componentFadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);  
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.paige-slideshow-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    background: transparent;
    overflow: hidden;
    min-height: 450px;

     
    opacity: 0; 
    animation: componentFadeIn 1s ease-out forwards;
}

.slideshow-text-panel {
    width: 20vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 2rem 2rem 4rem; 
    box-sizing: border-box;
}

.slideshow-carousel-panel {
    width: 80vw; 
    position: relative;
    display: flex;
}

.slideshow-track {
    display: flex;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 40px; 
    padding-left: 20px;
    padding-right: 40vw;
}
.slideshow-track::-webkit-scrollbar { display: none; }

.slideshow-slide {
    flex: 0 0 auto; 
    scroll-snap-align: start; 
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.slide-img {
    width: auto;
    max-width: 65vw; 
    height: auto;
    max-height: 70vh;
    object-fit: contain;
}

 
.slide-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.05); 
    color: #333;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    backdrop-filter: blur(4px);
    transition: all 0.2s;
}
.slide-nav-btn:hover { background: rgba(0, 0, 0, 0.12); }
.prev-btn { left: 1rem; }
.next-btn { right: 2rem; } 

@media (max-width: 992px) {
    .paige-slideshow-wrapper { flex-direction: column; }
    .slideshow-text-panel { width: 100vw; padding: 2rem; text-align: center; }
    .slideshow-carousel-panel { width: 100vw !important; }
    .slide-img { max-width: 80vw; }
    .slideshow-track { gap: 20px; padding-right: 20vw; }
}
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-10-18:2025-10-18T11:12:01-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/tommy-emmanuel-10-15-25/</link><pubDate>Sat, 18 Oct 2025 11:12:01 -0500</pubDate><title>Tommy Emmanuel Tour</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[






















    























    



<style>
    .paige-youtube-skeleton-wrapper {
        position: relative;
        width: 100%;
        overflow: hidden;
        background-color: #f6eff3;
    }

    .paige-youtube-skeleton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 3;
        background: linear-gradient(90deg, #f6eff3 25%, #eddfe7 50%, #f6eff3 75%);
        background-size: 200% 100%;
        animation: paigeYoutubeShimmer 1.6s infinite linear;
        transition: opacity 0.4s ease-out, visibility 0.4s;
        will-change: opacity;
    }

    @keyframes paigeYoutubeShimmer {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }

    .paige-youtube-skeleton-wrapper .paige-youtube {
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        will-change: opacity;
    }

     
    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube {
        opacity: 1;
    }

    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube-skeleton {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
</style>

<div class="paige-youtube-skeleton-wrapper" style=" ">
    
    
    <div class="paige-youtube-skeleton"></div>

    <div class="paige-youtube">
        























<div class="paige-video ratio ratio-16x9" >
    






<iframe  allowfullscreen   referrerpolicy="no-referrer-when-downgrade"   src="https://www.youtube.com/embed/i_41dHO3eHc?hl=en&amp;modestbranding=1"   title="YouTube video" ></iframe>

</div>

    </div>

    
    <script>
        (function() {
            const currentShell = document.currentScript.parentElement;
            const targetVideo = currentShell.querySelector('iframe');

            if (targetVideo) {
                
                if (targetVideo.complete || targetVideo.readyState === 'complete') {
                    currentShell.classList.add('video-ready');
                } else {
                    targetVideo.addEventListener('load', function() {
                        window.requestAnimationFrame(function() {
                            currentShell.classList.add('video-ready');
                        });
                    });
                }
            } else {
                
                currentShell.classList.add('video-ready');
            }
        })();
    </script>
</div>
<div style="background-color: #a8dcd9; color: #284e4b; padding: 1.25rem; border-radius: 8px; margin-bottom: 1.5rem;">
  Filmed for the the 2024 Chinese New Year Celebrations at Palo Alto Chinese School.
</div> 
























    
        
            
        
    




<div class="paige-gallery">

<div class="align-items-center column-gap-3 d-flex flex-wrap justify-content-center row-gap-3">































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-1.5de7636fc824e25c89104605191d317fb2f3aadce88d40c32143c47563feeb86.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-2.d05af642603ef771f6a137cc35c780b8364c811dd2610d2c3daa01c391bffa74.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-3.75feb17cde4edde2eecf88d9d8438dcffbc0a1cfc24d55c16b51499ec4ef4a09.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-4.d91bf5b913e3b20acdd0634a5a2e60df9d532ff19f7f372a3818107bdaa0c308.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-5.3ff4bf15e0655c5122d34b60a40b9270377936ad448d6574ae6f6b7577661f5f.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/pacs/pacs-6.ae1eb9470f9e53ae69d76713a79c227d31f16b78dbe5d1be5f1f92d7d2cbfe53.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>



</div>

</div>

]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2024-10-18:2024-10-18T12:01:00-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/films/pacs/</link><pubDate>Fri, 18 Oct 2024 12:01:00 -0500</pubDate><title>PACS Chinese New Year Reel</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[






















    























    



<style>
    .paige-youtube-skeleton-wrapper {
        position: relative;
        width: 100%;
        overflow: hidden;
        background-color: #f6eff3;
    }

    .paige-youtube-skeleton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 3;
        background: linear-gradient(90deg, #f6eff3 25%, #eddfe7 50%, #f6eff3 75%);
        background-size: 200% 100%;
        animation: paigeYoutubeShimmer 1.6s infinite linear;
        transition: opacity 0.4s ease-out, visibility 0.4s;
        will-change: opacity;
    }

    @keyframes paigeYoutubeShimmer {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }

    .paige-youtube-skeleton-wrapper .paige-youtube {
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        will-change: opacity;
    }

     
    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube {
        opacity: 1;
    }

    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube-skeleton {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
</style>

<div class="paige-youtube-skeleton-wrapper" style=" ">
    
    
    <div class="paige-youtube-skeleton"></div>

    <div class="paige-youtube">
        























<div class="paige-video ratio ratio-16x9" >
    






<iframe  allowfullscreen   referrerpolicy="no-referrer-when-downgrade"   src="https://www.youtube.com/embed/oxVR8Ficvj8?hl=en&amp;modestbranding=1"   title="YouTube video" ></iframe>

</div>

    </div>

    
    <script>
        (function() {
            const currentShell = document.currentScript.parentElement;
            const targetVideo = currentShell.querySelector('iframe');

            if (targetVideo) {
                
                if (targetVideo.complete || targetVideo.readyState === 'complete') {
                    currentShell.classList.add('video-ready');
                } else {
                    targetVideo.addEventListener('load', function() {
                        window.requestAnimationFrame(function() {
                            currentShell.classList.add('video-ready');
                        });
                    });
                }
            } else {
                
                currentShell.classList.add('video-ready');
            }
        })();
    </script>
</div>
<blockquote>
<p>In the quiet suburbs of Palo Alto lies a redwood tree that defines the city, community, and culture. Though it once towered over the valley, it now sits hidden to many. Check out the <a href="https://www.paloaltoonline.com/community/2024/05/14/its-health-has-been-neglected-local-teen-creates-documentary-on-palo-altos-most-famous-tree/">article</a>!</p>
</blockquote>
<ul>
<li><strong>Filmed, Edited, and Produced by</strong>
<ul>
<li>Jimmy Tsai</li>
</ul>
</li>
<li><strong>Special Thanks to</strong>
<ul>
<li>Dave Dockter</li>
<li>Steve Staiger</li>
<li>Robert Booty</li>
</ul>
</li>
<li><strong>Historical Images from</strong>
<ul>
<li>The Palo Alto Historical Society</li>
</ul>
</li>
</ul>
























    
        
            
        
    




<div class="paige-gallery">

<div class="align-items-center column-gap-3 d-flex flex-wrap justify-content-center row-gap-3">































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-1.9f27164c3cb6b88c497eb6a48e72ca8cb78497c67e9b63c5be89bdb5966c3679.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-2.e333aac5d12289a91916a6f49f5e01792c01df1dedc309bd5975659daf0705a2.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-3.b4c1e857d9b8c0813e04a212ee3c2181f683ae21fe28b6760929476c3ec1507f.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-4.0721660137f3d17bfd3961fb19b9a0d70463feecad9a49c7c12915a35a7e7b0f.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-5.dbed9c9aac2842a47e04669df93db171f3fe77a20b7db5861b12c07c573a5cae.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/trees-resilience/el-palo-alto-6.2fac9635dd4eee9f18128af6113a65ecf3403290a53e4b02dabf7caebcfbec46.webp"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>



</div>

</div>

]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-10-18:2025-10-18T12:32:52-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/films/trees-resilience/</link><pubDate>Sat, 18 Oct 2025 12:32:52 -0500</pubDate><title>El Palo Alto: A Tree’s Resilience</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<div style="max-width: 90vw; margin-left: auto; margin-right: auto; text-align: center;">
<p></p>
</div>
 
 
 

 

 
     
         
     
 

 

<div style="width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box;">
    <div id="grid-modalGallery-a438e550da56abd939345607aa18d995" class="paige-modal-gallery"> 
         
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="0" 
               aria-label="Slide 1"
               data-aspect="0.7499097146984471"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="1DSCF9335_1_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/1DSCF9335_1_11zon_hu98b3c97a17971a9bc1f110221714adcd_544460_800x0_resize_q75_box.8dbb9ccee774fb434afa9dda303c2ddb1a1874f39236a3b9291a1e953ba658d5.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="1" 
               aria-label="Slide 2"
               data-aspect="1.5323720667232117"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="1DSCF9448_6_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1044"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/1DSCF9448_6_11zon-wide_hu1f6fee5ab0c731406806afd43252450b_615728_1600x0_resize_q75_box.21f2774632ad7bbb5fb284e3b655aa57de24d4a33953eb27e211c9499998677a.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="2" 
               aria-label="Slide 3"
               data-aspect="0.6663967611336032"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9370_2_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9370_2_11zon_hu3e9c631a4c1ead353b21406462614971_494897_800x0_resize_q75_box.f721d1e95256d9c3e9901dee5ba842ff581a54f66a98dab8377d5336bf30cbbb.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="3" 
               aria-label="Slide 4"
               data-aspect="0.7499097146984471"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9431_3_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9431_3_11zon_hu2b841800a7d917804c0d34e3a8a4e54f_579808_800x0_resize_q75_box.e832d1d628d79e18acef0187f78d7606ba0d4831f76d4b7d3ad34554a552020f.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="4" 
               aria-label="Slide 5"
               data-aspect="1.5322183964584357"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9434_4_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1044"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9434_4_11zon-wide_hu1bd1bcc868f279a3a63965a84af5fb1d_691519_1600x0_resize_q75_box.a493b98ad56bc87ae14d039c886bf3be24679f03c4adcc373967d7fc37d533c4.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="5" 
               aria-label="Slide 6"
               data-aspect="0.75"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9447_5_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9447_5_11zon_hu8ec22596f629d5a5472996a7a4e3769a_631228_800x0_resize_q75_box.1c2b26cb973335b749a782e152c2035ea18607a80a8e3d0c58dee29551a3d469.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="6" 
               aria-label="Slide 7"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9479_7_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9479_7_11zon_hue97e0cdc8baa5123974a44c84c72b4a6_594297_800x0_resize_q75_box.795734467772babc4d3327fc1589ebdd152c72268a0d899bf1e8ebcb913cfec4.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="7" 
               aria-label="Slide 8"
               data-aspect="0.6664970745357416"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9520_8_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9520_8_11zon_hu9728619e24798f7c2a447202a16acaee_431940_800x0_resize_q75_box.58f3050a8fb903c1c0e1bc5cdd70af200fd42e5b23faa412ae0a899ee7aca859.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="8" 
               aria-label="Slide 9"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF95640_2_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF95640_2_11zon_hu7994f72a330657442c66882ecb0f40b7_479787_800x0_resize_q75_box.11f3dcd1835b5397ee1b91f7365d1b9919b0d9c0859c8624a348b5afec96a3e2.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="9" 
               aria-label="Slide 10"
               data-aspect="1.500289687137891"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9578_9_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9578_9_11zon_hu7ed707d08fc8e0b8ea3c79e4192ffbc1_630415_800x0_resize_q75_box.c35adca2e2d3b2df18fbc1e9aec7d8f6b1138f3465d543c67c693ee390bac26a.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="10" 
               aria-label="Slide 11"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9625_1_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9625_1_11zon_hu4c11a5856e8231ae59ddfd40f5727964_767318_800x0_resize_q75_box.ba54fc110884c42e0c2ed1b1c0e9250d119d0dd11d8bf0cab85e18d5068f0423.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="11" 
               aria-label="Slide 12"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9678_6_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9678_6_11zon_hu4b340a48b32fc0ff3686dc959c73f8f1_565276_800x0_resize_q75_box.05409d2062c4757f7e88c934d90d5acc625759c31c776c3ac834fe60abc09fbb.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="12" 
               aria-label="Slide 13"
               data-aspect="1.5003536067892504"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9691_4_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF9691_4_11zon_hue764a59ea773d4bf77c433b6a0ae4fbd_519318_800x0_resize_q75_box.de1d6073fb4f61fa62483c3501cbd6ac8c11e8c1840b2e8a224033614888dbae.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="13" 
               aria-label="Slide 14"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF97668_3_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF97668_3_11zon-wide_hu55576ecd31036436c69aed89506283e6_581076_1600x0_resize_q75_box.c661810bd1b718bf007075fc881c3c34854e91dcc097f0f228f8157fe2900c94.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-a438e550da56abd939345607aa18d995" 
               data-bs-slide-to="14" 
               aria-label="Slide 15"
               data-aspect="0.6667360532889259"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF99698_5_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/DSCF99698_5_11zon_hu3dd40631c05e3495bb270f45532f986a_577774_800x0_resize_q75_box.70499aa185cb9d5efa6ad54c852fd556e3f6a69bf31414f5499014be1db10302.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
    </div>
</div>

<div class="modal fade" id="modalGallery-a438e550da56abd939345607aa18d995" tabindex="-1" aria-hidden="true" style="outline: none;"> 
    <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
        <div class="modal-content bg-transparent border-0"> 
            <div class="modal-header border-0 pb-4 justify-content-end"> 
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
            </div> 
            <div class="modal-body pt-0 px-2 text-center"> 
                <div id="carousel-modalGallery-a438e550da56abd939345607aa18d995" class="carousel slide" data-bs-interval="false"> 
                    <div class="carousel-inner"> 
                         
                            <div class="carousel-item active"> 
                                <img src="/jimbot/galleries/rhino-home/1DSCF9335_1_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/1DSCF9448_6_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9370_2_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9431_3_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9434_4_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9447_5_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9479_7_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9520_8_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF95640_2_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9578_9_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9625_1_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9678_6_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF9691_4_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF97668_3_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-home/DSCF99698_5_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                    </div>

                    <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-a438e550da56abd939345607aa18d995" data-bs-slide="prev">
                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Previous</span>
                    </button>

                    <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-a438e550da56abd939345607aa18d995" data-bs-slide="next">
                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Next</span>
                    </button>
                </div> 
            </div> 
        </div> 
    </div> 
</div> 

<script>
    (function() {
        const grid = document.getElementById("grid-modalGallery-a438e550da56abd939345607aa18d995");
        if (!grid) return;

        function resizeGridItems() {
            const items = grid.querySelectorAll('.magnify-target');
            const gridStyles = window.getComputedStyle(grid);
            const rowHeight = parseInt(gridStyles.getPropertyValue('grid-auto-rows')) || 1;
            const rowGap = parseInt(gridStyles.getPropertyValue('gap')) || 0;

            items.forEach(item => {
                const nativeAspect = parseFloat(item.getAttribute('data-aspect'));
                if (!nativeAspect) return;
                const itemWidth = item.getBoundingClientRect().width;
                const calculatedHeight = itemWidth / nativeAspect;
                const rowSpan = Math.ceil((calculatedHeight + rowGap) / (rowHeight + rowGap));
                item.style.gridRowEnd = `span ${rowSpan}`;
            });
        }

        window.addEventListener('resize', resizeGridItems);
        window.addEventListener('load', resizeGridItems);
        setTimeout(resizeGridItems, 100);

        function initGalleryObserver() {
            const items = grid.querySelectorAll('.magnify-target');
            const observerOptions = { root: null, rootMargin: '150px', threshold: 0.01 };
            const observer = new IntersectionObserver((entries, observer) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        const item = entry.target;
                        requestAnimationFrame(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        });
                        observer.unobserve(item);
                    }
                });
            }, observerOptions);
            items.forEach(item => observer.observe(item));
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initGalleryObserver);
        } else {
            initGalleryObserver();
        }

        const modalElement = document.getElementById("modalGallery-a438e550da56abd939345607aa18d995");
        const carouselElement = document.getElementById("carousel-modalGallery-a438e550da56abd939345607aa18d995");
        
        if (modalElement && carouselElement) {
            let isModalOpen = false;

            modalElement.addEventListener('show.bs.modal', function (event) {
                const button = event.relatedTarget; 
                const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                if (slideTo !== null) {
                    const index = parseInt(slideTo, 10);
                    setTimeout(() => {
                        let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                        carouselInstance.to(index);
                    }, 10);
                }
            });

            modalElement.addEventListener('shown.bs.modal', function() {
                isModalOpen = true;
            });

            modalElement.addEventListener('hide.bs.modal', function() {
                isModalOpen = false;
            });

            
            document.addEventListener('keydown', function(e) {
                if (!isModalOpen) return;
                
                let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                if (!carouselInstance) return;

                if (e.key === 'ArrowLeft') {
                    e.preventDefault();
                    carouselInstance.prev();
                } else if (e.key === 'ArrowRight') {
                    e.preventDefault();
                    carouselInstance.next();
                }
            });

            modalElement.addEventListener('click', function(e) {
                const isImg = e.target.tagName === 'IMG';
                const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                
                if (!isImg && !isControl) {
                    const modalInstance = bootstrap.Modal.getInstance(modalElement);
                    if (modalInstance) modalInstance.hide();
                }
            });
        }
    })();
</script>

<style> 
.paige-modal-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 2px;
    gap: 3vw;
    grid-auto-flow: dense;
    padding: 0 5vw;
    width: 100%;
    box-sizing: border-box;
}
.magnify-target {
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important;
}
.grayscale-thumbnail img,
.grayscale-thumbnail picture img {
    filter: grayscale(100%) !important;
    transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.grayscale-thumbnail:hover img,
.grayscale-thumbnail:hover picture img {
    filter: grayscale(0%) !important;
}
.paige-modal-gallery a img,
.paige-modal-gallery a picture img {
    width: 100% !important;
    height: auto !important;
    display: block;
}
body { overflow-x: hidden; }
.grid-wide { grid-column: span 2; }
@media (max-width: 992px) { .paige-modal-gallery { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .paige-modal-gallery { grid-template-columns: repeat(2, 1fr) !important; } .grid-wide { grid-column: span 2; } }
@media (max-width: 480px) { .paige-modal-gallery { grid-template-columns: 1fr !important; } .grid-wide { grid-column: span 1; } }
.magnify-target::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 1px solid #ffffff; 
    pointer-events: none;
    z-index: 10;
}
.magnify-target:hover img,
.magnify-target:hover picture img {
    transform: scale(1.04) !important;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.modal-body { display: flex; flex-direction: column; justify-content: center; } 
.carousel-item.active { display: flex !important; justify-content: center; }
.carousel-control-prev, .carousel-control-next { width: 5%; }
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2021-09-19:2021-09-19T11:12:09-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/rhino-home/</link><pubDate>Sun, 19 Sep 2021 11:12:09 -0500</pubDate><title>RHINO Poetry at Home</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<div style="max-width: 90vw; margin-left: auto; margin-right: auto; text-align: center;">
<p></p>
</div>
 
 
 

 

 
     
         
     
 

 

<div style="width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box;">
    <div id="grid-modalGallery-ad898c4344114c2de662d6c7cee5c9fa" class="paige-modal-gallery"> 
         
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="0" 
               aria-label="Slide 1"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0739_1_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0739_1_11zon_hu6746e1e645f696fb3b95ef5555cfefdc_760316_800x0_resize_q75_box.bafe9690d1a92524696b6faa19541b9da573b99e9da84b6a565b1873ac7c9fef.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="1" 
               aria-label="Slide 2"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0758_4_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0758_4_11zon_hucbad8d5539ed39e93ea7017da71758ab_783175_800x0_resize_q75_box.78a415fcb9d57dcd47b9a70035a5e424a38b50c61eb8b15ce805a8bfe1da0553.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="2" 
               aria-label="Slide 3"
               data-aspect="1.4998061264055835"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0787_6_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0787_6_11zon_hue1d01da87a31cf40f67cf68bac9b2a06_380512_800x0_resize_q75_box.638e69ca6cce82c2a91f68999ee67a1e93a386869af1d171a8b4aa1a758e5bdb.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="3" 
               aria-label="Slide 4"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0793_7_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0793_7_11zon-wide_hu651af2435ed785755fa02bf17335d00b_784501_1600x0_resize_q75_box.46791f5058860055c98ca6d4a7a8103774f7fbcbe1eeae9ea5e8eb4ab095acf4.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="4" 
               aria-label="Slide 5"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0827_8_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0827_8_11zon_hu85d16bddb020085e5b599e8bee04aa98_659846_800x0_resize_q75_box.d85faaaed53441505b6f665a1d51ae16b4ffb72e7e41ca7e537632da289da81e.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="5" 
               aria-label="Slide 6"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0891_11_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0891_11_11zon_hu49687c4a17db4c05a4ef3e373d18bdd1_730471_800x0_resize_q75_box.fcde28edef128a5d756d9253b24fa84d043574afa7d89346b138bab125054350.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="6" 
               aria-label="Slide 7"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0917_12_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0917_12_11zon-wide_hu15ea69e40a345bdcf93c840d0b2091b1_606075_1600x0_resize_q75_box.d080cbd2f434df32bceabdf9f106d461ff68887cba58ae1488e8c603d01583d1.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="7" 
               aria-label="Slide 8"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0942_14_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0942_14_11zon_hu87118179202c199870bbab6a80ed72d0_582537_800x0_resize_q75_box.8b22435420e1cebdaad461537e0587277cfa16e7fd1540a29727426206693f7a.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="8" 
               aria-label="Slide 9"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0978_15_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF0978_15_11zon_hu536d9fd7c99234949df6b47d49ac8be0_730866_800x0_resize_q75_box.1cce9374079f6681ba7906b43930df66cebd77dcc23da1749c13c7610e464e59.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="9" 
               aria-label="Slide 10"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF1072_17_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF1072_17_11zon_hu676bd41259b8dcfb791c05be7fea41eb_806925_800x0_resize_q75_box.5969c1be3576cc7e5fd1ce246340aef93bb1eb39703de25b9313ceff2ea0e75c.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="10" 
               aria-label="Slide 11"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF10764_5_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF10764_5_11zon-wide_hu118dee873e69e6dbe3f917b0802a6628_698948_1600x0_resize_q75_box.3f992874c7e771c9ba1973cd54569a62ec217169743632fa04b04cd6adb6e3a6.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="11" 
               aria-label="Slide 12"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF1084_18_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF1084_18_11zon_hu3522bbfd50b04e7b9c91412ee525e301_701508_800x0_resize_q75_box.bdff61110d8dfbaa626bcabb0051ed6c855eb02afcf0e33781e5b2d13055dcd3.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="12" 
               aria-label="Slide 13"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF1086_19_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF1086_19_11zon_hucc956ddc6a1e9cf9875622e7075407c9_630439_800x0_resize_q75_box.35a3b4ca19ecb7d5635691a9ca7380771993d72bb14e5fb4fa67a713fbf7435e.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="13" 
               aria-label="Slide 14"
               data-aspect="1.5002732240437158"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF1109_20_11zon.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF1109_20_11zon_hucc5924440e76173a840a961cbfbcf0d4_694715_800x0_resize_q75_box.2b119744eb804f58fd78337ffa87874723b9c5c0a243850b393ece100352ee28.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-ad898c4344114c2de662d6c7cee5c9fa" 
               data-bs-slide-to="14" 
               aria-label="Slide 15"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF1129_21_11zon-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/DSCF1129_21_11zon-wide_hu3d2a87703451a13f36eddd869b080202_742175_1600x0_resize_q75_box.9bff31aebd798bc98960a0a0c1ba9d07bf97a4e235edc224d929f0252441e715.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
    </div>
</div>

<div class="modal fade" id="modalGallery-ad898c4344114c2de662d6c7cee5c9fa" tabindex="-1" aria-hidden="true" style="outline: none;"> 
    <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
        <div class="modal-content bg-transparent border-0"> 
            <div class="modal-header border-0 pb-4 justify-content-end"> 
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
            </div> 
            <div class="modal-body pt-0 px-2 text-center"> 
                <div id="carousel-modalGallery-ad898c4344114c2de662d6c7cee5c9fa" class="carousel slide" data-bs-interval="false"> 
                    <div class="carousel-inner"> 
                         
                            <div class="carousel-item active"> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0739_1_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0758_4_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0787_6_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0793_7_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0827_8_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0891_11_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0917_12_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0942_14_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF0978_15_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF1072_17_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF10764_5_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF1084_18_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF1086_19_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF1109_20_11zon.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/rhino-50th/DSCF1129_21_11zon-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                    </div>

                    <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-ad898c4344114c2de662d6c7cee5c9fa" data-bs-slide="prev">
                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Previous</span>
                    </button>

                    <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-ad898c4344114c2de662d6c7cee5c9fa" data-bs-slide="next">
                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Next</span>
                    </button>
                </div> 
            </div> 
        </div> 
    </div> 
</div> 

<script>
    (function() {
        const grid = document.getElementById("grid-modalGallery-ad898c4344114c2de662d6c7cee5c9fa");
        if (!grid) return;

        function resizeGridItems() {
            const items = grid.querySelectorAll('.magnify-target');
            const gridStyles = window.getComputedStyle(grid);
            const rowHeight = parseInt(gridStyles.getPropertyValue('grid-auto-rows')) || 1;
            const rowGap = parseInt(gridStyles.getPropertyValue('gap')) || 0;

            items.forEach(item => {
                const nativeAspect = parseFloat(item.getAttribute('data-aspect'));
                if (!nativeAspect) return;
                const itemWidth = item.getBoundingClientRect().width;
                const calculatedHeight = itemWidth / nativeAspect;
                const rowSpan = Math.ceil((calculatedHeight + rowGap) / (rowHeight + rowGap));
                item.style.gridRowEnd = `span ${rowSpan}`;
            });
        }

        window.addEventListener('resize', resizeGridItems);
        window.addEventListener('load', resizeGridItems);
        setTimeout(resizeGridItems, 100);

        function initGalleryObserver() {
            const items = grid.querySelectorAll('.magnify-target');
            const observerOptions = { root: null, rootMargin: '150px', threshold: 0.01 };
            const observer = new IntersectionObserver((entries, observer) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        const item = entry.target;
                        requestAnimationFrame(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        });
                        observer.unobserve(item);
                    }
                });
            }, observerOptions);
            items.forEach(item => observer.observe(item));
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initGalleryObserver);
        } else {
            initGalleryObserver();
        }

        const modalElement = document.getElementById("modalGallery-ad898c4344114c2de662d6c7cee5c9fa");
        const carouselElement = document.getElementById("carousel-modalGallery-ad898c4344114c2de662d6c7cee5c9fa");
        
        if (modalElement && carouselElement) {
            let isModalOpen = false;

            modalElement.addEventListener('show.bs.modal', function (event) {
                const button = event.relatedTarget; 
                const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                if (slideTo !== null) {
                    const index = parseInt(slideTo, 10);
                    setTimeout(() => {
                        let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                        carouselInstance.to(index);
                    }, 10);
                }
            });

            modalElement.addEventListener('shown.bs.modal', function() {
                isModalOpen = true;
            });

            modalElement.addEventListener('hide.bs.modal', function() {
                isModalOpen = false;
            });

            
            document.addEventListener('keydown', function(e) {
                if (!isModalOpen) return;
                
                let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                if (!carouselInstance) return;

                if (e.key === 'ArrowLeft') {
                    e.preventDefault();
                    carouselInstance.prev();
                } else if (e.key === 'ArrowRight') {
                    e.preventDefault();
                    carouselInstance.next();
                }
            });

            modalElement.addEventListener('click', function(e) {
                const isImg = e.target.tagName === 'IMG';
                const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                
                if (!isImg && !isControl) {
                    const modalInstance = bootstrap.Modal.getInstance(modalElement);
                    if (modalInstance) modalInstance.hide();
                }
            });
        }
    })();
</script>

<style> 
.paige-modal-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 2px;
    gap: 3vw;
    grid-auto-flow: dense;
    padding: 0 5vw;
    width: 100%;
    box-sizing: border-box;
}
.magnify-target {
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important;
}
.grayscale-thumbnail img,
.grayscale-thumbnail picture img {
    filter: grayscale(100%) !important;
    transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.grayscale-thumbnail:hover img,
.grayscale-thumbnail:hover picture img {
    filter: grayscale(0%) !important;
}
.paige-modal-gallery a img,
.paige-modal-gallery a picture img {
    width: 100% !important;
    height: auto !important;
    display: block;
}
body { overflow-x: hidden; }
.grid-wide { grid-column: span 2; }
@media (max-width: 992px) { .paige-modal-gallery { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .paige-modal-gallery { grid-template-columns: repeat(2, 1fr) !important; } .grid-wide { grid-column: span 2; } }
@media (max-width: 480px) { .paige-modal-gallery { grid-template-columns: 1fr !important; } .grid-wide { grid-column: span 1; } }
.magnify-target::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 1px solid #ffffff; 
    pointer-events: none;
    z-index: 10;
}
.magnify-target:hover img,
.magnify-target:hover picture img {
    transform: scale(1.04) !important;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.modal-body { display: flex; flex-direction: column; justify-content: center; } 
.carousel-item.active { display: flex !important; justify-content: center; }
.carousel-control-prev, .carousel-control-next { width: 5%; }
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2021-09-19:2021-09-19T11:12:09-01:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/rhino-50th/</link><pubDate>Sun, 19 Sep 2021 11:12:09 -0100</pubDate><title>RHINO Poetry 50th Anniversary</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<style>
  /* 1. Hide the title elements */
  main h1, 
  .paige-header h1, 
  #paige-metadata h1, 
  .display-1, .display-2, .display-3, .display-4, .display-5 { 
    display: none !important; 
  }

  /* 2. Disregard layout restrictions and force center the slideshow wrap */
  .paige-page, main > div {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 3. Ensure the main layout container scales correctly to prevent scroll overlaps */
  main {
    min-height: 80vh !important;
    position: relative !important;
  }
</style>
 
 
 
 




    
    


<div class="paige-slideshow-wrapper">
    
    
    <div class="slideshow-text-panel">
        <div class="slideshow-text-content">
            A hazel-tinted look at life in Chicago.
        </div>
    </div>
    

    
    <div class="slideshow-carousel-panel" style="">
        <div class="slideshow-track" id="track-0">
            
            
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/2-diversey_hu2a2f329bec9426f2600f3aea1cb0f52f_1715302_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="2-diversey.jpg" class="rounded-0 slide-img" loading="eager" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/5-chicago-protest-1_hu2a2f329bec9426f2600f3aea1cb0f52f_3029100_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="5-chicago-protest-1.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/5-chicago-protest-2_hu2a2f329bec9426f2600f3aea1cb0f52f_3404711_1600x0_resize_q80_box.jpg" width="1600" height="2400" alt="5-chicago-protest-2.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/6-sewing_man_hu29a1a9eaabb383013db79e8ce6ebaf2a_84740_1600x0_resize_q80_box.jpg" width="1600" height="1066" alt="6-sewing_man.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/DSCF0530_02_hu2a2f329bec9426f2600f3aea1cb0f52f_3158940_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF0530_02.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-hazel/DSCF0707_hu2a2f329bec9426f2600f3aea1cb0f52f_1247902_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF0707.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                
            
            
        </div>

        
        
        <button class="slide-nav-btn prev-btn" aria-label="Previous image" onclick="document.getElementById('track-0').scrollBy({ left: -window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
        </button>
        <button class="slide-nav-btn next-btn" aria-label="Next image" onclick="document.getElementById('track-0').scrollBy({ left: window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </button>
        
    </div>
</div>

<style>
 
@keyframes componentFadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);  
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.paige-slideshow-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    background: transparent;
    overflow: hidden;
    min-height: 450px;

     
    opacity: 0; 
    animation: componentFadeIn 1s ease-out forwards;
}

.slideshow-text-panel {
    width: 20vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 2rem 2rem 4rem; 
    box-sizing: border-box;
}

.slideshow-carousel-panel {
    width: 80vw; 
    position: relative;
    display: flex;
}

.slideshow-track {
    display: flex;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 40px; 
    padding-left: 20px;
    padding-right: 40vw;
}
.slideshow-track::-webkit-scrollbar { display: none; }

.slideshow-slide {
    flex: 0 0 auto; 
    scroll-snap-align: start; 
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.slide-img {
    width: auto;
    max-width: 65vw; 
    height: auto;
    max-height: 70vh;
    object-fit: contain;
}

 
.slide-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.05); 
    color: #333;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    backdrop-filter: blur(4px);
    transition: all 0.2s;
}
.slide-nav-btn:hover { background: rgba(0, 0, 0, 0.12); }
.prev-btn { left: 1rem; }
.next-btn { right: 2rem; } 

@media (max-width: 992px) {
    .paige-slideshow-wrapper { flex-direction: column; }
    .slideshow-text-panel { width: 100vw; padding: 2rem; text-align: center; }
    .slideshow-carousel-panel { width: 100vw !important; }
    .slide-img { max-width: 80vw; }
    .slideshow-track { gap: 20px; padding-right: 20vw; }
}
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2022-01-19:2022-01-19T11:12:09-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/project-hazel/</link><pubDate>Wed, 19 Jan 2022 11:12:09 -0500</pubDate><title>Hazel</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<div style="max-width: 90vw; margin-left: auto; margin-right: auto; text-align: center;">
<p></p>
</div>
 
 
 

 

 
     
         
     
 

 

<div style="width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box;">
    <div id="grid-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" class="paige-modal-gallery"> 
         
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" 
               data-bs-slide-to="0" 
               aria-label="Slide 1"
               data-aspect="0.7499298344092057"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="3-CortezeHenge.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/people/3-CortezeHenge_huae7cb7855ffb80a111d74a83da6f572e_373929_800x0_resize_q75_box.2c8b4619fc552e8f327f93c7fbe68fc06cfcecf881686f2e2020e43af4876b0e.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" 
               data-bs-slide-to="1" 
               aria-label="Slide 2"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0145.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/people/DSCF0145_hu2a2f329bec9426f2600f3aea1cb0f52f_1959217_800x0_resize_q75_box.747ed8b176a40b6266039c0a012a6769a53c23291a71ddd7ff3f0d0b406a9505.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" 
               data-bs-slide-to="2" 
               aria-label="Slide 3"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0246.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/people/DSCF0246_hu2a2f329bec9426f2600f3aea1cb0f52f_4154061_800x0_resize_q75_box.ac93c6413b5719203f37994732ed4b7c6d1d72d30767ce7ea33aeb24f4769e10.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" 
               data-bs-slide-to="3" 
               aria-label="Slide 4"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF0349.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/people/DSCF0349_hu2a2f329bec9426f2600f3aea1cb0f52f_2768077_800x0_resize_q75_box.f0b36404ef0a06a25f6c4ab1931fd9dd9234044c9e58ff12cd3689481e5ca20e.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" 
               data-bs-slide-to="4" 
               aria-label="Slide 5"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF9958.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/people/DSCF9958_hu2a2f329bec9426f2600f3aea1cb0f52f_2530793_800x0_resize_q75_box.ce1cffbc05ee834d7f0147a1b8efdf023705f30d9845ba7b659a22f0e23d5093.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
    </div>
</div>

<div class="modal fade" id="modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" tabindex="-1" aria-hidden="true" style="outline: none;"> 
    <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
        <div class="modal-content bg-transparent border-0"> 
            <div class="modal-header border-0 pb-4 justify-content-end"> 
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
            </div> 
            <div class="modal-body pt-0 px-2 text-center"> 
                <div id="carousel-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" class="carousel slide" data-bs-interval="false"> 
                    <div class="carousel-inner"> 
                         
                            <div class="carousel-item active"> 
                                <img src="/jimbot/galleries/people/3-CortezeHenge.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/people/DSCF0145.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/people/DSCF0246.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/people/DSCF0349.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/people/DSCF9958.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                    </div>

                    <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" data-bs-slide="prev">
                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Previous</span>
                    </button>

                    <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20" data-bs-slide="next">
                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Next</span>
                    </button>
                </div> 
            </div> 
        </div> 
    </div> 
</div> 

<script>
    (function() {
        const grid = document.getElementById("grid-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20");
        if (!grid) return;

        function resizeGridItems() {
            const items = grid.querySelectorAll('.magnify-target');
            const gridStyles = window.getComputedStyle(grid);
            const rowHeight = parseInt(gridStyles.getPropertyValue('grid-auto-rows')) || 1;
            const rowGap = parseInt(gridStyles.getPropertyValue('gap')) || 0;

            items.forEach(item => {
                const nativeAspect = parseFloat(item.getAttribute('data-aspect'));
                if (!nativeAspect) return;
                const itemWidth = item.getBoundingClientRect().width;
                const calculatedHeight = itemWidth / nativeAspect;
                const rowSpan = Math.ceil((calculatedHeight + rowGap) / (rowHeight + rowGap));
                item.style.gridRowEnd = `span ${rowSpan}`;
            });
        }

        window.addEventListener('resize', resizeGridItems);
        window.addEventListener('load', resizeGridItems);
        setTimeout(resizeGridItems, 100);

        function initGalleryObserver() {
            const items = grid.querySelectorAll('.magnify-target');
            const observerOptions = { root: null, rootMargin: '150px', threshold: 0.01 };
            const observer = new IntersectionObserver((entries, observer) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        const item = entry.target;
                        requestAnimationFrame(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        });
                        observer.unobserve(item);
                    }
                });
            }, observerOptions);
            items.forEach(item => observer.observe(item));
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initGalleryObserver);
        } else {
            initGalleryObserver();
        }

        const modalElement = document.getElementById("modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20");
        const carouselElement = document.getElementById("carousel-modalGallery-0ea34acbb4fe1b2694ad9e0cec028f20");
        
        if (modalElement && carouselElement) {
            let isModalOpen = false;

            modalElement.addEventListener('show.bs.modal', function (event) {
                const button = event.relatedTarget; 
                const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                if (slideTo !== null) {
                    const index = parseInt(slideTo, 10);
                    setTimeout(() => {
                        let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                        carouselInstance.to(index);
                    }, 10);
                }
            });

            modalElement.addEventListener('shown.bs.modal', function() {
                isModalOpen = true;
            });

            modalElement.addEventListener('hide.bs.modal', function() {
                isModalOpen = false;
            });

            
            document.addEventListener('keydown', function(e) {
                if (!isModalOpen) return;
                
                let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                if (!carouselInstance) return;

                if (e.key === 'ArrowLeft') {
                    e.preventDefault();
                    carouselInstance.prev();
                } else if (e.key === 'ArrowRight') {
                    e.preventDefault();
                    carouselInstance.next();
                }
            });

            modalElement.addEventListener('click', function(e) {
                const isImg = e.target.tagName === 'IMG';
                const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                
                if (!isImg && !isControl) {
                    const modalInstance = bootstrap.Modal.getInstance(modalElement);
                    if (modalInstance) modalInstance.hide();
                }
            });
        }
    })();
</script>

<style> 
.paige-modal-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 2px;
    gap: 3vw;
    grid-auto-flow: dense;
    padding: 0 5vw;
    width: 100%;
    box-sizing: border-box;
}
.magnify-target {
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important;
}
.grayscale-thumbnail img,
.grayscale-thumbnail picture img {
    filter: grayscale(100%) !important;
    transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.grayscale-thumbnail:hover img,
.grayscale-thumbnail:hover picture img {
    filter: grayscale(0%) !important;
}
.paige-modal-gallery a img,
.paige-modal-gallery a picture img {
    width: 100% !important;
    height: auto !important;
    display: block;
}
body { overflow-x: hidden; }
.grid-wide { grid-column: span 2; }
@media (max-width: 992px) { .paige-modal-gallery { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .paige-modal-gallery { grid-template-columns: repeat(2, 1fr) !important; } .grid-wide { grid-column: span 2; } }
@media (max-width: 480px) { .paige-modal-gallery { grid-template-columns: 1fr !important; } .grid-wide { grid-column: span 1; } }
.magnify-target::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 1px solid #ffffff; 
    pointer-events: none;
    z-index: 10;
}
.magnify-target:hover img,
.magnify-target:hover picture img {
    transform: scale(1.04) !important;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.modal-body { display: flex; flex-direction: column; justify-content: center; } 
.carousel-item.active { display: flex !important; justify-content: center; }
.carousel-control-prev, .carousel-control-next { width: 5%; }
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2021-10-19:2021-10-19T12:12:08-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/people/</link><pubDate>Tue, 19 Oct 2021 12:12:08 -0500</pubDate><title>People</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<div style="max-width: 90vw; margin-left: auto; margin-right: auto; text-align: center;">
<p></p>
</div>
 
 
 

 

 
     
         
     
 

 

<div style="width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box;">
    <div id="grid-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" class="paige-modal-gallery"> 
         
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="0" 
               aria-label="Slide 1"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2009.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2009_hu2a2f329bec9426f2600f3aea1cb0f52f_437941_800x0_resize_q75_box.965283f3a86ace993cce366b06552ee6131e3ada7273d6993873286f247ca027.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="1" 
               aria-label="Slide 2"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2092.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2092_hu2a2f329bec9426f2600f3aea1cb0f52f_540907_800x0_resize_q75_box.989fc545525e6d25d20b9603bd352f603e139b489654267f0245a004294fdcdb.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="2" 
               aria-label="Slide 3"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2133-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2133-wide_hu2a2f329bec9426f2600f3aea1cb0f52f_469131_1600x0_resize_q75_box.f56a706968795ed591c56b91b091d689f40c6f7ee949b43285bffb04efb3b671.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="3" 
               aria-label="Slide 4"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2242-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2242-wide_hu2a2f329bec9426f2600f3aea1cb0f52f_420547_1600x0_resize_q75_box.34e50d1f48785999078c998a93053d194f8dbd90585c8029aa4dcc429b6d5aaf.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="4" 
               aria-label="Slide 5"
               data-aspect="0.7499098449332853"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2247.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2247_hu2a2f329bec9426f2600f3aea1cb0f52f_299223_800x0_resize_q75_box.c707643364c0675f7a9104e3c08f29b5ace24533df6543b1b610cf9159b0a852.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="5" 
               aria-label="Slide 6"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2279-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2279-wide_hu2a2f329bec9426f2600f3aea1cb0f52f_456813_1600x0_resize_q75_box.e216b74e6d7b4f15934081805236b93b8afd6d64dd992bba50562d79a3e47afc.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="6" 
               aria-label="Slide 7"
               data-aspect="0.6666132393011701"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2332.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2332_hu2a2f329bec9426f2600f3aea1cb0f52f_385550_800x0_resize_q75_box.711d9b938ca87c225824045e840c1359b9efe28a3a66fd82a3612441ddb8e920.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="7" 
               aria-label="Slide 8"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF2368.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF2368_hu2a2f329bec9426f2600f3aea1cb0f52f_475894_800x0_resize_q75_box.0057fdad7871f6039c7fcfcdb8965f297ecbdcaf8e43573f2bbf6d415ec9bc3e.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="8" 
               aria-label="Slide 9"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF3620.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF3620_hu2a2f329bec9426f2600f3aea1cb0f52f_385759_800x0_resize_q75_box.10bde821874118e339807f2c3d177ba1e861c1e4d6a0e82beb2f7a6b6f21c0ec.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="9" 
               aria-label="Slide 10"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7595.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF7595_hu2a2f329bec9426f2600f3aea1cb0f52f_584505_800x0_resize_q75_box.2ffafb3a36dd2acb449bcacd07c6a7d1321039f67dc0603a4ca91003fed47dc5.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="10" 
               aria-label="Slide 11"
               data-aspect="0.7499098449332853"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7644.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF7644_hu2a2f329bec9426f2600f3aea1cb0f52f_196892_800x0_resize_q75_box.16b7fbfafda15f1303c3d7cf17b4059ccf8f37a23d2de3debb62984a181612de.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="11" 
               aria-label="Slide 12"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7664.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF7664_hu2a2f329bec9426f2600f3aea1cb0f52f_328892_800x0_resize_q75_box.009ea15b4c0bc8e51ec409786c9ae03c8f1f07f1408fd6bcafe6896f7e197228.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="12" 
               aria-label="Slide 13"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7709.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF7709_hu2a2f329bec9426f2600f3aea1cb0f52f_374884_800x0_resize_q75_box.55a8ed7753a9617069a32b89bc453e382d68e9841f5bffc7ccf4babc14a7f93b.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="13" 
               aria-label="Slide 14"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7727.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF7727_hu2a2f329bec9426f2600f3aea1cb0f52f_404961_800x0_resize_q75_box.280c5c378597f4afc2d0ac741eddf3351eccaa514e4d17bdde752ac53d1ccab1.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="14" 
               aria-label="Slide 15"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8294.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8294_hu2a2f329bec9426f2600f3aea1cb0f52f_450977_800x0_resize_q75_box.45b188b75bfe80b81e505ce7e994b5224b63268b870acb617b14a2ff8863f3e1.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="15" 
               aria-label="Slide 16"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8421.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8421_hu2a2f329bec9426f2600f3aea1cb0f52f_277148_800x0_resize_q75_box.9d4ec50c37007c78934ae20fccfdf42fcf63f077d37dedffa15cc4f3d33c66d0.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="16" 
               aria-label="Slide 17"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8720.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8720_hu2a2f329bec9426f2600f3aea1cb0f52f_714427_800x0_resize_q75_box.a0268873226dcea11134c0925fda18ce7fa00a002d32d5c727c300fdc1f291a6.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="17" 
               aria-label="Slide 18"
               data-aspect="0.7498595768582662"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8751.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8751_hu2a2f329bec9426f2600f3aea1cb0f52f_602001_800x0_resize_q75_box.74398b4809bd20476289de5cba0fb704c43a17e76b328731a758ab78c2c0fff4.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="18" 
               aria-label="Slide 19"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8769-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8769-wide_hu2a2f329bec9426f2600f3aea1cb0f52f_652839_1600x0_resize_q75_box.5eceff2e4dcb84ccc88fc45ab9feec1c0e7e12d80499266a9206b4c930d99b49.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="19" 
               aria-label="Slide 20"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8782.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8782_hu2a2f329bec9426f2600f3aea1cb0f52f_624381_800x0_resize_q75_box.339682059562f386d99f9616f7310a11dca5fd30c536283291954d779cbd0419.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  " 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" 
               data-bs-slide-to="20" 
               aria-label="Slide 21"
               data-aspect="0.74995070005916"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8786.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/urbex/DSCF8786_hu2a2f329bec9426f2600f3aea1cb0f52f_433344_800x0_resize_q75_box.a1edb6416b7561a6e5fbdc92511cc03065267aac1f99aff3cfb61b4705e131a3.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
    </div>
</div>

<div class="modal fade" id="modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" tabindex="-1" aria-hidden="true" style="outline: none;"> 
    <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
        <div class="modal-content bg-transparent border-0"> 
            <div class="modal-header border-0 pb-4 justify-content-end"> 
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
            </div> 
            <div class="modal-body pt-0 px-2 text-center"> 
                <div id="carousel-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" class="carousel slide" data-bs-interval="false"> 
                    <div class="carousel-inner"> 
                         
                            <div class="carousel-item active"> 
                                <img src="/jimbot/galleries/urbex/DSCF2009.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2092.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2133-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2242-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2247.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2279-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2332.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF2368.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF3620.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF7595.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF7644.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF7664.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF7709.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF7727.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8294.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8421.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8720.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8751.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8769-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8782.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/urbex/DSCF8786.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                    </div>

                    <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" data-bs-slide="prev">
                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Previous</span>
                    </button>

                    <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1" data-bs-slide="next">
                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Next</span>
                    </button>
                </div> 
            </div> 
        </div> 
    </div> 
</div> 

<script>
    (function() {
        const grid = document.getElementById("grid-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1");
        if (!grid) return;

        function resizeGridItems() {
            const items = grid.querySelectorAll('.magnify-target');
            const gridStyles = window.getComputedStyle(grid);
            const rowHeight = parseInt(gridStyles.getPropertyValue('grid-auto-rows')) || 1;
            const rowGap = parseInt(gridStyles.getPropertyValue('gap')) || 0;

            items.forEach(item => {
                const nativeAspect = parseFloat(item.getAttribute('data-aspect'));
                if (!nativeAspect) return;
                const itemWidth = item.getBoundingClientRect().width;
                const calculatedHeight = itemWidth / nativeAspect;
                const rowSpan = Math.ceil((calculatedHeight + rowGap) / (rowHeight + rowGap));
                item.style.gridRowEnd = `span ${rowSpan}`;
            });
        }

        window.addEventListener('resize', resizeGridItems);
        window.addEventListener('load', resizeGridItems);
        setTimeout(resizeGridItems, 100);

        function initGalleryObserver() {
            const items = grid.querySelectorAll('.magnify-target');
            const observerOptions = { root: null, rootMargin: '150px', threshold: 0.01 };
            const observer = new IntersectionObserver((entries, observer) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        const item = entry.target;
                        requestAnimationFrame(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        });
                        observer.unobserve(item);
                    }
                });
            }, observerOptions);
            items.forEach(item => observer.observe(item));
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initGalleryObserver);
        } else {
            initGalleryObserver();
        }

        const modalElement = document.getElementById("modalGallery-f2404dcdf1e4b165d867696d0ad29ee1");
        const carouselElement = document.getElementById("carousel-modalGallery-f2404dcdf1e4b165d867696d0ad29ee1");
        
        if (modalElement && carouselElement) {
            let isModalOpen = false;

            modalElement.addEventListener('show.bs.modal', function (event) {
                const button = event.relatedTarget; 
                const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                if (slideTo !== null) {
                    const index = parseInt(slideTo, 10);
                    setTimeout(() => {
                        let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                        carouselInstance.to(index);
                    }, 10);
                }
            });

            modalElement.addEventListener('shown.bs.modal', function() {
                isModalOpen = true;
            });

            modalElement.addEventListener('hide.bs.modal', function() {
                isModalOpen = false;
            });

            
            document.addEventListener('keydown', function(e) {
                if (!isModalOpen) return;
                
                let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                if (!carouselInstance) return;

                if (e.key === 'ArrowLeft') {
                    e.preventDefault();
                    carouselInstance.prev();
                } else if (e.key === 'ArrowRight') {
                    e.preventDefault();
                    carouselInstance.next();
                }
            });

            modalElement.addEventListener('click', function(e) {
                const isImg = e.target.tagName === 'IMG';
                const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                
                if (!isImg && !isControl) {
                    const modalInstance = bootstrap.Modal.getInstance(modalElement);
                    if (modalInstance) modalInstance.hide();
                }
            });
        }
    })();
</script>

<style> 
.paige-modal-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 2px;
    gap: 3vw;
    grid-auto-flow: dense;
    padding: 0 5vw;
    width: 100%;
    box-sizing: border-box;
}
.magnify-target {
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important;
}
.grayscale-thumbnail img,
.grayscale-thumbnail picture img {
    filter: grayscale(100%) !important;
    transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.grayscale-thumbnail:hover img,
.grayscale-thumbnail:hover picture img {
    filter: grayscale(0%) !important;
}
.paige-modal-gallery a img,
.paige-modal-gallery a picture img {
    width: 100% !important;
    height: auto !important;
    display: block;
}
body { overflow-x: hidden; }
.grid-wide { grid-column: span 2; }
@media (max-width: 992px) { .paige-modal-gallery { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .paige-modal-gallery { grid-template-columns: repeat(2, 1fr) !important; } .grid-wide { grid-column: span 2; } }
@media (max-width: 480px) { .paige-modal-gallery { grid-template-columns: 1fr !important; } .grid-wide { grid-column: span 1; } }
.magnify-target::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 1px solid #ffffff; 
    pointer-events: none;
    z-index: 10;
}
.magnify-target:hover img,
.magnify-target:hover picture img {
    transform: scale(1.04) !important;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.modal-body { display: flex; flex-direction: column; justify-content: center; } 
.carousel-item.active { display: flex !important; justify-content: center; }
.carousel-control-prev, .carousel-control-next { width: 5%; }
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-10-19:2025-10-19T11:12:09-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/urbex/</link><pubDate>Sun, 19 Oct 2025 11:12:09 -0500</pubDate><title>Urbex</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[






















    























    



<style>
    .paige-youtube-skeleton-wrapper {
        position: relative;
        width: 100%;
        overflow: hidden;
        background-color: #f6eff3;
    }

    .paige-youtube-skeleton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 3;
        background: linear-gradient(90deg, #f6eff3 25%, #eddfe7 50%, #f6eff3 75%);
        background-size: 200% 100%;
        animation: paigeYoutubeShimmer 1.6s infinite linear;
        transition: opacity 0.4s ease-out, visibility 0.4s;
        will-change: opacity;
    }

    @keyframes paigeYoutubeShimmer {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
    }

    .paige-youtube-skeleton-wrapper .paige-youtube {
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        will-change: opacity;
    }

     
    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube {
        opacity: 1;
    }

    .paige-youtube-skeleton-wrapper.video-ready .paige-youtube-skeleton {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
</style>

<div class="paige-youtube-skeleton-wrapper" style=" ">
    
    
    <div class="paige-youtube-skeleton"></div>

    <div class="paige-youtube">
        























<div class="paige-video ratio ratio-16x9" >
    






<iframe  allowfullscreen   referrerpolicy="no-referrer-when-downgrade"   src="https://www.youtube.com/embed/JX5NuzyEhmg?hl=en&amp;modestbranding=1"   title="YouTube video" ></iframe>

</div>

    </div>

    
    <script>
        (function() {
            const currentShell = document.currentScript.parentElement;
            const targetVideo = currentShell.querySelector('iframe');

            if (targetVideo) {
                
                if (targetVideo.complete || targetVideo.readyState === 'complete') {
                    currentShell.classList.add('video-ready');
                } else {
                    targetVideo.addEventListener('load', function() {
                        window.requestAnimationFrame(function() {
                            currentShell.classList.add('video-ready');
                        });
                    });
                }
            } else {
                
                currentShell.classList.add('video-ready');
            }
        })();
    </script>
</div>
<div style="background-color: #a8dcd9; color: #284e4b; padding: 1.25rem; border-radius: 8px; margin-bottom: 1.5rem;">
  A trip through Yosemite and Mammoth Lakes during the yellow fall.
</div>
























    
        
            
        
    




<div class="paige-gallery">

<div class="align-items-center column-gap-3 d-flex flex-wrap justify-content-center row-gap-3">































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-1.c7bfbb33dfbe8daea3db2252397eca18e65e3fa7f43922125fff972d7a6b624a.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-2.b2d4cadce690adcf13d0159dd021c680a477937a7f008397cdf5ef2d1173ed2e.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-3.004617302a8198ad00421342ddc411ed706e31768c85d9455b07d2239492b7e1.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-4.2a496c88c7347a8bab9120b73902d2565262762c79c18b4a22c494e81d3ac075.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-5.5eb92f81102f91230ed63ea06752b7b329479fb46bb59a5536bcf89741f9bc7d.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>































    



    

    
        

        
            
        

        

        
    
        

        

        
    

    



    







    







    
    
    
    
    

    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img   class="rounded-1"  crossorigin="anonymous"   height="1080"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/films/autumn-palette/autumn-palette-6.adc58ab2a50fa7b1733c5768797249bbfa9bdeab20997bdca93f9d47c12e33f0.jpg"   style="height: auto; max-width: 100%; width: 40vw"    width="1920" >
</span>



</div>

</div>

]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-09-18:2025-09-18T11:07:00-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/films/autumn-palette/</link><pubDate>Thu, 18 Sep 2025 11:07:00 -0500</pubDate><title>Autumn Palette</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<style>
  /* 1. Hide the title elements */
  main h1, 
  .paige-header h1, 
  #paige-metadata h1, 
  .display-1, .display-2, .display-3, .display-4, .display-5 { 
    display: none !important; 
  }

  /* 2. Disregard layout restrictions and force center the slideshow wrap */
  .paige-page, main > div {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 3. Ensure the main layout container scales correctly to prevent scroll overlaps */
  main {
    min-height: 80vh !important;
    position: relative !important;
  }
</style>
 
 
 
 




    
    


<div class="paige-slideshow-wrapper">
    
    
    <div class="slideshow-text-panel">
        <div class="slideshow-text-content">
            Lavender is a really pretty color.
        </div>
    </div>
    

    
    <div class="slideshow-carousel-panel" style="">
        <div class="slideshow-track" id="track-0">
            
            
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-lavender/1DSCF2199_01_hu2a2f329bec9426f2600f3aea1cb0f52f_264270_1600x0_resize_q80_box.jpg" width="1600" height="2000" alt="1DSCF2199_01.jpg" class="rounded-0 slide-img" loading="eager" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-lavender/DSCF2014_hu2a2f329bec9426f2600f3aea1cb0f52f_299233_1600x0_resize_q80_box.jpg" width="1600" height="1600" alt="DSCF2014.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-lavender/DSCF2150_hu2a2f329bec9426f2600f3aea1cb0f52f_437245_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="DSCF2150.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-lavender/DSCF2153_hu2a2f329bec9426f2600f3aea1cb0f52f_165458_1600x0_resize_q80_box.jpg" width="1600" height="1600" alt="DSCF2153.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                 
                     
                    
                    
                    
                    <div class="slideshow-slide">
                        
                            
                            <img src="/jimbot/galleries/project-lavender/project-rose_hu2a2f329bec9426f2600f3aea1cb0f52f_380775_1600x0_resize_q80_box.jpg" width="1600" height="1067" alt="project-rose.jpg" class="rounded-0 slide-img" loading="lazy" decoding="async">
                        
                    </div>
                
            
            
        </div>

        
        
        <button class="slide-nav-btn prev-btn" aria-label="Previous image" onclick="document.getElementById('track-0').scrollBy({ left: -window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
        </button>
        <button class="slide-nav-btn next-btn" aria-label="Next image" onclick="document.getElementById('track-0').scrollBy({ left: window.innerWidth * 0.65, behavior: 'smooth' })">
            <svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </button>
        
    </div>
</div>

<style>
 
@keyframes componentFadeIn {
    from {
        opacity: 0;
        transform: translateY(8px);  
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.paige-slideshow-wrapper {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    background: transparent;
    overflow: hidden;
    min-height: 450px;

     
    opacity: 0; 
    animation: componentFadeIn 1s ease-out forwards;
}

.slideshow-text-panel {
    width: 20vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 2rem 2rem 2rem 4rem; 
    box-sizing: border-box;
}

.slideshow-carousel-panel {
    width: 80vw; 
    position: relative;
    display: flex;
}

.slideshow-track {
    display: flex;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 40px; 
    padding-left: 20px;
    padding-right: 40vw;
}
.slideshow-track::-webkit-scrollbar { display: none; }

.slideshow-slide {
    flex: 0 0 auto; 
    scroll-snap-align: start; 
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.slide-img {
    width: auto;
    max-width: 65vw; 
    height: auto;
    max-height: 70vh;
    object-fit: contain;
}

 
.slide-nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.05); 
    color: #333;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    backdrop-filter: blur(4px);
    transition: all 0.2s;
}
.slide-nav-btn:hover { background: rgba(0, 0, 0, 0.12); }
.prev-btn { left: 1rem; }
.next-btn { right: 2rem; } 

@media (max-width: 992px) {
    .paige-slideshow-wrapper { flex-direction: column; }
    .slideshow-text-panel { width: 100vw; padding: 2rem; text-align: center; }
    .slideshow-carousel-panel { width: 100vw !important; }
    .slide-img { max-width: 80vw; }
    .slideshow-track { gap: 20px; padding-right: 20vw; }
}
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-10-19:2025-10-19T12:12:08-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/project-lavender/</link><pubDate>Sun, 19 Oct 2025 12:12:08 -0500</pubDate><title>Lavender</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<div style="max-width: 90vw; margin-left: auto; margin-right: auto; text-align: center;">
<p></p>
</div>
 
 
 

 

 
     
         
     
 

 

<div style="width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; box-sizing: border-box;">
    <div id="grid-modalGallery-1b58c6282485fa6f3299660d46491143" class="paige-modal-gallery"> 
         
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="0" 
               aria-label="Slide 1"
               data-aspect="0.7998653803006507"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="19taiwan-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="2000"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/19taiwan-wide_hubf06d38d1c9e0fef66767d33abe3c7ae_287541_1600x0_resize_q75_box.8a9e0fc2470c58b9e6c56c550a894cd00355876521f8124496a358d0d6253e53.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="1" 
               aria-label="Slide 2"
               data-aspect="0.8"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="911taiwan.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1000"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/911taiwan_hu52ab72576ace4c857bb6a9d9310ff2f7_375880_800x0_resize_q75_box.930188b89e99f73c83942d4c2d191bbf022d70a74786c9cdd951270d58fda525.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="2" 
               aria-label="Slide 3"
               data-aspect="0.799913569576491"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="912taiwan.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1000"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/912taiwan_hua80477084606a60432002e5f1c993380_336033_800x0_resize_q75_box.9aff01c7b2aed992d99a6f5d66c79183ec645d23d02b04019feeddbbeb952f00.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="3" 
               aria-label="Slide 4"
               data-aspect="0.7998419284726339"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="915taiwan.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1000"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/915taiwan_huad37576ca3b6a2ec2c6b873edd3637b1_470097_800x0_resize_q75_box.7075fc26736753cc4198426b1509afc9d703357ea93a5504313eccb9497d479a.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="4" 
               aria-label="Slide 5"
               data-aspect="0.6666131621187801"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7019.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/DSCF7019_hu2a2f329bec9426f2600f3aea1cb0f52f_327134_800x0_resize_q75_box.92e98060bac24e0dd246cd27634189612ccf55cb018e2d1450edcce90bde03f6.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="5" 
               aria-label="Slide 6"
               data-aspect="0.5625"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF7146.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1422"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/DSCF7146_hu2a2f329bec9426f2600f3aea1cb0f52f_263141_800x0_resize_q75_box.409ab9a84877b0024abcfe0d71438e0b6e6d44d07ea66ed1ab141701ffc0e710.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="6" 
               aria-label="Slide 7"
               data-aspect="1.5001215066828675"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8215.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/DSCF8215_hu2a2f329bec9426f2600f3aea1cb0f52f_782901_800x0_resize_q75_box.a8b37325e6d49b8d364c5fe06f4884b4bfde3535b8d6ba79567e68fab77b9f8c.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="7" 
               aria-label="Slide 8"
               data-aspect="1.5"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF8295.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="533"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/DSCF8295_hu2a2f329bec9426f2600f3aea1cb0f52f_648860_800x0_resize_q75_box.142688bbec07c89af713e20f0b928e1a2dbea6e6e6a6ccd449d220d65c025119.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target  grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="8" 
               aria-label="Slide 9"
               data-aspect="0.6666666666666666"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="DSCF98285.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1200"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/DSCF98285_hu2a2f329bec9426f2600f3aea1cb0f52f_676273_800x0_resize_q75_box.265796e4252501244382a00ceeefdc48f332ae52c2c768a8636c3575d4b20c8d.jpg"   style="height: auto; width: 100%"    width="800" >
</span>

                
            </a> 
         
            
             
            

            
            

            <a href="#" class="magnify-target grid-wide grayscale-thumbnail" 
               data-bs-toggle="modal" 
               data-bs-target="#modalGallery-1b58c6282485fa6f3299660d46491143" 
               data-bs-slide-to="9" 
               aria-label="Slide 10"
               data-aspect="1.4996673320026614"> 
                
                
                    




























    



    



    







    







    
    
    
    
    

    
        
            
                
            
        
            
                
                    
                        
                    
                
            
        

        

        

        

        

        
            
        
    

    
    
    
    

    
        

        

        
    






<span class="paige-image">















<img  alt="car_bw-wide.jpg"   class="rounded-0 w-100 h-auto"  crossorigin="anonymous"   height="1067"   loading="lazy"  referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/galleries/project-ash/car_bw-wide_huc4be2669061628ede7237a3ab02e6197_196011_1600x0_resize_q75_box.d9c2e87eb28be9751666eaf5b33d618326b3706d56f8ed36ed26399920c91faf.jpg"   style="height: auto; width: 100%"    width="1600" >
</span>

                
            </a> 
         
    </div>
</div>

<div class="modal fade" id="modalGallery-1b58c6282485fa6f3299660d46491143" tabindex="-1" aria-hidden="true" style="outline: none;"> 
    <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
        <div class="modal-content bg-transparent border-0"> 
            <div class="modal-header border-0 pb-4 justify-content-end"> 
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
            </div> 
            <div class="modal-body pt-0 px-2 text-center"> 
                <div id="carousel-modalGallery-1b58c6282485fa6f3299660d46491143" class="carousel slide" data-bs-interval="false"> 
                    <div class="carousel-inner"> 
                         
                            <div class="carousel-item active"> 
                                <img src="/jimbot/galleries/project-ash/19taiwan-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/911taiwan.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/912taiwan.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/915taiwan.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/DSCF7019.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/DSCF7146.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/DSCF8215.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/DSCF8295.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/DSCF98285.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                            <div class="carousel-item "> 
                                <img src="/jimbot/galleries/project-ash/car_bw-wide.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;" loading="lazy" decoding="async"> 
                            </div> 
                         
                    </div>

                    <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-1b58c6282485fa6f3299660d46491143" data-bs-slide="prev">
                        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Previous</span>
                    </button>

                    <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-1b58c6282485fa6f3299660d46491143" data-bs-slide="next">
                        <span class="carousel-control-next-icon" aria-hidden="true"></span>
                        <span class="visually-hidden">Next</span>
                    </button>
                </div> 
            </div> 
        </div> 
    </div> 
</div> 

<script>
    (function() {
        const grid = document.getElementById("grid-modalGallery-1b58c6282485fa6f3299660d46491143");
        if (!grid) return;

        function resizeGridItems() {
            const items = grid.querySelectorAll('.magnify-target');
            const gridStyles = window.getComputedStyle(grid);
            const rowHeight = parseInt(gridStyles.getPropertyValue('grid-auto-rows')) || 1;
            const rowGap = parseInt(gridStyles.getPropertyValue('gap')) || 0;

            items.forEach(item => {
                const nativeAspect = parseFloat(item.getAttribute('data-aspect'));
                if (!nativeAspect) return;
                const itemWidth = item.getBoundingClientRect().width;
                const calculatedHeight = itemWidth / nativeAspect;
                const rowSpan = Math.ceil((calculatedHeight + rowGap) / (rowHeight + rowGap));
                item.style.gridRowEnd = `span ${rowSpan}`;
            });
        }

        window.addEventListener('resize', resizeGridItems);
        window.addEventListener('load', resizeGridItems);
        setTimeout(resizeGridItems, 100);

        function initGalleryObserver() {
            const items = grid.querySelectorAll('.magnify-target');
            const observerOptions = { root: null, rootMargin: '150px', threshold: 0.01 };
            const observer = new IntersectionObserver((entries, observer) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        const item = entry.target;
                        requestAnimationFrame(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        });
                        observer.unobserve(item);
                    }
                });
            }, observerOptions);
            items.forEach(item => observer.observe(item));
        }
        
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', initGalleryObserver);
        } else {
            initGalleryObserver();
        }

        const modalElement = document.getElementById("modalGallery-1b58c6282485fa6f3299660d46491143");
        const carouselElement = document.getElementById("carousel-modalGallery-1b58c6282485fa6f3299660d46491143");
        
        if (modalElement && carouselElement) {
            let isModalOpen = false;

            modalElement.addEventListener('show.bs.modal', function (event) {
                const button = event.relatedTarget; 
                const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                if (slideTo !== null) {
                    const index = parseInt(slideTo, 10);
                    setTimeout(() => {
                        let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                        carouselInstance.to(index);
                    }, 10);
                }
            });

            modalElement.addEventListener('shown.bs.modal', function() {
                isModalOpen = true;
            });

            modalElement.addEventListener('hide.bs.modal', function() {
                isModalOpen = false;
            });

            
            document.addEventListener('keydown', function(e) {
                if (!isModalOpen) return;
                
                let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                if (!carouselInstance) return;

                if (e.key === 'ArrowLeft') {
                    e.preventDefault();
                    carouselInstance.prev();
                } else if (e.key === 'ArrowRight') {
                    e.preventDefault();
                    carouselInstance.next();
                }
            });

            modalElement.addEventListener('click', function(e) {
                const isImg = e.target.tagName === 'IMG';
                const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                
                if (!isImg && !isControl) {
                    const modalInstance = bootstrap.Modal.getInstance(modalElement);
                    if (modalInstance) modalInstance.hide();
                }
            });
        }
    })();
</script>

<style> 
.paige-modal-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 2px;
    gap: 3vw;
    grid-auto-flow: dense;
    padding: 0 5vw;
    width: 100%;
    box-sizing: border-box;
}
.magnify-target {
    display: block;
    position: relative;
    background-color: transparent !important;
    overflow: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important;
}
.grayscale-thumbnail img,
.grayscale-thumbnail picture img {
    filter: grayscale(100%) !important;
    transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.grayscale-thumbnail:hover img,
.grayscale-thumbnail:hover picture img {
    filter: grayscale(0%) !important;
}
.paige-modal-gallery a img,
.paige-modal-gallery a picture img {
    width: 100% !important;
    height: auto !important;
    display: block;
}
body { overflow-x: hidden; }
.grid-wide { grid-column: span 2; }
@media (max-width: 992px) { .paige-modal-gallery { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 768px) { .paige-modal-gallery { grid-template-columns: repeat(2, 1fr) !important; } .grid-wide { grid-column: span 2; } }
@media (max-width: 480px) { .paige-modal-gallery { grid-template-columns: 1fr !important; } .grid-wide { grid-column: span 1; } }
.magnify-target::after {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 1px solid #ffffff; 
    pointer-events: none;
    z-index: 10;
}
.magnify-target:hover img,
.magnify-target:hover picture img {
    transform: scale(1.04) !important;
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.modal-body { display: flex; flex-direction: column; justify-content: center; } 
.carousel-item.active { display: flex !important; justify-content: center; }
.carousel-control-prev, .carousel-control-next { width: 5%; }
</style>
]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2021-10-19:2021-10-19T12:12:08-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/galleries/project-ash/</link><pubDate>Tue, 19 Oct 2021 12:12:08 -0500</pubDate><title>Ash</title></item><item><author>will.faught@example.com (Will Faught)</author><description><![CDATA[<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/4.0.0/model-viewer.min.js"></script>
<div class="container" style="max-width: 80vw; margin: 0 auto; padding: 0 2vw 5vh 2vw;">
<!-- Wrapped everything inside the new animation envelope -->
<div class="project-animate-wrapper">
<div style="text-align: center; margin-bottom: 2vh; padding-top: 2vh;">
<p style="color: #60435f; font-size: 4rem; font-weight: bold; margin: 0;">Fujifilm XT-4 Cage</p>
</div>
<div style="background-color: #a8dcd9; color: #284e4b; padding: 1.25rem; border-radius: 8px; margin-bottom: 1.5rem;">
  I wanted to create a handle for my Fujifilm X-T4 so I could hold it to stabilize video shots. The Smallrig camera cage for the X-T4 costs around $70-$80 and that&rsquo;s out of my price range of $0 unfortunately, so I wanted to make a usable design that could be made for much more affordably (at the cost of bulk and weight). From scratch, the materials used are not free, but I was able to source everything from the Northwestern shop. This design is the fifth iteration of the camera rig, but there are a lot more to improve about the design. Additional changes in the design will be reflected as I update the website.
</div>
<div class="flex-container" style="display: flex; align-items: center; gap: 2vw; margin-top: 4vh;">
<div style="flex: 1.5; min-width: 40vw;">
    <model-viewer id="assembly-viewer" src="Assembly.gltf" camera-controls auto-rotate shadow-intensity="1.5" shadow-softness="0" exposure="0.8" environment-image="legacy" powerPreference="high-performance" interaction-prompt="none"></model-viewer>
</div>
<div class="rig-card" style="flex: 1; min-width: 300px;">
    <h3 style="font-family: 'Lexend Deca', sans-serif; margin-top: 0; color: #ffffff;">Specs</h3>
    <ul style="line-height: 1.8; list-style-type: none; padding-left: 0; font-size: 0.95rem; color: #ffffff;">
        <li><strong>Size:</strong> 32.1 x 8.3 x 14 cm</li>
        <li><strong>Weight:</strong> 1.32 kg</li>
        <li><strong>Assembly Time:</strong> 30 min</li>
    </ul>
</div>
</div>
<div class="flex-container" style="display: flex; align-items: stretch; gap: 2vw; flex-wrap: wrap; margin-top: 4vh; margin-bottom: 2vh;">
<div style="flex: 1; min-width: 20vw;">
    <div class="rig-card" style="width: 100%; height: 420px; display: flex; flex-direction: column; justify-content: center;">
        <h3 style="font-family: 'Lexend Deca', sans-serif; margin-top: 0; color: #ffffff;">Materials</h3>
        <ul style="line-height: 2.2; list-style-type: disc; padding-left: 1.5rem; font-size: 0.95rem; color: #ffffff; margin-bottom: 0;">
            <li>2020 Aluminum Extrusion</li>
            <li>2020 L Corner Connecter</li>
            <li>2020 Sliding T Nuts</li>
            <li>10-32 3/8" Hex Screws</li>
            <li>10-32 Washers</li>
            <li>1" Diameter Wood Dowels</li>
            <li>Small Wood Screw</li>
            <li>PLA Plastic</li>
        </ul>
    </div>
</div>
<div class="gallery-container" style="flex: 1.5; min-width: 30vw; height: 420px;">
    <div class="gallery-wrapper" style="width: 100%; height: 100%; overflow: hidden; border-radius: 8px;">
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
                
                    
                
            
        
        
        
        
        <div class="paige-gallery">
        
        <div class="align-items-center column-gap-3 d-flex flex-wrap justify-content-center row-gap-3">
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
            
        
            
                
        
                
        
                
            
                
        
                
        
                
            
                
        
                
        
                
            
                
        
                
                    
                
        
                
        
                
            
                
        
                
        
                
            
        
            
        
        
        
            
        
        
        
        
        
        
        
            
        
        
        
        
        
        
        
            
            
            
            
            
        
            
        
            
            
            
            
        
            
                
        
                
        
                
            
        
        
        
        
        
        
        <span class="paige-image">
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <img   class="rounded-2"  crossorigin="anonymous"   height="3024"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/cage1.008503b8677326b626a4427f5da08f1886d164028cb27455644f3840454939f6.jpg"   style="height: 100%; height: auto; max-width: 100%; object-fit: cover; width: 100%"    width="4032" >
        </span>
        
        
        
        </div>
        
        </div>

    </div>
</div>
</div>
<div style="text-align: left; margin-bottom: 2vh; padding-top: 12vh;">
<h1 style="font-family: 'Lexend Deca', sans-serif; font-size: clamp(2rem, 5vw, 3rem); color: white; margin: 0;">XT-4 Attachment Base</h1>
</div>
<div class="flex-container" style="display: flex; align-items: stretch; max-height: 250px; gap: 2vw; margin-top: 4vh; margin-bottom: 6vh; overflow: hidden;">
<div style="flex: 1.5; min-width: 40vw; max-height: 250px;">
    <model-viewer id="cage-viewer" src="CameraCageV5.gltf" camera-controls auto-rotate shadow-intensity="1.5" shadow-softness="0" exposure="0.8" environment-image="legacy" powerPreference="high-performance" interaction-prompt="none"></model-viewer>
</div>
<div class="rig-card" style="flex: 1; min-width: 300px; max-height: 250px; display: flex; flex-direction: column; justify-content: center;">
    <h3 style="font-family: 'Lexend Deca', sans-serif; margin-top: 0; color: #ffffff;">Base Specs</h3>
    <ul style="line-height: 1.6; list-style-type: none; padding-left: 0; font-size: 0.95rem; color: #ffffff; margin-bottom: 0;">
        <li>Print with black Bambulab PLA</li>
        <li>Gyroid inner pattern and 25% infill.</li> 
        <li><a href="CameraCageV5.3mf" download style="color: #ffffff; text-decoration: underline;">Download CameraCageV5</a></li>
    </ul>
</div>
</div>
</div>
</div>
<div style="margin-top: 10vh;">
     
     
     
     
    
     
    
     
         
             
         
     
    
     
    
    
    
    
    <div style="margin: 0 auto; width: 80%;">
        <div id="grid-modalGallery-33f233b13d5c8944e840531446faba82" style="display: block; column-gap: 0.1rem; column-count: 3;" class="paige-modal-gallery"> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="0" aria-label="Slide 1" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="cage1.jpg"   class="rounded-0"  crossorigin="anonymous"   height="563"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/cage1_hub581ba93fcadd9aa778cb10a2bb7463d_482795_750x0_resize_q30_box.a9b1401e1f625f92e041c73e406a273a43733cf59ed2e9cf0bcf008fb3e5f89b.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="1" aria-label="Slide 2" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="cage2.jpg"   class="rounded-0"  crossorigin="anonymous"   height="563"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/cage2_hu657bfaa3ab566b4541a59cec306a6d69_628993_750x0_resize_q30_box.b0b8918e674031f857eff2bf18ef51e54b8beb48bd71a61c34dad7fa9aec5892.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="2" aria-label="Slide 3" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-1.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-1_hud0a6e26ac6892c0f60f288c5b856019c_513000_750x0_resize_q30_box.bb66725c2b7a0520b2cf3156b7bc9106fc4f1edd1f0e2423b631dec96687b992.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="3" aria-label="Slide 4" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-2.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-2_hu07f2ea73fbb4aec97564a17574350d14_366603_750x0_resize_q30_box.801171384514732737c2a4465a5057dc4716da117ac3d38a0012026ff739bdd9.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="4" aria-label="Slide 5" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-3.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-3_hua4cab2d39d611e133d5858e47a5049bb_416907_750x0_resize_q30_box.6046ba830351a12fa83dd0d4e668081a8d56d0d82f948bf4d11c20f106e776c8.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="5" aria-label="Slide 6" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-4.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-4_hu87253d86ce6848c7652f9d348c2402d0_596019_750x0_resize_q30_box.59ad58137c26bed03bf7a7739fd743cbbe504abbeffe6b2c728aab49ba660dcd.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="6" aria-label="Slide 7" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-5.jpg"   class="rounded-0"  crossorigin="anonymous"   height="563"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-5_huc95eae2a30ac346754b24eea771b36e9_370646_750x0_resize_q30_box.555650fa788da85702a883c44ce902149c955adf888ec2351c6c62afc0fece3b.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="7" aria-label="Slide 8" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-6.jpg"   class="rounded-0"  crossorigin="anonymous"   height="676"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-6_huf1edd7a77f889bf3a6ee8b03657639a3_235720_750x0_resize_q30_box.bc6e60c4fbe7897fa30e0d23fb0cfa32a5141e5ae8dd264dc8cf88e005db6677.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="8" aria-label="Slide 9" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-7.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-7_hu06f3cbcab1b120b00bad03aee3f33ad7_579370_750x0_resize_q30_box.81b28ce82b9f8ba3968c18ae714a2b73a373abf735c867a70d17f3ea309d3cf3.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
                 
                
    
                <a href="#" class="magnify-target " data-bs-toggle="modal" data-bs-target="#modalGallery-33f233b13d5c8944e840531446faba82" 
                   data-bs-slide-to="9" aria-label="Slide 10" 
                   style="display: block; break-inside: avoid; opacity: 0; transform: translateY(10px); transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease-in-out !important; overflow: hidden; border-radius: 0; margin-bottom: 0.1rem;"> 
                    
                    
                        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
        
    
    
    
        
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
        
        
        
        
        
    
        
            
                
                    
                
            
                
                    
                        
                            
                        
                    
                
            
                
                    
                        
                    
                
            
    
            
    
            
    
            
    
            
    
            
                
            
        
    
        
        
        
        
    
        
            
    
            
    
            
        
    
    
    
    
    
    
    <span class="paige-image">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <img  alt="xt4-cage-8.jpg"   class="rounded-0"  crossorigin="anonymous"   height="1000"   referrerpolicy="no-referrer"  src="https://jimbo-tsai.github.io/jimbot/projects/xt4cage/xt4-cage-8_hu13868c67f228805d307240a73d486054_470781_750x0_resize_q30_box.78d7f73cd4df45ae22d1efc9666e33314c10c89af95c898440d7956fb5e1a145.jpg"   style="height: auto; width: 100%"    width="750" >
    </span>
    
                    
                </a> 
             
        </div>
    </div>
    
    <div class="modal fade" id="modalGallery-33f233b13d5c8944e840531446faba82" tabindex="-1" aria-hidden="true" style="outline: none;"> 
        <div class="modal-dialog modal-dialog-centered modal-xl" style="max-width: 90vw;"> 
            <div class="modal-content bg-transparent border-0"> 
                <div class="modal-header border-0 pb-4 justify-content-end"> 
                    <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button> 
                </div> 
                <div class="modal-body pt-0 px-2 text-center"> 
                    <div id="carousel-modalGallery-33f233b13d5c8944e840531446faba82" class="carousel slide" data-bs-interval="false"> 
                        <div class="carousel-inner"> 
                             
                                <div class="carousel-item active"> 
                                    <img src="/jimbot/projects/xt4cage/cage1.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/cage2.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-1.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-2.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-3.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-4.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-5.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-6.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-7.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                                <div class="carousel-item "> 
                                    <img src="/jimbot/projects/xt4cage/xt4-cage-8.jpg" class="d-block img-fluid" alt="Gallery Image" style="max-height: 80vh; margin: 0 auto; object-fit: contain;"> 
                                </div> 
                             
                        </div>
    
                        <button class="carousel-control-prev" type="button" data-bs-target="#carousel-modalGallery-33f233b13d5c8944e840531446faba82" data-bs-slide="prev">
                            <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                            <span class="visually-hidden">Previous</span>
                        </button>
    
                        <button class="carousel-control-next" type="button" data-bs-target="#carousel-modalGallery-33f233b13d5c8944e840531446faba82" data-bs-slide="next">
                            <span class="carousel-control-next-icon" aria-hidden="true"></span>
                            <span class="visually-hidden">Next</span>
                        </button>
                    </div> 
                </div> 
            </div> 
        </div> 
    </div> 
    
    <script>
        (function() {
            function initGalleryStagger() {
                const container = document.getElementById("grid-modalGallery-33f233b13d5c8944e840531446faba82");
                if (!container) return;
                const items = container.querySelectorAll('.magnify-target');
                items.forEach((item, index) => {
                    const img = item.querySelector('img');
                    const triggerFade = () => {
                        const delay = 100 + (index * 30);
                        setTimeout(() => {
                            item.style.opacity = "1";
                            item.style.transform = "translateY(0)";
                        }, delay);
                    };
                    if (img && img.complete) triggerFade();
                    else if (img) img.addEventListener('load', triggerFade);
                });
            }
            
            const modalElement = document.getElementById("modalGallery-33f233b13d5c8944e840531446faba82");
            const carouselElement = document.getElementById("carousel-modalGallery-33f233b13d5c8944e840531446faba82");
            if (modalElement && carouselElement) {
                let isModalOpen = false;
    
                modalElement.addEventListener('show.bs.modal', function (event) {
                    const button = event.relatedTarget; 
                    const slideTo = button ? button.getAttribute('data-bs-slide-to') : null;
                    if (slideTo !== null) {
                        const index = parseInt(slideTo, 10);
                        setTimeout(() => {
                            let carouselInstance = bootstrap.Carousel.getInstance(carouselElement) || new bootstrap.Carousel(carouselElement, { interval: false });
                            carouselInstance.to(index);
                        }, 10);
                    }
                });
    
                modalElement.addEventListener('shown.bs.modal', function() {
                    isModalOpen = true;
                });
    
                modalElement.addEventListener('hide.bs.modal', function() {
                    isModalOpen = false;
                });
    
                
                document.addEventListener('keydown', function(e) {
                    if (!isModalOpen) return;
                    
                    let carouselInstance = bootstrap.Carousel.getInstance(carouselElement);
                    if (!carouselInstance) return;
    
                    if (e.key === 'ArrowLeft') {
                        e.preventDefault();
                        carouselInstance.prev();
                    } else if (e.key === 'ArrowRight') {
                        e.preventDefault();
                        carouselInstance.next();
                    }
                });
    
                modalElement.addEventListener('click', function(e) {
                    const isImg = e.target.tagName === 'IMG';
                    const isControl = e.target.closest('.carousel-control-prev') || e.target.closest('.carousel-control-next');
                    
                    if (!isImg && !isControl) {
                        const modalInstance = bootstrap.Modal.getInstance(modalElement);
                        if (modalInstance) modalInstance.hide();
                    }
                });
            }
            document.addEventListener("DOMContentLoaded", initGalleryStagger);
        })();
    </script>
    
    <style> 
    .paige-modal-gallery a img,
    .paige-modal-gallery a picture img {
        width: 102% !important;
        height: auto !important;
        margin-left: -1%;
        display: block;
        transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
        backface-visibility: hidden;
        will-change: transform;
        transform: translateZ(0);
    }
    .grayscale-thumbnail img,
    .grayscale-thumbnail picture img {
        filter: grayscale(100%) !important;
        transition: filter 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
    }
    .grayscale-thumbnail:hover img,
    .grayscale-thumbnail:hover picture img {
        filter: grayscale(0%) !important;
    }
    .magnify-target {
        display: block;
        position: relative;
        background-color: #ffffff !important;
        clip-path: inset(0.5px);
        transform: translateZ(0);
        overflow: hidden;
    }
    .magnify-target::after {
        content: "";
        position: absolute;
        top: 0; left: 0; right: 0; bottom: 0;
        border: 1px solid #ffffff; 
        pointer-events: none;
        z-index: 10;
    }
    .magnify-target:hover img,
    .magnify-target:hover picture img {
        transform: scale(1.1) translateZ(0) !important;
    }
    .modal-body { display: flex; flex-direction: column; justify-content: center; } 
    .carousel-item.active { display: flex !important; justify-content: center; }
    .carousel-control-prev, .carousel-control-next { width: 5%; }
    </style>
</div>]]></description><guid isPermaLink="false">tag:jimbo-tsai.github.io,2025-10-18:2025-10-18T11:07:00-05:00</guid><link>https://jimbo-tsai.github.io/jimbot/projects/xt4cage/</link><pubDate>Sat, 18 Oct 2025 11:07:00 -0500</pubDate><title>DIY Camera Rig</title></item></channel></rss>