/* Phase 2.6: Hero, Intro, Services, and Works visual language and motion. */

.front-hero {
	position: relative;
	display: grid;
	min-height: 100svh;
	padding: calc(var(--header-height) + 3rem) 0 4.5rem;
	overflow: hidden;
	background: var(--color-surface);
}

.front-hero__shell {
	position: relative;
	display: grid;
	align-items: center;
	gap: 3.5rem;
}

.front-hero__copy {
	position: relative;
	z-index: 2;
}

.front-hero__brand {
	display: flex;
	align-items: center;
	gap: .8rem;
	margin: 0 0 2rem;
	color: var(--color-text-sub);
	font-family: var(--font-en);
	font-size: .625rem;
	font-weight: 600;
	letter-spacing: .16em;
}

.front-hero__brand::before {
	width: 28px;
	height: 1px;
	background: var(--color-accent-sub);
	content: "";
}

.front-hero__title {
	margin: 0;
	font-size: clamp(4rem, 17vw, 7rem);
	font-weight: 600;
	line-height: .92;
	letter-spacing: -.065em;
}

.front-hero__title .reveal-mask + .reveal-mask {
	margin-top: .08em;
}

.front-hero__lead {
	max-width: 31rem;
	margin: 2.5rem 0 0;
	font-size: clamp(.9375rem, 1.4vw, 1.125rem);
	line-height: 2;
}

.front-hero__location {
	margin: 2.5rem 0 0;
	color: var(--color-text-sub);
	font-family: var(--font-en);
	font-size: .625rem;
	font-weight: 600;
	letter-spacing: .16em;
}

.front-hero__media {
	position: relative;
	isolation: isolate;
	width: 100%;
	min-height: 24rem;
	margin: 0;
	border-left: 1px solid var(--color-line);
	background: var(--color-surface-soft);
}

.front-hero__media .image-reveal__inner,
.front-hero__media .image-placeholder {
	min-height: inherit;
}

.front-hero__media .image-reveal__inner {
	position: relative;
}

.front-hero__media .image-placeholder {
	grid-template-rows: 1fr auto;
	padding: 2rem;
}

.front-hero__media .image-placeholder span {
	justify-self: end;
}

.front-hero__scroll {
	position: absolute;
	right: 0;
	bottom: -2.5rem;
	display: flex;
	align-items: center;
	gap: .75rem;
	color: var(--color-text-sub);
	font-family: var(--font-en);
	font-size: .5625rem;
	font-weight: 600;
	letter-spacing: .16em;
}

.front-hero__scroll i {
	display: block;
	width: 42px;
	height: 1px;
	overflow: hidden;
	background: var(--color-line);
}

.front-hero__scroll i::after {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--color-text);
	content: "";
	transform: translateX(-100%);
	animation: tasuku-scroll-line 2.4s var(--ease-standard) infinite;
}

.front-hero [data-reveal="hero-eyebrow"] {
	transition-delay: 60ms;
}

.front-hero__title .reveal-mask:nth-child(2) [data-reveal] {
	transition-delay: 90ms;
}

.front-hero [data-reveal="hero-lead"] {
	transition-delay: 180ms;
}

.front-hero [data-reveal="hero-meta"] {
	transition-delay: 240ms;
}

.front-hero [data-reveal-image] .image-reveal__inner {
	transition-delay: 120ms;
}

@keyframes tasuku-scroll-line {
	0% { transform: translateX(-100%); }
	50%, 100% { transform: translateX(100%); }
}

.front-works {
	overflow: hidden;
	border-top: 1px solid var(--color-line);
	background: var(--color-bg);
}

.front-section__echo {
	position: absolute;
	top: -2rem;
	right: 0;
	left: 0;
	z-index: 0;
	height: clamp(7rem, 16vw, 14rem);
	overflow: hidden;
	opacity: .42;
	pointer-events: none;
	user-select: none;
	mix-blend-mode: multiply;
}

.front-section__echo span {
	position: absolute;
	top: .2em;
	right: -.04em;
	color: var(--color-text);
	font-family: var(--font-en);
	font-size: clamp(8rem, 22vw, 22rem);
	font-weight: 700;
	line-height: .8;
	letter-spacing: -.07em;
	opacity: .025;
}

