/* Original title pixels and a performance cutout; motion belongs to each work. */
.work-art.refined-thumbnail{container-type:size;overflow:hidden;background:none}
.work-art.thumb-spectral-scenes{mix-blend-mode:normal}
.spectral-stage{position:absolute;display:block;left:2%;top:50%;width:96%;aspect-ratio:2.5;transform:translateY(-50%);overflow:hidden;isolation:isolate;background:transparent}
.spectral-rest,.spectral-shot,.spectral-picture,.spectral-cut{position:absolute;display:block;inset:0;pointer-events:none}
.spectral-shot{opacity:0;animation:iridescence-shot 12s steps(1,end) infinite;animation-delay:var(--shot-phase);animation-play-state:var(--art-play-state)}
.spectral-picture{animation:iridescence-camera 12s linear infinite;animation-delay:var(--shot-phase);animation-play-state:var(--art-play-state)}
.spectral-stage :is(.spectral-rest,.spectral-picture,.spectral-cut)>:is(img,svg){display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transform:none!important;border-radius:0;filter:none}
.spectral-cut{opacity:0;animation:iridescence-cut 12s steps(1,end) infinite;animation-delay:var(--shot-phase);animation-play-state:var(--art-play-state)}
.spectral-cut-upper{clip-path:inset(17% 0 63%);--cut-shift:-2.2%;filter:saturate(1.16)}
.spectral-cut-lower{clip-path:inset(64% 0 20%);--cut-shift:1.6%;filter:brightness(1.09)}
@keyframes iridescence-shot{0%,16.666%{opacity:1}16.667%,100%{opacity:0}}
@keyframes iridescence-camera{0%{transform:translateX(-.35%) scale(1.025)}16.666%{transform:translateX(.4%) scale(1.065)}16.667%,100%{transform:translateX(-.35%) scale(1.025)}}
@keyframes iridescence-cut{0%,13.5%,16.667%,100%{opacity:0;transform:none}13.6%{opacity:.88;transform:translateX(var(--cut-shift))}14.45%{opacity:0;transform:none}15.4%,16.666%{opacity:.62;transform:translateX(calc(var(--cut-shift) * -.65))}}
.work-grid.index .spectral-stage{inset:0;width:100%;height:100%;aspect-ratio:auto;transform:none}
.work-grid.index .spectral-shot{display:none}
@media(prefers-reduced-motion:reduce){.spectral-shot{display:none}.spectral-stage .spectral-rest{display:block}}
@media print{.spectral-shot{display:none}}
/* Actual source footage provides the figure and paint motion. */
.source-film-screen{position:absolute;left:0;top:50%;width:100%;height:auto;aspect-ratio:var(--source-film-ratio);transform:translateY(-50%);display:block;overflow:hidden;isolation:isolate}
:is(.work-card,.person-work,.home-scene) .source-film-screen img,.source-film-screen video{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;transform:none!important;border-radius:0}
.source-film-video{opacity:0;pointer-events:none}
.source-film-video[data-video-ready=true]{opacity:1}
.source-film-screen:has(>.source-film-video[data-video-ready=true])>.source-film-poster{visibility:hidden}
/* Each film is a separate surface. Black projection areas blend into the page;
   the original excerpt supplies the figure and paint movement. */
