/* Refined motion is opt-in per component. No new content is hidden before JS runs. */
html.refinement-ready body [data-refine-reveal]{opacity:1;transform:none;transition:none}
html.refinement-ready body [data-refine-reveal][data-reveal],
html.refinement-ready body [data-refine-reveal][data-scroll-scene],
html.refinement-ready body [data-refine-reveal] [data-scroll-scene]{opacity:1;transform:none;transition:none}
html.refinement-ready body .home-work-card[data-refine-reveal]>h3,
html.refinement-ready body .home-work-card[data-refine-reveal]>p,
html.refinement-ready body .home-work-card[data-refine-reveal]>.home-work-open,
html.refinement-ready body .home-contact-inner[data-refine-reveal]>*{opacity:1;transform:none;transition:none}
html.refinement-ready body [data-refine-reveal]>.home-work-image img,
html.refinement-ready body [data-refine-reveal][data-scene-photo] img,
html.refinement-ready body [data-refine-reveal] [data-scene-photo] img{opacity:1}
html.refinement-ready body .portfolio-gallery [data-refine-reveal] .portfolio-image img{clip-path:none}
.is-refine-entering{will-change:opacity,translate}

/* Only cover images drift. Gallery originals, product photos and viewer media retain their framing. */
html.refinement-ready .refine-media{overflow:hidden}
html.refinement-ready .refine-media>img{transform:translate3d(0,var(--refine-photo-shift,0%),0) scale(var(--refine-photo-scale,1.032));transition:none}
html.refinement-ready .refine-media.is-refine-media-near>img{will-change:transform}