.front-works__header {
	position: relative;
	z-index: 1;
}

.front-works .front-shell,
.front-news__shell {
	position: relative;
	z-index: 1;
}

.front-works__intro {
	max-width: 22rem;
	margin: 0;
	color: var(--color-text-sub);
	font-size: .875rem;
	line-height: 2;
}

.front-works__list {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 4rem var(--grid-gap);
	margin-top: clamp(4rem, 9vw, 7rem);
}

.work-card {
	min-width: 0;
}

.work-card__link {
	display: block;
	text-decoration: none;
}

.work-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--color-surface-soft);
}

.work-card__media::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	height: 2px;
	background: var(--color-text);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 800ms var(--ease-out) 180ms;
}

.work-card.is-inview .work-card__media::after {
	transform: scaleX(1);
}

.work-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms var(--ease-out);
}

.work-card__link:hover .work-card__media img {
	transform: scale(1.025);
}

.work-card__placeholder {
	justify-items: end;
	align-items: end;
	padding: 1.25rem;
}

.work-card__body {
	padding-top: 1.25rem;
}

.js .work-card__meta,
.js .work-card__title {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 580ms var(--ease-out), transform 580ms var(--ease-out);
}

.js .work-card.is-inview .work-card__meta,
.js .work-card.is-inview .work-card__title {
	opacity: 1;
	transform: translateY(0);
}

.js .work-card.is-inview .work-card__meta { transition-delay: 180ms; }
.js .work-card.is-inview .work-card__title { transition-delay: 280ms; }

.work-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.15rem;
	padding: 0;
	margin: 0 0 .65rem;
	list-style: none;
	color: var(--color-text-sub);
	font-size: .625rem;
	letter-spacing: .05em;
}

.work-card__meta li + li {
	position: relative;
}

.work-card__meta li + li::before {
	position: absolute;
	top: 50%;
	left: -.65rem;
	width: 2px;
	height: 2px;
	background: currentColor;
	content: "";
}

.work-card__title {
	margin: 0;
	font-size: clamp(1.25rem, 2.15vw, 1.75rem);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: -.02em;
}

.work-card__excerpt {
	margin: .8rem 0 0;
	color: var(--color-text-sub);
	font-size: .875rem;
}

.front-approach {
	overflow: clip;
	background: var(--color-surface-soft);
}

.front-approach::before {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to right, rgba(34, 40, 44, .045) 1px, transparent 1px);
	background-size: clamp(4rem, 8vw, 7rem) 100%;
	content: "";
	pointer-events: none;
}

.front-approach__shell {
	position: relative;
	z-index: 1;
	display: grid;
	gap: clamp(4rem, 9vw, 8rem);
}

.front-approach__intro {
	align-self: start;
}

.front-approach__intro .front-section__title {
	font-size: clamp(3rem, 6.3vw, 6rem);
}

.front-approach__note {
	display: flex;
	align-items: center;
	margin: 3rem 0 0;
	color: var(--color-text-sub);
	font-family: var(--font-en);
	font-size: .6875rem;
	font-weight: 600;
	letter-spacing: .14em;
}

.front-approach__note::before {
	width: 3rem;
	height: 1px;
	margin-right: 1rem;
	background: var(--color-accent-sub);
	content: "";
}

.front-approach [data-approach-index]::before {
	content: attr(data-current);
}

.front-approach__scroll {
	position: relative;
	min-width: 0;
}

.front-approach__stage {
	position: relative;
	z-index: 2;
	display: grid;
	height: clamp(20rem, 48vw, 34rem);
	align-items: center;
	overflow: hidden;
	border-block: 1px solid var(--color-line);
	background: rgba(238, 242, 241, .88);
}

.front-approach__item {
	grid-area: 1 / 1;
	margin: 0;
	font-size: clamp(2.7rem, 5.2vw, 5.4rem);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.045em;
	opacity: 0;
	transform: translateY(35%);
	transition: opacity 540ms var(--ease-out), transform 680ms var(--ease-out);
}

.front-approach__item.is-active {
	opacity: 1;
	transform: translateY(0);
}

.front-approach__item.is-before {
	transform: translateY(-35%);
}

.front-approach__mobile-break {
	display: none;
}

.front-approach__steps {
	display: grid;
}

