/* Source-matched homepage motion, cinematic intro, and reduced-motion behavior. */
.ks-cinematic-intro {
	background: #050709;
	color: #fff;
	inset: 0;
	isolation: isolate;
	overflow: hidden;
	position: fixed;
	z-index: 10000;
}

.ks-cinematic-intro__glow {
	background: radial-gradient(circle at 50% 47%, rgba(255, 218, 1, .09), transparent 31%);
	inset: 0;
	position: absolute;
}

.ks-cinematic-intro__frame {
	border: 1px solid rgba(255, 255, 255, .08);
	inset: 16px;
	position: absolute;
}

.ks-cinematic-intro__top {
	background: #ffda01;
	height: 3px;
	inset-inline: 0;
	position: absolute;
	top: 0;
}

.ks-cinematic-intro__horizon {
	animation: ks-intro-horizon 1.15s cubic-bezier(.22, 1, .36, 1) both;
	background: linear-gradient(90deg, transparent, rgba(255, 218, 1, .45), transparent);
	height: 1px;
	left: 50%;
	position: absolute;
	top: 50%;
	transform-origin: center;
	width: min(76vw, 760px);
}

.ks-cinematic-intro__center {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	padding: 80px 32px;
	position: relative;
}

.ks-cinematic-intro__content {
	align-items: center;
	animation: ks-intro-content .85s .18s cubic-bezier(.22, 1, .36, 1) both;
	display: flex;
	flex-direction: column;
	max-width: 768px;
	text-align: center;
	width: 100%;
}

.ks-cinematic-intro__logo {
	height: 128px;
	position: relative;
	width: min(86vw, 560px);
}

.ks-cinematic-intro__logo img {
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.ks-cinematic-intro__rule {
	animation: ks-intro-rule .75s .72s cubic-bezier(.22, 1, .36, 1) both;
	background: #ffda01;
	height: 2px;
	margin-top: 36px;
	transform-origin: center;
	width: 64px;
}

.ks-cinematic-intro__copy {
	animation: ks-intro-copy .7s .88s cubic-bezier(.22, 1, .36, 1) both;
	margin-top: 28px;
}

.ks-cinematic-intro__copy p {
	margin: 0;
}

.ks-cinematic-intro__copy p:first-child {
	color: #ffda01;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .34em;
	line-height: 15px;
	text-transform: uppercase;
}

.ks-cinematic-intro__copy p:last-child {
	color: rgba(255, 255, 255, .65);
	font-size: 14px;
	font-weight: 500;
	line-height: 20px;
	margin-top: 12px;
}

.ks-cinematic-intro__footer {
	bottom: 28px;
	inset-inline: 28px;
	position: absolute;
}

.ks-cinematic-intro__footer > div:first-child {
	align-items: center;
	color: rgba(255, 255, 255, .3);
	display: flex;
	font-size: 8px;
	font-weight: 600;
	justify-content: space-between;
	letter-spacing: .22em;
	line-height: 12px;
	text-transform: uppercase;
}

.ks-cinematic-intro__progress {
	background: rgba(255, 255, 255, .1);
	height: 1px;
	margin-top: 12px;
	overflow: hidden;
}

.ks-cinematic-intro__progress span {
	animation: ks-intro-progress 3.05s linear both;
	background: #ffda01;
	display: block;
	height: 100%;
	transform-origin: left;
}

.ks-cinematic-intro.is-leaving {
	transform: translateY(-100%);
	transition: transform .95s cubic-bezier(.76, 0, .24, 1);
}

body.ks-intro-locked {
	overflow: hidden;
}

.ks-motion-ready .ks-header.ks-reveal {
	will-change: opacity, transform;
}

.ks-motion-ready .ks-reveal {
	opacity: 0;
	transform: translate3d(var(--ks-motion-x, 0), calc(var(--ks-motion-rest-y, 0px) + var(--ks-motion-y, 0px)), 0) scale(var(--ks-motion-scale, 1));
	transition-delay: var(--ks-motion-delay, 0ms);
	transition-duration: var(--ks-motion-duration, 700ms);
	transition-property: opacity, transform;
	transition-timing-function: cubic-bezier(.22, 1, .36, 1);
	wil-change: opacity, transform;
}

.ks-motion-ready .ks-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, var(--ks-motion-rest-y, 0px), 0) scale(1);
}