/* Ease photograph motion inside its stationary frame; hero images keep their own controller. */
html.refinement-ready.home-motion-enhanced .home-page [data-home-media] img{
 transform:translate3d(0,var(--home-media-shift,0%),0) scale(var(--home-media-scale,1.038));
 transition:none;
}
/* A short sheen makes the primary action respond without adding icons or moving its text. */
html.refinement-ready .clarity-action{position:relative;isolation:isolate;overflow:hidden}
html.refinement-ready .clarity-action::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#ffffff30 48%,transparent 76%);transform:translateX(-125%);transition:transform .75s cubic-bezier(.2,.7,.2,1)}
html.refinement-ready .home-play{position:relative}
html.refinement-ready .home-play::after{content:'';position:absolute;inset:-7px;border:1px solid #ffffff80;border-radius:inherit;opacity:0;pointer-events:none}
@media(hover:hover) and (pointer:fine){
 html.refinement-ready .clarity-action:hover::before,html.refinement-ready .clarity-action:focus-visible::before{transform:translateX(125%)}
 html.refinement-ready .home-film-button:hover .home-play::after,html.refinement-ready .home-film-button:focus-visible .home-play::after{animation:refine-play-ring .9s ease-out both}
}
@keyframes refine-play-ring{from{opacity:.65;transform:scale(.88)}to{opacity:0;transform:scale(1.18)}}

/* A frame responds to an actual pointer, without changing its layout or moving its caption. */
html.refinement-ready .refine-lift{translate:0 0;scale:1;transition:translate .45s cubic-bezier(.2,.7,.2,1),scale .2s ease,box-shadow .35s,border-color .3s}
@media(hover:hover) and (pointer:fine){
 html.refinement-ready .refine-lift.is-refine-hover{translate:0 -4px;box-shadow:0 18px 38px #0000001a;border-color:var(--muted)}
}
html.refinement-ready .refine-lift.is-refine-pressed{scale:.992;box-shadow:0 5px 18px #00000012}
html.refinement-ready .refine-lift:focus-visible{outline:2px solid var(--accent);outline-offset:5px}

/* Glass layers arrive together; their text remains intact and readable. */
html.refinement-ready .theme-options:not([hidden]),
html.refinement-ready .mobile-menu:not([hidden]){animation:refine-menu-enter .32s cubic-bezier(.19,.75,.24,1) both;transform-origin:top right}
html.refinement-ready .mobile-menu:not([hidden])>a{animation:refine-menu-link .3s ease both}
html.refinement-ready .mobile-menu:not([hidden])>a:nth-child(2){animation-delay:35ms}
html.refinement-ready .mobile-menu:not([hidden])>a:nth-child(3){animation-delay:70ms}
html.refinement-ready .mobile-menu:not([hidden])>a:nth-child(4){animation-delay:105ms}
html.refinement-ready .mobile-menu:not([hidden])>a:nth-child(5){animation-delay:140ms}
html.refinement-ready .mobile-menu:not([hidden])>a:nth-child(6){animation-delay:175ms}
html.refinement-ready .work-viewer[open],
html.refinement-ready .ig-viewer[open]{animation:refine-viewer-enter .32s cubic-bezier(.19,.75,.24,1) both}
html.refinement-ready .work-viewer[open]::backdrop,
html.refinement-ready .ig-viewer[open]::backdrop{animation:refine-backdrop-enter .3s ease both}
html.refinement-ready .gallery-collections-dialog[open]:not(.is-closing) .gallery-collections-panel{animation:refine-sheet-enter .42s cubic-bezier(.19,.75,.24,1) both}
@keyframes refine-menu-enter{from{opacity:0;transform:translateY(-7px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes refine-menu-link{from{opacity:.2}to{opacity:1}}
@keyframes refine-viewer-enter{from{opacity:0;transform:translateY(7px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes refine-backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes refine-sheet-enter{from{opacity:.15;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){html.refinement-ready .refine-lift.is-refine-pressed{scale:.995}}
@media(prefers-reduced-motion:reduce){
 html.refinement-ready .refine-media>img{transform:none;transition:none;will-change:auto}
 html.refinement-ready .refine-lift,
 html.refinement-ready .refine-lift.is-refine-hover,
 html.refinement-ready .refine-lift.is-refine-pressed{translate:none;scale:none;transition:none}
 html.refinement-ready .theme-options:not([hidden]),
 html.refinement-ready .mobile-menu:not([hidden]),
 html.refinement-ready .mobile-menu:not([hidden])>a,
 html.refinement-ready .work-viewer[open],
 html.refinement-ready .ig-viewer[open],
 html.refinement-ready .work-viewer[open]::backdrop,
 html.refinement-ready .ig-viewer[open]::backdrop,
 html.refinement-ready .gallery-collections-dialog[open]:not(.is-closing) .gallery-collections-panel{animation:none}
 html.refinement-ready.home-motion-enhanced .home-page [data-home-media] img{transform:none!important;clip-path:none!important;will-change:auto}
 html.refinement-ready .clarity-action::before{display:none;transition:none}
 html.refinement-ready .home-play::after{display:none;animation:none}
 .is-refine-entering{will-change:auto}
}

/* One composed entrance per block, including galleries inserted from beheer. */
html.refinement-ready body [data-refine-reveal] [data-reveal],
html.refinement-ready body [data-refine-reveal] [data-scroll-scene]{opacity:1;transform:none;transition:none}
html.refinement-ready body [data-refine-reveal].refine-lift{
 transition:translate .45s cubic-bezier(.16,1,.3,1),scale .2s ease,background-color .25s,border-color .3s,box-shadow .35s,color .25s;
}
.is-refine-entering{will-change:opacity,translate,scale}
html.refinement-ready .home-heading,
html.refinement-ready .album-section-heading,
html.refinement-ready .film-section-heading,
html.refinement-ready .gear-section-heading{position:relative}
html.refinement-ready .home-heading::after,
html.refinement-ready .album-section-heading::after,
html.refinement-ready .film-section-heading::after,
html.refinement-ready .gear-section-heading::after{
 content:'';position:absolute;bottom:-15px;left:0;width:56px;height:2px;border-radius:2px;
 background:linear-gradient(90deg,var(--accent),transparent);transform-origin:left;pointer-events:none;
}
html.refinement-ready :is(.home-heading,.album-section-heading,.film-section-heading,.gear-section-heading).is-refine-seen::after{
 animation:refine-section-line .9s .15s cubic-bezier(.16,1,.3,1) backwards;
}
@keyframes refine-section-line{from{opacity:0;transform:scaleX(.15)}to{opacity:1;transform:scaleX(1)}}

/* Keep each entire photograph framed. Only the surrounding frame rises on hover. */
@media(hover:hover) and (pointer:fine){
 html.refinement-ready .refine-lift.is-refine-hover{translate:0 -3px}
 html.refinement-ready .album-card:hover .album-card-action,
 html.refinement-ready .album-card:focus-visible .album-card-action{box-shadow:0 5px 22px var(--glow)}
 html.refinement-ready .home-work-card:hover .home-work-open,
 html.refinement-ready .home-work-card:focus-visible .home-work-open{background:var(--ink);color:var(--bg);border-color:var(--ink)}
}
html.refinement-ready .refine-lift.is-refine-pressed{translate:0 1px;scale:.985}
html.refinement-ready .clarity-action.refine-lift.is-refine-pressed,
html.refinement-ready .button.refine-lift.is-refine-pressed,
html.refinement-ready .home-btn.refine-lift.is-refine-pressed{scale:.97}
@media(prefers-reduced-motion:reduce){
 html.refinement-ready :is(.home-heading,.album-section-heading,.film-section-heading,.gear-section-heading).is-refine-seen::after{animation:none}
 html.refinement-ready body [data-refine-reveal].refine-lift,
 html.refinement-ready .refine-lift.is-refine-pressed,
 html.refinement-ready .clarity-action.refine-lift.is-refine-pressed,
 html.refinement-ready .button.refine-lift.is-refine-pressed,
 html.refinement-ready .home-btn.refine-lift.is-refine-pressed{translate:none;scale:none;transition:none}
}
/* Legacy scene selectors include both card and scene attributes. Match their
   specificity explicitly, including CMS clones that retained an old scene flag. */
html.refinement-ready.home-scenes-enabled body .home-work-card[data-refine-reveal]>.home-work-image img,
html.refinement-ready.home-scenes-enabled body [data-refine-reveal][data-scene-photo] img,
html.refinement-ready.home-scenes-enabled body [data-refine-reveal] [data-scene-photo] img{opacity:1}
html.refinement-ready body .home-work-card[data-refine-reveal]>.home-work-open{
 transition:background-color .25s,color .25s,border-color .25s,box-shadow .3s;
}
@media(prefers-reduced-motion:reduce){html.refinement-ready body .home-work-card[data-refine-reveal]>.home-work-open{transition:none}}