.front-approach__steps span {
	display: block;
	min-height: 62svh;
	color: transparent;
	font-size: 0;
}

.front-approach.is-static .front-approach__stage {
	display: grid;
	height: auto;
	gap: 0;
	padding-block: 1rem;
}

.front-approach.is-static .front-approach__item {
	grid-area: auto;
	padding-block: 2rem;
	border-bottom: 1px solid var(--color-line);
	opacity: 1;
	transform: none;
}

.front-approach.is-static .front-approach__item:last-child {
	border-bottom: 0;
}

.front-approach.is-static .front-approach__steps,
.front-approach.is-static .front-approach__note {
	display: none;
}

.front-about {
	overflow: hidden;
	background: var(--color-washi);
}

.front-about::before {
	background-position: 23px 41px;
	opacity: .25;
}

.front-about__shell {
	position: relative;
	z-index: 2;
	display: grid;
	gap: clamp(2.5rem, 8vw, 5rem);
}

.front-about__header {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 2rem;
}

.front-about__index,
.front-about__kicker,
.front-about__lineage-label {
	margin: 0;
	color: var(--color-text-sub);
	font-family: var(--font-en);
	font-size: .625rem;
	font-weight: 600;
	letter-spacing: .15em;
	line-height: 1.5;
}

.front-about__symbol {
	position: relative;
	min-height: clamp(23rem, 98vw, 30rem);
}

.front-about__mark {
	position: absolute;
	top: 8%;
	right: 5%;
	width: clamp(5.5rem, 21vw, 8rem);
	margin: 0;
}

.front-about__mark img {
	width: 100%;
}

.front-about__vertical {
	position: absolute;
	right: 7%;
	bottom: 7%;
	margin: 0;
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .22em;
	line-height: 1.9;
	writing-mode: vertical-rl;
}

.front-about__story {
	align-self: end;
}

.front-about__title {
	margin-top: 1.75rem;
	font-size: clamp(2rem, 4.2vw, 3.75rem);
}

.front-about__lead {
	margin: clamp(2.5rem, 7vw, 4rem) 0 0;
	font-size: clamp(1rem, 2.2vw, 1.2rem);
	line-height: 2.15;
}

.front-about__lineage {
	position: relative;
	max-width: 38rem;
	margin-top: clamp(4rem, 10vw, 7rem);
	padding-top: 2.25rem;
	border-top: 1px solid rgba(34, 40, 44, .18);
}

.front-about__lineage .material-line {
	position: absolute;
	top: -3px;
	left: 0;
}

.front-about__lineage h3 {
	margin: .9rem 0 0;
	font-size: clamp(1.6rem, 4vw, 2.35rem);
	font-weight: 500;
	letter-spacing: -.035em;
}

.front-about__lineage > p:last-child {
	max-width: 32rem;
	margin: 1.35rem 0 0;
	color: var(--color-text-sub);
}

