/* Motion timings informed by the reference's public transition timelines. */
.route-curtain{transform:scaleY(0);transform-origin:center bottom;transition:transform .8s cubic-bezier(.76,0,.24,1)}
.route-curtain.is-covering{transform:scaleY(1);pointer-events:all}
.route-curtain.is-leaving{transform:scaleY(0);transform-origin:center top}
.is-routing main,.is-routing .site-header{pointer-events:none}
.is-routing .subpage{opacity:.25;transition:opacity .5s ease}
.hover-preview{overflow:hidden;transition:transform .65s cubic-bezier(.22,1,.36,1);top:50%}
.hover-preview img{will-change:transform}
@media(min-width:701px){.hover-preview,.hover-preview.visible{transform:translate(var(--preview-x,0px),-50%) rotate(var(--tilt,-5deg))}}
.cursor-orb{transition:opacity .2s,transform .25s,left .08s linear,top .08s linear}
.category-name{display:block;transition:transform .6s cubic-bezier(.76,0,.24,1),color .2s}
.category:hover .category-name,.category:focus-visible .category-name{transform:translateX(8px)}
.library-page{padding:112px 5vw 48px;min-height:100svh}
.library-page.sam-page{padding:112px 5vw 48px;overflow:visible}
.library-heading{padding:64px 0 55px}
.library-breadcrumb{font-size:11px;line-height:1.7;letter-spacing:.03em;opacity:.65;margin:0 0 24px}
.library-heading h1{font-size:clamp(52px,9.5vw,144px);letter-spacing:-.065em;line-height:1.15;margin:0 0 35px;font-weight:700;overflow-wrap:anywhere}
.library-info{display:flex;justify-content:space-between;font-size:11px;opacity:.7}
.library-explorations{margin-top:70px;padding-top:35px;border-top:1px solid currentColor}
.library-explorations>h2{font-size:clamp(30px,4vw,56px);margin:0 0 16px}
.library-explorations>p{opacity:.7;margin:0 0 36px}
.library-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:65px 30px;padding-bottom:75px}
.library-card{min-width:0;display:block}
.library-card-image{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e8e8e8}
.library-card-image>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.library-card:hover .library-card-image>img,.library-card:focus-visible .library-card-image>img{transform:scale(1.055)}
.library-open{position:absolute;right:20px;bottom:20px;width:65px;height:65px;display:grid;place-items:center;border-radius:50%;background:#090909;color:#fff;font:32px Arial,sans-serif;transform:scale(0) rotate(-30deg);transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.library-card:hover .library-open,.library-card:focus-visible .library-open{transform:scale(1) rotate(0)}
.library-card-caption{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:21px 0;border-bottom:1px solid currentColor}
.library-card-caption h2{font-size:clamp(22px,2.7vw,38px);font-weight:500;letter-spacing:-.04em;margin:0}
.library-card-caption>span{font-size:10px;white-space:nowrap;opacity:.6}
/* Purple collection pages follow the home directory's white/black selection. */
.library-page:not(.sam-page):not(.case-shell){color:var(--white)}
.library-page:not(.sam-page):not(.case-shell) .library-card{color:var(--white)}
.library-page:not(.sam-page):not(.case-shell) .library-card-caption{border-bottom-color:rgba(0,0,0,.7);transition:color .2s ease}
.library-page:not(.sam-page):not(.case-shell) .library-card-caption>span{opacity:1}
.library-page:not(.sam-page):not(.case-shell) .subpage-bar{border-bottom-color:rgba(0,0,0,.7)}
@media(hover:hover) and (pointer:fine){
  .library-page:not(.sam-page):not(.case-shell) .library-cards:has(.library-card:hover) .library-card:not(:hover):not(:focus-visible){color:var(--black)}
}
.library-page:not(.sam-page):not(.case-shell) .library-cards:has(.library-card:focus-visible) .library-card:not(:focus-visible):not(:hover){color:var(--black)}
.library-gallery{display:grid;gap:70px;margin:0 auto 80px;max-width:1600px}
.library-visual{margin:0;min-width:0}
.library-visual img{display:block;width:100%;height:auto}
.library-visual.library-fit-portrait{display:flex;justify-content:center;align-items:center}
.library-visual.library-fit-portrait img{width:auto;height:auto;max-width:100%;max-height:85svh;object-fit:contain}
.dried-fruit-gallery{gap:46px}
.dried-fruit-gallery .dried-fruit-renders{--masonry-columns:2;--masonry-gap:24;width:100%;margin:12px 0 0}
.library-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:start}
.library-wall .library-visual:nth-child(even){margin-top:65px}
.silk-photo-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:center;max-width:1100px;width:100%;margin:0 auto}
.silk-photo-row .library-visual{display:flex;justify-content:center}
.silk-photo-row .library-visual img{width:auto;max-width:100%;max-height:360px;height:auto;object-fit:contain}
@media(max-width:700px){.silk-photo-row{gap:12px}.silk-photo-row .library-visual img{max-height:220px}}
/* POP: natural image proportions packed into the shortest column. */
.library-masonry{--masonry-columns:3;--masonry-gap:24;display:block;position:relative;visibility:hidden}
.library-masonry.is-laid-out{visibility:visible}
.library-masonry .masonry-item{position:absolute;margin:0;transition:left .45s cubic-bezier(.22,1,.36,1),top .45s cubic-bezier(.22,1,.36,1),width .45s cubic-bezier(.22,1,.36,1),opacity .3s,translate .4s}
.masonry-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;color:#fff;cursor:zoom-in;overflow:hidden;border-radius:4px}
.masonry-open img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .3s,transform .4s!important;transform:none!important}
.masonry-zoom{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#050505b3;font:24px Arial;opacity:0;translate:0 6px;transition:opacity .25s,translate .3s}
.masonry-open:hover .masonry-zoom,.masonry-open:focus-visible .masonry-zoom{opacity:1;translate:0 0}
.masonry-open:hover img{filter:brightness(1.06)}
.masonry-open:focus-visible{outline:2px solid white;outline-offset:5px}
.masonry-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:64px 80px 32px;border:0;background:#050505f7;color:white;overflow:auto}
.masonry-lightbox[open]{display:flex;align-items:center;justify-content:center}
.masonry-lightbox::backdrop{background:#050505}
body:has(.masonry-lightbox[open]){overflow:hidden}
.masonry-lightbox figure{margin:0;max-width:100%;pointer-events:none}
.masonry-lightbox figure img{display:block;max-width:100%;max-height:calc(100dvh - 140px);width:auto;height:auto;object-fit:contain;margin:auto;pointer-events:auto}
.masonry-lightbox-caption{font-size:12px;text-align:center;margin-top:18px;opacity:.7}
.masonry-lightbox button{position:fixed;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ffffff50;border-radius:50%;background:#050505b3;color:white;font:24px Arial;cursor:pointer}
.masonry-lightbox button:hover{background:#fff;color:#050505}
.masonry-lightbox button:focus-visible{outline:2px solid white;outline-offset:4px}
.masonry-lightbox-close{right:24px;top:20px}
.masonry-lightbox-prev{left:20px;top:50%}
.masonry-lightbox-next{right:20px;top:50%}
@media(max-width:1200px){.library-masonry{--masonry-columns:2}}
@media(max-width:600px){.library-masonry{--masonry-columns:1;--masonry-gap:18}.masonry-lightbox{padding:72px 12px 80px}.masonry-lightbox figure img{max-height:calc(100dvh - 190px)}.masonry-lightbox-prev,.masonry-lightbox-next{top:auto;bottom:20px}.masonry-lightbox-prev{left:calc(50% - 54px)}.masonry-lightbox-next{right:calc(50% - 54px)}}
@media(prefers-reduced-motion:reduce){.library-masonry .masonry-item,.masonry-open img,.masonry-zoom{transition:none!important}}
.library-visual.sam-reveal{clip-path:none;transform:translateY(10px);transition:opacity 1.4s ease,transform 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.library-visual.sam-reveal.is-visible{transform:translateY(0)}
.library-detail:not(.sam-page) .library-heading{padding-bottom:65px}
.library-exit{position:fixed;z-index:8;right:3.5vw;top:22px;width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#090909;font:35px Arial,sans-serif;box-shadow:0 2px 16px #0001;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.sam-page .library-exit{background:#0755e8;color:#fff}
.library-exit:hover{transform:rotate(90deg) scale(1.06)}
body:has(.library-detail) .site-header nav{visibility:hidden}
.library-detail .sam-back-top{color:inherit;border-color:currentColor;margin:50px auto}
.library-page .next-case img{filter:none}
.library-return{display:flex;align-items:center;justify-content:space-between;min-height:180px;border-top:1px solid currentColor;font-size:clamp(28px,4vw,64px);letter-spacing:-.05em}
.library-return b{font:60px Arial;transition:transform .4s}
.library-return:hover b{transform:translate(8px,-8px)}
.library-empty{padding:80px 0;opacity:.6}
.case-shell .sam-back-top:hover b{background:#fff;color:#050505}
.sam-page .subpage-bar{border-color:rgba(7,85,232,.3)}
body.is-case-page{background:#050505}
body.is-sam-page{background:#f5f6f8}
@media(min-width:1000px){.hover-preview{top:50%;width:min(35vw,680px);height:auto;aspect-ratio:4/5;max-height:none}.category-list{min-height:800px;overflow:visible}.library-cards .library-card:nth-child(even){margin-top:65px}}
@media(max-width:700px){.library-page,.library-page.sam-page{padding:100px 6vw 30px}.library-heading{padding:40px 0 35px}.library-heading h1{font-size:14vw;line-height:1.2;margin-bottom:25px}.library-breadcrumb{font-size:10px}.library-cards{grid-template-columns:1fr;gap:35px;padding-bottom:45px}.library-card-caption{padding:16px 0}.library-card-caption h2{font-size:26px}.library-open{width:45px;height:45px;transform:none;right:12px;bottom:12px;font-size:24px}.library-gallery{gap:24px;margin-bottom:45px}.library-wall{gap:16px}.library-wall .library-visual:nth-child(even){margin-top:30px}.library-return{min-height:140px}.library-return b{font-size:40px}.is-case-page .site-header{background:linear-gradient(#050505,transparent)}.is-sam-page .site-header{background:linear-gradient(#f5f6f8,transparent)}}
@media(max-width:700px){.dried-fruit-gallery{gap:30px}}
@media(max-width:600px){.dried-fruit-gallery .dried-fruit-renders{--masonry-columns:1;--masonry-gap:18}}
@media(prefers-reduced-motion:reduce){.library-visual.sam-reveal{opacity:1;transform:none;clip-path:none}.hover-preview img{will-change:auto}.route-curtain{display:none}}