.work-art.refined-thumbnail.thumb-species-film{mix-blend-mode:lighten;isolation:auto;overflow:visible;container-type:normal;contain:none}
.species-video-stage{position:absolute;inset:0;display:block;overflow:visible;perspective:1400px}
.thumb-species-film .source-film-screen{left:4%;top:42%;width:92%;overflow:visible;isolation:auto;mix-blend-mode:lighten;transform-origin:50% 58%;animation:species-film-plane 12s ease-in-out infinite;animation-play-state:var(--art-play-state);-webkit-box-reflect:below 5px linear-gradient(transparent 73%,#fff1 87%,#fff5 100%)}
.thumb-species-film :is(.source-film-video,.source-film-poster){mask:none;-webkit-mask:none;animation:species-surface-light 12s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.thumb-species-film[data-thumbnail-work="painting_species"] :is(.source-film-screen,.source-film-video,.source-film-poster){animation-delay:-6s}
:is(.work-grid,.related-grid,.home-work-rail) .work-card:nth-child(n) .image-link:has(.thumb-species-film){aspect-ratio:1.3;overflow:visible;clip-path:none;mask:none;border-radius:0;box-shadow:none;background:transparent}
@keyframes species-film-plane{0%,100%{transform:translate(0,-52%) rotateY(-7deg) rotateZ(-1deg)}50%{transform:translate(0,-52%) rotateY(7deg) rotateZ(1deg)}}
@keyframes species-surface-light{0%,100%{filter:brightness(.98)}50%{filter:brightness(1.065)}}
.work-grid.index .thumb-species-film .source-film-screen{left:0;top:50%;width:100%;animation:none;transform:translateY(-50%);-webkit-box-reflect:unset}
.work-grid.index .work-card:nth-child(n) .image-link:has(.thumb-species-film){aspect-ratio:16/10}
@media(prefers-reduced-motion:reduce){.thumb-species-film .source-film-screen{top:50%;animation:none;transform:translateY(-50%);-webkit-box-reflect:unset}.thumb-species-film :is(.source-film-video,.source-film-poster){filter:none}}
 .work-grid.index .source-film-video{display:none}
.work-grid.index .source-film-screen>.source-film-poster{visibility:visible!important}
@media(prefers-reduced-motion:reduce){.refined-thumbnail .source-film-screen>video{display:none}.source-film-screen>.source-film-poster{visibility:visible!important}}
/* One inherited angle drives the print, its reflection and its edge shading.
   They remain physically connected while the artwork develops independently. */
@property --future-print-turn{syntax:"<number>";inherits:true;initial-value:0}
.future-web-scene{position:absolute;inset:5% 3%;display:block;isolation:isolate;perspective:1200px}
.future-web-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;overflow:visible;transform-origin:50% 50%;transform:translateX(calc(var(--future-print-turn) * .35%)) rotateY(calc(var(--future-print-turn) * 3.2deg)) rotateX(calc(var(--future-print-turn) * -1.1deg));filter:drop-shadow(calc(var(--future-print-turn) * -.45cqw) .65cqw .55cqw #0005);animation:future-print-pivot 12.8s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.future-web-original{display:none}
.future-web-live{isolation:isolate}
.future-stock{opacity:.5;mix-blend-mode:multiply}
.future-stock-flow{animation:future-film-shutter .84s steps(7,end) infinite;animation-play-state:var(--art-play-state)}
.future-stock-echo{opacity:.2;transform:translateY(37px)}
.future-portrait-apparition{opacity:0;animation:future-portrait-prepare 6.4s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.future-web-unfurl-mask{stroke-dasharray:1;stroke-dashoffset:1;animation:future-silk-prepare 6.4s ease-in-out infinite;animation-delay:var(--silk-delay);animation-play-state:var(--art-play-state)}
.future-final-art{opacity:0;animation:future-print-lock 6.4s linear infinite;animation-play-state:var(--art-play-state)}
.future-print-reflection{transform:translateX(calc(var(--future-print-turn) * -350px));opacity:.9}
.future-print-edge-shadow-left{opacity:calc(.5 + var(--future-print-turn) * .5)}
.future-print-edge-shadow-right{opacity:calc(.5 - var(--future-print-turn) * .5)}
.future-paper-edge-left{opacity:calc(.5 + var(--future-print-turn) * .4)}
.future-paper-edge-right{opacity:calc(.5 - var(--future-print-turn) * .4)}
.future-paper-catch-left{opacity:calc(.5 - var(--future-print-turn) * .45)}
.future-paper-catch-right{opacity:calc(.5 + var(--future-print-turn) * .45)}
@keyframes future-film-shutter{from{transform:translateY(0)}to{transform:translateY(-200px)}}
@keyframes future-print-pivot{0%,100%{--future-print-turn:-1}50%{--future-print-turn:1}}
@keyframes future-portrait-prepare{0%,100%{opacity:.02}18%{opacity:.16}29%,76%{opacity:.27}84%{opacity:.09}94%{opacity:.02}}
@keyframes future-silk-prepare{0%,100%{stroke-dashoffset:.98}18%{stroke-dashoffset:.82}29%,76%{stroke-dashoffset:.58}86%{stroke-dashoffset:.9}}
@keyframes future-print-lock{0%,30%,86%,100%{opacity:0;filter:blur(.7px);transform:translateY(.6px)}32%{opacity:1;filter:blur(.45px);transform:translateY(-.4px)}34%,77%{opacity:1;filter:blur(0);transform:none}82%{opacity:.08;filter:blur(.65px);transform:translateY(.5px)}}
/* Composite the original red wordmark against the page itself. Apply the blend
   to the outer art layer so its internal containment cannot trap a black matte.
   The opening film shots keep their original, unblended picture. */
@media(prefers-reduced-motion:no-preference){
.work-art.refined-thumbnail.thumb-opening-title:has(>[data-scene-kind="title"]:not([hidden])){mix-blend-mode:screen}
}
.work-grid.index .work-art.refined-thumbnail.thumb-opening-title{mix-blend-mode:normal}
.opening-title-surface{position:absolute;display:block;inset:0;width:100%;height:100%;filter:contrast(1.08) brightness(2.7)}
/* Reframe both the original clip and its still together. The red title occupies
   about three quarters of the card height, without replacing the source art. */
:is(.work-card,.person-work,.home-scene) .opening-title-surface>img,.opening-title-surface>video{position:absolute;display:block;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:translate(3%,10%) scale(2.15)!important;transform-origin:50% 38.5%;max-width:none;border-radius:0}
.opening-title-surface>video{opacity:0;pointer-events:none}
.opening-title-surface>video[data-video-ready=true]{opacity:1}
.opening-title-surface:has(>video[data-video-ready=true])>.opening-title-still{visibility:hidden}
[data-art-scene]{position:absolute;inset:0}
.opening-shot-surface{position:absolute;inset:0;display:block}
:is(.work-card,.person-work,.home-scene) .opening-shot-surface>img,.opening-shot-surface>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;transform:none!important;border-radius:0}
.opening-shot-surface>video{opacity:0;pointer-events:none}
.opening-shot-surface>video[data-video-ready=true]{opacity:1}
.opening-shot-surface:has(>video[data-video-ready=true])>img{visibility:hidden}
.opening-moment-label{position:absolute;left:0;bottom:1.5%;font-size:10px;line-height:1.4;letter-spacing:.08em;color:var(--muted);pointer-events:none}
.mirror-atmosphere{position:absolute;inset:15% 10% 0;background:radial-gradient(ellipse at 62% 52%,#b5754920,transparent 68%),radial-gradient(ellipse at 30% 32%,#c59eaf15,transparent 55%);filter:blur(22px)}
.mirror-figure{position:absolute;display:block;left:50%;top:49%;height:99%;width:auto;aspect-ratio:1;transform:translate(-50%,-50%);animation:mirror-figure-drift 17s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.mirror-source,.mirror-echo{position:absolute;inset:0;display:block;mask-image:linear-gradient(#000 75%,transparent 87%)}
:is(.work-card,.person-work,.home-scene) .mirror-figure img{width:100%;height:100%;object-fit:contain;max-width:none;transform:none!important;filter:saturate(.78);border-radius:0}
.mirror-echo{opacity:0;mix-blend-mode:screen;animation:mirror-echo-drift 17s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.mirror-source{position:relative}
.mirror-light{position:absolute;inset:0;pointer-events:none;opacity:.2;background:linear-gradient(120deg,transparent 35%,#ffe8d919 45%,#fff4e257 49%,#eedbff20 53%,transparent 62%);background-size:240% 100%;background-position:125% 0;animation:mirror-reflection 17s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.mirror-light-left{clip-path:polygon(13.6% 37.8%,26.9% 14%,44.6% 23.4%,30.9% 47%)}
.mirror-light-right{clip-path:polygon(57.8% 17.4%,76.6% 16.3%,80.5% 32.4%,58.2% 33.5%);animation-delay:-4s}
/* Two short registration breaks per cycle. Each opens an actual film frame
   in offset strips, briefly resolves it, then returns to the original title. */
@keyframes mirror-figure-drift{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-49.4%,-50.8%)}}
@keyframes mirror-echo-drift{0%,15%,85%,100%{opacity:0;transform:translate(0,0)}45%,55%{opacity:.095;transform:translate(-1.4%,-.8%)}}
@keyframes mirror-reflection{0%,15%,85%,100%{background-position:125% 0;opacity:0}35%,60%{opacity:.45}70%{background-position:-25% 0;opacity:0}}
/* Reading views and reduced motion keep a deliberate, legible still. */
.work-grid.index .refined-thumbnail *{animation:none!important}
.work-grid.index .future-web-live{display:none}
.work-grid.index .future-web-original{display:block}
.work-grid.index :is(.mirror-atmosphere,.mirror-echo,.mirror-light,.opening-title-surface>video){display:none}
.work-grid.index .opening-title-surface>.opening-title-still{visibility:visible}
.work-grid.index .opening-title-surface>.opening-title-still{transform:translate(3%,10%) scale(2.15)!important;transform-origin:50% 38.5%}
.work-grid.index [data-art-scene],.work-grid.index .opening-moment-label{display:none!important}
.work-grid.index [data-art-scene]:first-child{display:block!important}
.work-grid.index .mirror-figure{height:120%;top:53%}
@media(prefers-reduced-motion:reduce){
  .work-art.refined-thumbnail.thumb-opening-title{mix-blend-mode:normal}
  .refined-thumbnail *{animation:none!important;transition:none!important}
  .refined-thumbnail :is(.mirror-echo,.mirror-light,.opening-title-surface>video){display:none}
  .opening-title-surface>.opening-title-still{visibility:visible!important}
  .refined-thumbnail [data-art-scene],.refined-thumbnail .opening-moment-label{display:none!important}
  .refined-thumbnail [data-art-scene]:first-child{display:block!important}
  .future-web-live{display:none}
  .future-web-original{display:block}
}
@media(forced-colors:active){.mirror-atmosphere,.mirror-light{display:none}}
/* The passport entry uses the current digital studies and the exhibition's own
   page-28 UV overprint. Original 2023 artwork remains inside the project. */
.passport-thumb-field{position:absolute;inset:0 0 6%;display:block;perspective:1100px;isolation:isolate}
.passport-thumb-aura{position:absolute;inset:10% 0 5% 20%;background:radial-gradient(ellipse at 68% 45%,#818be520,transparent 66%);filter:blur(16px)}
.passport-thumb-covers{position:absolute;inset:0}
.passport-thumb-cover{position:absolute;display:block;width:29%;aspect-ratio:1040/1513;border-radius:1px 3px 3px 1px;box-shadow:1px 2px 0 #121817,4px 5px 0 #ffffff13,0 18px 22px #0005;overflow:hidden;transform-origin:50% 75%;transition:transform .8s cubic-bezier(.2,.75,.25,1)}
.passport-thumb-cover-1{left:7%;top:14%;transform:rotate(-10deg);z-index:1}
.passport-thumb-cover-2{left:19%;top:8%;transform:rotate(-4deg);z-index:2}
.passport-thumb-cover-3{left:31%;top:14%;transform:rotate(7deg);z-index:3}
.passport-thumb-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(118deg,transparent 28%,#fff5 45%,transparent 65%);background-size:260% 100%;mix-blend-mode:soft-light;animation:passport-thumb-foil 12s ease-in-out infinite;animation-play-state:var(--art-play-state)}
.passport-thumb-leaf{position:absolute;left:58%;top:3%;width:36%;aspect-ratio:1040/1512;display:block;background:#111429;border:1px solid #bcc7d035;border-radius:2px 4px 4px 2px;box-shadow:-3px 2px 0 #b8c2ce42,-6px 4px 0 #afb9c92e,0 22px 32px #0005;transform:rotate(7deg) rotateY(-9deg);transform-origin:left center;overflow:hidden;transition:transform .8s cubic-bezier(.2,.75,.25,1)}
:is(.work-card,.person-work,.home-scene) :is(.passport-thumb-cover,.passport-thumb-leaf)>img,.passport-thumb-uv>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;transform:none!important;border-radius:0;max-width:none}
.passport-thumb-print{filter:brightness(.61) saturate(.72)}
.passport-thumb-uv{position:absolute;inset:0;background:#111329;clip-path:inset(0 0 0 43%);animation:passport-thumb-scan 12s ease-in-out infinite;animation-play-state:var(--art-play-state);transition:clip-path .8s ease}
.passport-thumb-negative{filter:grayscale(1) invert(1) sepia(.5) hue-rotate(136deg) saturate(1.3);opacity:.69;mix-blend-mode:screen}
.passport-thumb-ink{filter:drop-shadow(0 0 1px #bcffff);opacity:1}
.passport-thumb-light{position:absolute;top:0;bottom:0;left:43%;width:1px;background:#bbe7ff99;box-shadow:0 0 12px 4px #9288e345;animation:passport-thumb-lamp 12s ease-in-out infinite;animation-play-state:var(--art-play-state);transition:opacity .7s}
.passport-thumb-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:clamp(9px,1.75cqw,12px);line-height:1.4}
.passport-thumb-invitation{color:#d8e8e7}.passport-thumb-invitation b{display:inline-block;font-weight:400;margin-left:.3em;transition:transform .5s ease}
:is(.work-card,.person-work,.home-scene):focus-within .passport-thumb-uv{animation:none;clip-path:inset(0)}
:is(.work-card,.person-work,.home-scene):focus-within .passport-thumb-light{opacity:0}
@media(hover:hover){
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-uv{animation:none;clip-path:inset(0)}
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-light{opacity:0}
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-cover-1{transform:rotate(-13deg) translateX(-1%)}
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-cover-3{transform:rotate(4deg) translateX(-2%)}
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-leaf{transform:rotate(2deg) rotateY(-2deg)}
 :is(.work-card,.person-work,.home-scene):hover .passport-thumb-invitation b{transform:translate(2px,-2px)}
}
@keyframes passport-thumb-foil{0%,15%,100%{background-position:110% 0}55%,80%{background-position:-30% 0}}
@keyframes passport-thumb-scan{0%,100%{clip-path:inset(0 0 0 43%)}20%{clip-path:inset(0 0 0 85%)}62%,80%{clip-path:inset(0 0 0 6%)}}
@keyframes passport-thumb-lamp{0%,100%{left:43%}20%{left:85%}62%,80%{left:6%}}
.work-grid.index .passport-thumb-caption,.work-grid.index .passport-thumb-light,.work-grid.index .passport-thumb-cover-1,.work-grid.index .passport-thumb-cover-2{display:none}
.work-grid.index .passport-thumb-cover-3{left:10%;width:41%;top:0;transform:rotate(-5deg)}
.work-grid.index .passport-thumb-leaf{left:52%;top:0;width:41%;transform:rotate(5deg)}
.work-grid.index .thumb-passport-optical *:after{animation:none!important}
@media(prefers-reduced-motion:reduce){.thumb-passport-optical *,.thumb-passport-optical *:after{animation:none!important;transition:none!important}}