.front-about__architecture {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.front-about__architecture span {
	position: absolute;
	display: block;
	background: rgba(34, 40, 44, .095);
	transform-origin: top;
}

.front-about__architecture span:nth-child(1) {
	top: 0;
	bottom: 0;
	left: 14%;
	width: 1px;
}

.front-about__architecture span:nth-child(2) {
	top: 0;
	bottom: 0;
	left: 43%;
	width: 1px;
}

.front-about__architecture span:nth-child(3) {
	top: 0;
	bottom: 0;
	left: 72%;
	width: 1px;
}

.front-about__architecture span:nth-child(n + 4) {
	right: 0;
	left: 0;
	height: 1px;
	transform-origin: left;
}

.front-about__architecture span:nth-child(4) {
	top: 24%;
}

.front-about__architecture span:nth-child(5) {
	top: 56%;
}

.front-about__architecture span:nth-child(6) {
	top: 81%;
}

.js .front-about__architecture span {
	transform: scaleY(0);
	transition: transform 1100ms var(--ease-out);
}

.js .front-about__architecture span:nth-child(n + 4) {
	transform: scaleX(0);
}

.js .front-about__architecture.is-inview span {
	transform: scale(1);
}

.js .front-about__architecture.is-inview span:nth-child(2) {
	transition-delay: 100ms;
}

.js .front-about__architecture.is-inview span:nth-child(3) {
	transition-delay: 180ms;
}

.js .front-about__architecture.is-inview span:nth-child(4) {
	transition-delay: 260ms;
}

.js .front-about__architecture.is-inview span:nth-child(5) {
	transition-delay: 340ms;
}

.js .front-about__architecture.is-inview span:nth-child(6) {
	transition-delay: 420ms;
}

.front-news {
	overflow: hidden;
	background: var(--color-bg);
}

.front-news::before {
	opacity: .07;
}

.front-news__header {
	align-items: end;
}

.front-news .news-list {
	margin-top: clamp(4rem, 8vw, 6rem);
}

.front-news .front-section__title {
	font-size: clamp(2.2rem, 5.2vw, 4.25rem);
}

.front-company {
	overflow: hidden;
	background: var(--color-bg);
}

.front-company::before {
	background-position: 47px 11px;
	opacity: .16;
}

.front-company__shell {
	position: relative;
	z-index: 2;
	display: grid;
	gap: clamp(3.5rem, 8vw, 6rem);
}

.front-company__header {
	align-self: start;
}

.front-company .company-summary {
	margin: 0;
	border-top: 1px solid rgba(34, 40, 44, .2);
}

.front-company .company-summary__row {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: .45rem;
	padding: clamp(1.25rem, 3vw, 2rem) 0;
	border-top: 0;
	border-bottom: 1px solid rgba(34, 40, 44, .16);
}

.front-company .company-summary dt {
	color: var(--color-text-sub);
	font-size: .6875rem;
	letter-spacing: .08em;
}

.front-company .company-summary dd {
	font-size: clamp(.95rem, 1.7vw, 1.12rem);
}

.front-company__architecture {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.front-company__architecture span {
	position: absolute;
	display: block;
	background: rgba(34, 40, 44, .075);
}

.front-company__architecture span:nth-child(1),
.front-company__architecture span:nth-child(2) {
	top: 0;
	bottom: 0;
	width: 1px;
	transform-origin: top;
}

.front-company__architecture span:nth-child(1) {
	left: 31%;
}

.front-company__architecture span:nth-child(2) {
	left: 76%;
}

.front-company__architecture span:nth-child(3),
.front-company__architecture span:nth-child(4) {
	right: 0;
	left: 0;
	height: 1px;
	transform-origin: left;
}

.front-company__architecture span:nth-child(3) {
	top: 34%;
}

.front-company__architecture span:nth-child(4) {
	top: 72%;
}

.js .front-company__architecture span:nth-child(-n + 2) {
	transform: scaleY(0);
	transition: transform 1000ms var(--ease-out);
}

.js .front-company__architecture span:nth-child(n + 3) {
	transform: scaleX(0);
	transition: transform 1000ms var(--ease-out) 140ms;
}

.js .front-company__architecture.is-inview span {
	transform: scale(1);
}

.company-summary,
.company-data,
.work-meta {
	margin: 3rem 0 0;
}

.company-summary__row,
.company-data__row,
.work-meta__row {
	display: grid;
	grid-template-columns: minmax(6rem, 8rem) 1fr;
	gap: 1rem;
	padding-block: 1rem;
	border-top: 1px solid var(--color-line);
}

.company-summary dt,
.company-summary dd,
.company-data dt,
.company-data dd,
.work-meta dt,
.work-meta dd {
	margin: 0;
}

.company-summary dt,
.company-data dt,
.work-meta dt {
	color: var(--color-text-sub);
}

.front-about__title,
.front-news .front-section__title,
.front-company .front-section__title,
.front-contact__title {
	color: rgba(34, 40, 44, .93);
	mix-blend-mode: multiply;
}

@media (min-width: 768px) {
	.front-hero {
		padding-top: calc(var(--header-height) + 3.5rem);
	}

	.front-hero__shell {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: var(--grid-gap);
	}

	.front-hero__copy {
		grid-column: 1 / 7;
	}

	.front-hero__title {
		font-size: clamp(5rem, 10vw, 8.5rem);
	}

	.front-hero__media {
		grid-column: 8 / 13;
		min-height: 36rem;
		align-self: stretch;
	}

	.front-hero__scroll {
		bottom: -1.5rem;
	}

	.front-works__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.front-about__shell {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: clamp(4rem, 8vw, 7rem) var(--grid-gap);
	}

	.front-about__header {
		grid-column: 1 / 13;
	}

	.front-about__symbol {
		grid-column: 1 / 6;
		min-height: clamp(35rem, 54vw, 43rem);
	}

	.front-about__mark {
		right: 0;
		width: clamp(6.5rem, 10vw, 9rem);
	}

	.front-about__vertical {
		right: 3%;
	}

	.front-about__story {
		grid-column: 6 / 13;
		padding-bottom: 2rem;
	}

	.front-company__shell {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: var(--grid-gap);
	}

	.front-company__header {
		grid-column: 1 / 5;
	}

	.front-company .company-summary,
	.front-company .text-link {
		grid-column: 5 / 13;
	}

	.front-company .company-summary__row {
		grid-template-columns: minmax(8rem, 10rem) 1fr;
		gap: 0;
	}

	.front-company .company-summary dd {
		padding-left: clamp(1.5rem, 3vw, 3rem);
		border-left: 1px solid rgba(34, 40, 44, .12);
	}

	.front-approach__shell {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: var(--grid-gap);
	}

	.front-approach__intro {
		grid-column: 1 / 6;
	}

	.front-approach__scroll {
		grid-column: 6 / 13;
	}

	.front-approach__stage {
		position: sticky;
		top: calc(var(--header-height) + 10svh);
	}

	.front-approach__item {
		white-space: nowrap;
	}
}

@media (min-width: 1024px) {
	.front-hero {
		padding-block: calc(var(--header-height) + 3rem) 5rem;
	}

	.front-hero__copy {
		grid-column: 1 / 8;
		padding-right: clamp(1rem, 3vw, 3.5rem);
	}

	.front-hero__title {
		font-size: clamp(6.25rem, 9.5vw, 9rem);
	}

	.front-hero__media {
		grid-column: 8 / 13;
		min-height: min(72svh, 760px);
	}

	.front-approach__intro {
		position: sticky;
		top: calc(var(--header-height) + 10svh);
		padding-right: clamp(2rem, 4vw, 4.5rem);
	}

	.front-works__list {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		align-items: start;
		gap: 7rem var(--grid-gap);
	}

	.front-works__list > :nth-child(6n + 1) {
		grid-column: 1 / 8;
	}

	.front-works__list > :nth-child(6n + 2) {
		grid-column: 9 / 13;
		margin-top: 8rem;
	}

	.front-works__list > :nth-child(6n + 3) {
		grid-column: 1 / 5;
	}

	.front-works__list > :nth-child(6n + 4) {
		grid-column: 6 / 13;
		margin-top: 5rem;
	}

	.front-works__list > :nth-child(6n + 5) {
		grid-column: 1 / 8;
	}

	.front-works__list > :nth-child(6n + 6) {
		grid-column: 9 / 13;
		margin-top: 6rem;
	}

	.front-works__list > :nth-child(6n + 2) .work-card__media,
	.front-works__list > :nth-child(6n + 3) .work-card__media,
	.front-works__list > :nth-child(6n + 6) .work-card__media {
		aspect-ratio: 3 / 4;
	}

	.front-works__list > :nth-child(6n + 4) .work-card__media,
	.front-works__list > :nth-child(6n + 5) .work-card__media {
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 767px) {
	.front-hero__scroll {
		display: none;
	}

	.front-hero__media {
		aspect-ratio: 4 / 5;
		min-height: auto;
	}

	.front-about__lead br {
		display: none;
	}

	.front-approach__item,
	.front-approach__item.is-active,
	.front-approach__item.is-before,
	.front-approach__item.is-after {
		font-size: clamp(1.8rem, 8.2vw, 2.1rem);
		line-height: 1.2;
		letter-spacing: -.045em;
	}

	.front-about__shell {
		gap: 2rem;
	}

	.front-about__symbol {
		min-height: clamp(18rem, 76vw, 21rem);
	}

	.front-about__mark {
		top: 4%;
	}

	.front-about__vertical {
		bottom: 4%;
	}

	.front-approach__stage {
		display: grid;
		height: auto;
		gap: 0;
		padding-block: 0;
		counter-reset: approach-mobile;
		background:
			linear-gradient(90deg, transparent 3.45rem, rgba(34, 40, 44, .1) 3.45rem, rgba(34, 40, 44, .1) calc(3.45rem + 1px), transparent calc(3.45rem + 1px)),
			rgba(238, 242, 241, .82);
	}

	.front-approach__item,
	.front-approach__item.is-active,
	.front-approach__item.is-before,
	.front-approach__item.is-after {
		grid-area: auto;
		position: relative;
		display: grid;
		grid-template-columns: 3.45rem minmax(0, 1fr);
		min-height: 9rem;
		align-content: center;
		padding: 1.7rem 0 1.7rem 1.15rem;
		border-bottom: 1px solid var(--color-line);
		opacity: 1;
		transform: none;
		white-space: normal;
		counter-increment: approach-mobile;
	}

	.front-approach__item::before {
		grid-row: 1 / 3;
		align-self: start;
		padding-top: .15rem;
		color: rgba(174, 148, 96, .78);
		font-family: var(--font-en);
		font-size: .625rem;
		font-weight: 600;
		letter-spacing: .18em;
		line-height: 1;
		content: "0" counter(approach-mobile);
	}

	.front-approach__mobile-break {
		display: block;
	}

	.front-approach__item > span {
		grid-column: 2;
		white-space: nowrap;
	}

	.front-approach__item > span:first-of-type {
		color: rgba(34, 40, 44, .76);
		font-size: .58em;
		font-weight: 500;
		letter-spacing: .02em;
	}

	.front-approach__item > span:last-of-type {
		margin-top: .18rem;
	}

	.front-approach__item:nth-child(2) > span,
	.front-approach__item:nth-child(2)::before {
		transform: translateX(1.35rem);
	}

	.front-approach__item:nth-child(2) {
		padding-right: 1.35rem;
	}

	.front-approach__item:last-child {
		border-bottom: 0;
	}

	.front-approach__steps,
	.front-approach__note {
		display: none;
	}

	.company-summary__row,
	.company-data__row,
	.work-meta__row {
		grid-template-columns: 1fr;
		gap: .25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.front-hero__scroll i::after {
		animation: none;
	}

	.front-about__architecture span,
	.front-company__architecture span,
	.work-card__media::after,
	.js .work-card__meta,
	.js .work-card__title {
		opacity: 1;
		transform: none;
		transition: none;
	}

}

/*
 * Scroll-linked entrance layer.
 * It only composes opacity/individual transforms with the existing V2 design;
 * layout, colors, typography and the section-specific interactions stay intact.
 */
.js body.home [data-scroll-linked] {
	opacity: var(--scroll-opacity, 1) !important;
	translate: 0 var(--scroll-y, 0px);
	scale: var(--scroll-scale, 1);
	will-change: opacity, translate, scale;
}

.js body.home [data-scroll-linked="media"],
.js body.home [data-scroll-linked="figure"],
.js body.home [data-scroll-linked="structure"] {
	filter: blur(var(--scroll-blur, 0px));
	will-change: opacity, translate, scale, filter;
}

.js body.home [data-scroll-linked="default"],
.js body.home [data-scroll-linked="mask"],
.js body.home [data-scroll-linked="media"],
.js body.home [data-scroll-linked="structure"],
.js body.home [data-scroll-linked="stage"] {
	transition: none;
}

.js body.home [data-scroll-linked="mask"] {
	clip-path: inset(0 0 var(--scroll-clip, 0%) 0);
}

.js body.home [data-scroll-linked="media"] .image-reveal__inner {
	clip-path: inset(0 0 var(--scroll-clip, 0%) 0);
	transform: scale(var(--scroll-image-scale, 1));
	transition: none;
}

.js body.home [data-scroll-linked="structure"] {
	clip-path: inset(0 0 var(--scroll-clip, 0%) 0);
}

.js body.home [data-scroll-linked="figure"] {
	transform-origin: 50% 100%;
}

@media (max-width: 767px) {
	.js body.home [data-scroll-linked] {
		filter: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.js body.home [data-scroll-linked] {
		opacity: 1;
		translate: none;
		scale: 1;
		filter: none;
		clip-path: none;
		will-change: auto;
	}

	.js body.home [data-scroll-linked="media"] .image-reveal__inner {
		clip-path: none;
		transform: none;
	}
}
