/* Site design: animations, video backgrounds and entrance effects. The colours and sizes themselves are written into the page by CB_Design. */
@keyframes cb-gradshift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes cb-kenburns { from { background-size: 100% auto; } to { background-size: 118% auto; } }
@keyframes cb-pagefade { from { opacity: 0; } to { opacity: 1; } }

/* looping video behind a section */
.cb-secvideo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.cb-bgvideo { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.cb-bgvideo video { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 720px) { .cb-bgvideo-nomobile video, .cb-secvideo.is-nomobile { display: none; } }

/* entrance animations (only once the script has marked the page) */
html.cb-js .cb-reveal { opacity: 0; transition: opacity var(--cb-anim-speed, 600ms) ease, transform var(--cb-anim-speed, 600ms) cubic-bezier(.2, .7, .2, 1), filter var(--cb-anim-speed, 600ms) ease; transition-delay: var(--cb-delay, 0ms); will-change: opacity, transform; }
html.cb-js .cb-reveal.cb-anim-up { transform: translateY(34px); }
html.cb-js .cb-reveal.cb-anim-down { transform: translateY(-34px); }
html.cb-js .cb-reveal.cb-anim-left { transform: translateX(-42px); }
html.cb-js .cb-reveal.cb-anim-right { transform: translateX(42px); }
html.cb-js .cb-reveal.cb-anim-zoom { transform: scale(.92); }
html.cb-js .cb-reveal.cb-anim-blur { filter: blur(12px); }
html.cb-js .cb-reveal.cb-anim-flip { transform: perspective(800px) rotateX(18deg) translateY(20px); transform-origin: 50% 100%; }
html.cb-js .cb-reveal.is-in { opacity: 1; transform: none; filter: none; }

@media (prefers-reduced-motion: reduce) {
	html.cb-js .cb-reveal { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
}