.ks-motion-ready .ks-product-card.ks-reveal {
	transition-property: opacity, transform, border-color, box-shadow;
}

.ks-motion-ready .ks-category-card.ks-reveal.is-visible:hover {
	transform: perspective(1200px) translate3d(0, calc(var(--ks-motion-rest-y, 0px) - 10px), 0) rotateX(var(--ks-tilt-x, 0deg)) rotateY(var(--ks-tilt-y, 0deg));
}

.ks-motion-ready .ks-product-card.ks-reveal.is-visible:hover {
	transform: translate3d(0, -5px, 0);
}

.ks-motion-ready .ks-motion-line {
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--ks-motion-duration, 900ms) var(--ks-motion-delay, 0ms) cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-motion-line.is-visible {
	transform: scaleX(1);
}

.ks-hero__image,
.ks-hero__content {
	will-change: transform;
}

.ks-hero__image {
	transform: translate3d(0, var(--ks-hero-image-y, 0px), 0);
}

.ks-hero__content {
	transform: translate3d(0, var(--ks-hero-content-y, 0px), 0);
}

.ks-hero__image img.is-entering {
	animation: ks-hero-scene .8s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-wall-sconce__beam--up {
	opacity: 0;
	transform: translateX(-50%) scaleY(.72);
	transform-origin: bottom;
	transition: opacity 1.1s, transform 1.1s;
}

.ks-motion-ready .ks-wall-sconce__beam--down {
	opacity: 0;
	transform: translateX(-50%) scaleY(.72);
	transform-origin: top;
	transition: opacity 1.1s .2s, transform 1.1s .2s;
}

.ks-motion-ready .ks-wall-sconce__bulb {
	box-shadow: 0 0 0 rgba(255, 218, 1, 0);
	opacity: .2;
	transition: box-shadow 1.1s .15s, opacity 1.1s .15s;
}
.ks-motion-ready .ks-wall-sconce.is-illuminated .ks-wall-sconce__beam--up {
	opacity: .48;
	transform: translateX(-50%) scaleY(1);
}

.ks-motion-ready .ks-wall-sconce.is-illuminated .ks-wall-sconce__beam--down {
	opacity: .38;
	transform: translateX(-50%) scaleY(1);
}

.ks-motion-ready .ks-wall-sconce.is-illuminated .ks-wall-sconce__bulb {
	animation: none;
	box-shadow: 0 0 42px rgba(255, 218, 1, .62);
	opacity: 1;
}

.ks-motion-ready .ks-types__glow {
	opacity: 0;
	transition: opacity 1.4s;
}

.ks-motion-ready .ks-types.is-illuminated .ks-types__glow {
	opacity: .24;
}

.ks-motion-ready .ks-types__cord {
	transform: translateX(-50%) scaleY(0);
	transform-origin: top;
	transition: transform .9s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-types__fixture {
	opacity: 0;
	transform: translate(-50%, -20px);
	transition: opacity .7s .3s, transform .7s .3s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-types__beam {
	opacity: 0;
	transform: translateX(-50%) scaleY(.8);
	transform-origin: top;
	transition: opacity 1.4s, transform 1.4s;
}

.ks-motion-ready .ks-types.is-illuminated .ks-types__cord {
	transform: translateX(-50%) scaleY(1);
}

.ks-motion-ready .ks-types.is-illuminated .ks-types__fixture {
	opacity: 1;
	transform: translate(-50%, 0);
}

.ks-motion-ready .ks-types.is-illuminated .ks-types__bulb {
	animation: ks-bulb-strike 1.2s .3s both;
}

.ks-motion-ready .ks-types.is-illuminated .ks-types__beam {
	opacity: .48;
	transform: translateX(-50%) scaleY(1);
}

.ks-motion-ready .ks-type-card {
	transition-property: background-color, opacity, transform;
}

.ks-motion-ready .ks-type-card.is-visible:hover {
	background: rgba(255, 218, 1, .055);
}

.ks-motion-ready .ks-products__track-bar {
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .9s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-collections__track-bar {
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .9s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-stories__track-bar {
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .9s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-products__spot {
	opacity: 0;
	transform: rotate(calc(var(--ks-spot-angle) - 25deg));
	transition: opacity .7s calc(.3s + var(--ks-spot-index) * .12s), transform .7s calc(.3s + var(--ks-spot-index) * .12s) cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-collections__spot {
	opacity: 0;
	transform: rotate(calc(var(--ks-spot-angle) - 25deg));
	transition: opacity .7s calc(.3s + var(--ks-spot-index) * .12s), transform .7s calc(.3s + var(--ks-spot-index) * .12s) cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-stories__spot {
	opacity: 0;
	transform: rotate(calc(var(--ks-spot-angle) - 25deg));
	transition: opacity .7s calc(.3s + var(--ks-spot-index) * .12s), transform .7s calc(.3s + var(--ks-spot-index) * .12s) cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-products__spot-stem {
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .55s calc(.18s + var(--ks-spot-index) * .1s);
}

.ks-motion-ready .ks-collections__spot-stem {
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .55s calc(.18s + var(--ks-spot-index) * .1s);
}

.ks-motion-ready .ks-stories__spot-stem {
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .55s calc(.18s + var(--ks-spot-index) * .1s);
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__track-bar {
	transform: scaleX(1);
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__track-bar {
	transform: scaleX(1);
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__track-bar {
	transform: scaleX(1);
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__spot {
	opacity: 1;
	transform: rotate(var(--ks-spot-angle));
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot {
	opacity: 1;
	transform: rotate(var(--ks-spot-angle));
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot {
	opacity: 1;
	transform: rotate(var(--ks-spot-angle));
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__spot-stem {
	transform: scaleY(1);
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot-stem {
	transform: scaleY(1);
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot-stem {
	transform: scaleY(1);
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__spot-head,
.ks-motion-ready .ks-products.is-illuminated .ks-products__spot-beam {
	animation: ks-track-sway calc(3.8s + var(--ks-spot-index) * .4s) calc(.55s + var(--ks-spot-index) * .16s) ease-in-out infinite;
	transform-origin: top center;
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot-head,
.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot-beam {
	animation: ks-track-sway calc(3.8s + var(--ks-spot-index) * .4s) calc(.55s + var(--ks-spot-index) * .16s) ease-in-out infinite;
	transform-origin: top center;
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot-head,
.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot-beam {
	animation: ks-track-sway calc(3.8s + var(--ks-spot-index) * .4s) calc(.55s + var(--ks-spot-index) * .16s) ease-in-out infinite;
	transform-origin: top center;
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__spot-head span {
	animation: ks-track-pulse calc(2.8s + var(--ks-spot-index) * .25s) calc(.63s + var(--ks-spot-index) * .16s) ease-in-out infinite;
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot-head span {
	animation: ks-track-pulse calc(2.8s + var(--ks-spot-index) * .25s) calc(.63s + var(--ks-spot-index) * .16s) ease-in-out infinite;
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot-head span {
	animation: ks-track-pulse calc(2.8s + var(--ks-spot-index) * .25s) calc(.63s + var(--ks-spot-index) * .16s) ease-in-out infinite;
}

.ks-motion-ready .ks-products.is-illuminated .ks-products__spot-beam {
	animation-name: ks-track-beam;
}

.ks-motion-ready .ks-collections.is-illuminated .ks-collections__spot-beam {
	animation-name: ks-track-beam;
}

.ks-motion-ready .ks-stories.is-illuminated .ks-stories__spot-beam {
	animation-name: ks-track-beam;
}

.ks-motion-ready .ks-featured-project__line {
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 1.15s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-featured-project.is-illuminated .ks-featured-project__line {
	transform: scaleX(1);
}

.ks-motion-ready .ks-featured-project .ks-project-compare__image img {
	transform: scale(1.085);
	transition: transform 10s ease-out;
}

.ks-motion-ready .ks-featured-project.is-illuminated .ks-project-compare__image img {
	transform: scale(1.025);
}

.ks-home-contact button[data-ks-contact-open]:hover {
	transform: translateY(-4px);
}

.ks-footer--v2::before {
	transform-origin: left;
	transition: transform 1s cubic-bezier(.22, 1, .36, 1);
}

.ks-motion-ready .ks-footer--v2:not(.is-illuminated)::before {
	transform: scaleX(0);
}

.ks-motion-ready .ks-footer--v2.is-illuminated::before {
	transform: scaleX(1);
}

@keyframes ks-intro-horizon {
	from { opacity: 0; transform: translate(-50%, -50%) scaleX(0); }
	to { opacity: 1; transform: translate(-50%, -50%) scaleX(1); }
}

@keyframes ks-intro-content {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes ks-intro-rule {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes ks-intro-copy {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes ks-intro-progress {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes ks-hero-scene {
	from { opacity: 0; transform: scale(1.025); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes ks-bulb-strike {
	0% { box-shadow: 0 0 0 rgba(255, 218, 1, 0); opacity: .28; }
	16% { box-shadow: 0 0 34px rgba(255, 218, 1, .9); opacity: 1; }
	30% { box-shadow: 0 0 12px rgba(255, 218, 1, .2); opacity: .42; }
	100% { box-shadow: 0 0 54px rgba(255, 218, 1, .72); opacity: 1; }
}

@keyframes ks-track-sway {
	0%, 100% { transform: rotate(0) translate(0, 0); }
	25% { transform: rotate(6deg) translate(4px, 3px); }
	50% { transform: rotate(0) translate(0, 0); }
	75% { transform: rotate(-6deg) translate(-4px, -2px); }
}

@keyframes ks-track-pulse {
	0%, 100% { box-shadow: 0 0 8px rgba(255, 218, 1, .34); opacity: .62; }
	25% { box-shadow: 0 0 34px rgba(255, 218, 1, .9); opacity: 1; }
	55% { box-shadow: 0 0 12px rgba(255, 218, 1, .42); opacity: .72; }
	78% { box-shadow: 0 0 30px rgba(255, 218, 1, .82); opacity: 1; }
}

@keyframes ks-track-beam {
	0%, 100% { opacity: .14; transform: rotate(0) scale(.9, .92); }
	25% { opacity: .44; transform: rotate(6deg) scale(1.08); }
	55% { opacity: .2; transform: rotate(0) scale(.95, .96); }
	78% { opacity: .38; transform: rotate(-6deg) scale(1.05); }
}

@media (min-width: 640px) {
	.ks-cinematic-intro__frame { inset: 28px; }
	.ks-cinematic-intro__logo { height: 176px; }
	.ks-cinematic-intro__copy p:first-child { font-size: 12px; line-height: 18px; }
	.ks-cinematic-intro__copy p:last-child { font-size: 16px; line-height: 24px; }
	.ks-cinematic-intro__footer { bottom: 36px; inset-inline: 40px; }
	.ks-cinematic-intro__footer > div:first-child { font-size: 9px; line-height: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.ks-cinematic-intro { display: none !important; }
	.ks-reveal,
	.ks-motion-line,
	.ks-hero__image,
	.ks-hero__content,
	.ks-wall-sconce *,
	.ks-types__glow,
	.ks-types__pendant *,
	.ks-products__track *,
	.ks-collections__track *,
	.ks-stories__track *,
	.ks-featured-project__line,
	.ks-featured-project .ks-project-compare__image img,
	.ks-footer--v2::before {
		animation: none !important;
		transition: none !important;
	}
}
