.ebp-portfolio,
.ebp-modal,
.ebp-portal {
	--ebp-accent: #ff5a1f;
	--ebp-ink: #f7f4ee;
	--ebp-muted: #aaa69e;
	--ebp-dark: #0d0d0d;
	--ebp-modal-accent: #ff5a1f;
	box-sizing: border-box;
}

.ebp-portfolio *,
.ebp-portfolio *::before,
.ebp-portfolio *::after,
.ebp-modal *,
.ebp-modal *::before,
.ebp-modal *::after {
	box-sizing: border-box;
}

.ebp-portfolio {
	position: relative;
	width: 100%;
	padding: 56px;
	background: var(--ebp-dark);
	color: var(--ebp-ink);
	isolation: isolate;
}

.ebp-portfolio.ebp-has-grain {
	overflow: hidden;
}

.ebp-portfolio button,
.ebp-modal button,
.ebp-modal a {
	font: inherit;
}

.ebp-intro {
	position: relative;
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	gap: 64px;
	margin: 0 0 76px;
}

.ebp-intro--has-image {
	min-height: 78vh;
	padding: 60px;
	overflow: hidden;
	border-radius: 4px;
	isolation: isolate;
}

.ebp-intro--has-image .ebp-intro__heading,
.ebp-intro--has-image .ebp-intro__description {
	position: relative;
	z-index: 2;
	text-shadow: 0 2px 28px rgba(0, 0, 0, 0.32);
}

.ebp-intro__media {
	position: absolute;
	z-index: -2;
	inset: 0;
	overflow: hidden;
	background: #111;
}

.ebp-intro__media::after {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	content: "";
}

.ebp-intro__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	opacity: 0.72;
	transform: scale(1.025);
	transition: transform 1.4s cubic-bezier(0.16, 0.8, 0, 1);
}

.ebp-intro--has-image:hover .ebp-intro__media img {
	transform: scale(1.065);
}

.ebp-intro-column- .ebp-intro {
	flex-direction: column;
}

.ebp-intro-row- .ebp-intro {
	flex-direction: row;
}

.ebp-intro__heading {
	flex: 1.35 1 0;
	min-width: 0;
}

.ebp-intro__kicker {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	color: var(--ebp-accent);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ebp-intro__kicker::before {
	width: 30px;
	height: 2px;
	background: currentColor;
	content: "";
}

.ebp-intro__title {
	max-width: 1050px;
	margin: 0;
	color: var(--ebp-ink);
	font-size: clamp(48px, 7.3vw, 132px);
	font-weight: 800;
	line-height: 0.86;
	letter-spacing: -0.065em;
	text-wrap: balance;
}

.ebp-intro__description {
	flex: 0.65 1 0;
	max-width: 520px;
	color: var(--ebp-muted);
	font-size: clamp(16px, 1.3vw, 21px);
	line-height: 1.55;
}

.ebp-intro__description > :first-child {
	margin-top: 0;
}

.ebp-intro__description > :last-child {
	margin-bottom: 0;
}

.ebp-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	margin: 0 0 28px;
}

.ebp-filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 40px;
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.04);
	color: var(--ebp-muted);
	font-size: 12px;
	font-weight: 650;
	line-height: 1;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.ebp-filter:hover {
	border-color: rgba(255, 255, 255, 0.25);
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	transform: translateY(-1px);
}

.ebp-filter.is-active {
	border-color: transparent;
	background: var(--ebp-accent);
	color: #111;
}

.ebp-filter__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 999px;
	background: color-mix(in srgb, currentColor 12%, transparent);
	font-size: 9px;
	line-height: 1;
}

.ebp-grid {
	--ebp-columns: 3;
	display: grid;
	grid-template-columns: repeat(var(--ebp-columns), minmax(0, 1fr));
	grid-auto-flow: dense;
	column-gap: 18px;
	row-gap: 18px;
	align-items: stretch;
}

.ebp-card {
	position: relative;
	min-width: 0;
}

.ebp-card--wide,
.ebp-card--hero {
	grid-column: span 2;
}

.ebp-card__trigger {
	position: relative;
	display: block;
	width: 100%;
	min-height: 430px;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 6px;
	background: #171717;
	color: #fff;
	text-align: inherit;
	cursor: pointer;
	isolation: isolate;
	transition-property: transform, box-shadow, border-color;
	transition-duration: 550ms;
	transition-timing-function: cubic-bezier(0.2, 0.72, 0, 1);
	-webkit-tap-highlight-color: transparent;
}

.ebp-card--tall .ebp-card__trigger,
.ebp-card--hero .ebp-card__trigger {
	min-height: 620px;
}

.ebp-card__trigger:hover {
	transform: translateY(-6px);
}

.ebp-card__trigger:focus-visible,
.ebp-filter:focus-visible,
.ebp-modal button:focus-visible,
.ebp-modal a:focus-visible {
	outline: 3px solid var(--ebp-project-accent, var(--ebp-modal-accent, var(--ebp-accent)));
	outline-offset: 4px;
}

.ebp-card__image,
.ebp-card__shade,
.ebp-card__content {
	position: absolute;
	inset: 0;
	display: block;
}

.ebp-card__image {
	z-index: -3;
	overflow: hidden;
	background: #202020;
}

.ebp-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ebp-object-position, center center);
	transition-property: transform, filter, opacity;
	transition-duration: 550ms;
	transition-timing-function: cubic-bezier(0.2, 0.72, 0, 1);
}

.ebp-card__shade {
	z-index: -2;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.05) 12%, rgba(0, 0, 0, 0.88) 100%);
	opacity: 0.86;
	transition-property: opacity, background-color;
	transition-duration: 550ms;
	transition-timing-function: ease;
}

.ebp-card__trigger:hover .ebp-card__shade {
	opacity: 1;
}

.ebp-motion-zoom .ebp-card__trigger:hover .ebp-card__image img {
	transform: scale(1.07);
}

.ebp-motion-lift .ebp-card__image img {
	transform: scale(1.05) translateY(0);
}

.ebp-motion-lift .ebp-card__trigger:hover .ebp-card__image img {
	transform: scale(1.05) translateY(-2.5%);
}

.ebp-motion-pan .ebp-card__image img {
	transform: scale(1.1) translateX(-1.5%);
}

.ebp-motion-pan .ebp-card__trigger:hover .ebp-card__image img {
	transform: scale(1.1) translateX(1.5%);
}

[dir="rtl"] .ebp-motion-pan .ebp-card__image img {
	transform: scale(1.1) translateX(1.5%);
}

[dir="rtl"] .ebp-motion-pan .ebp-card__trigger:hover .ebp-card__image img {
	transform: scale(1.1) translateX(-1.5%);
}

.ebp-motion-desaturate .ebp-card__image img {
	filter: grayscale(1) contrast(1.08);
}

.ebp-motion-desaturate .ebp-card__trigger:hover .ebp-card__image img {
	filter: grayscale(0) contrast(1);
	transform: scale(1.035);
}

.ebp-card__number {
	position: absolute;
	z-index: 3;
	top: 20px;
	inset-inline-start: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 11px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.28);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	backdrop-filter: blur(10px);
}

.ebp-card__content {
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 30px;
	pointer-events: none;
	transition-property: transform, opacity;
	transition-duration: 550ms;
	transition-timing-function: cubic-bezier(0.2, 0.72, 0, 1);
}

.ebp-card__content-inner,
.ebp-card__title,
.ebp-card__meta,
.ebp-card__summary,
.ebp-card__cta {
	display: block;
}

.ebp-card__content-inner {
	max-width: 92%;
	transform: translateY(8px);
	transition: transform 550ms cubic-bezier(0.2, 0.72, 0, 1);
}

.ebp-card__trigger:hover .ebp-card__content-inner {
	transform: translateY(0);
}

.ebp-card__title {
	margin: 0 0 12px;
	color: #fff;
	font-size: clamp(30px, 3.3vw, 66px);
	font-weight: 780;
	line-height: 0.98;
	letter-spacing: -0.045em;
	text-wrap: balance;
}

.ebp-card--standard .ebp-card__title,
.ebp-card--tall .ebp-card__title {
	font-size: clamp(28px, 2.1vw, 44px);
}

.ebp-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 11px;
	font-weight: 650;
	line-height: 1.35;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.ebp-card__meta-separator {
	opacity: 0.55;
}

.ebp-card__summary {
	max-width: 620px;
	margin-top: 14px;
	color: rgba(255, 255, 255, 0.78);
	font-size: 15px;
	line-height: 1.5;
}

.ebp-card__cta {
	--ebp-cta-accent: var(--ebp-project-accent, var(--ebp-accent));
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: max-content;
	max-height: 0;
	margin-top: 0;
	overflow: hidden;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 350ms ease, transform 350ms ease, max-height 350ms ease, margin-top 350ms ease;
}

.ebp-card__cta::before {
	width: 22px;
	height: 2px;
	background: var(--ebp-cta-accent);
	content: "";
}

.ebp-card__cta svg {
	width: 16px;
	height: 16px;
}

.ebp-card__trigger:hover .ebp-card__cta,
.ebp-card__trigger:focus-visible .ebp-card__cta {
	max-height: 40px;
	margin-top: 16px;
	opacity: 1;
	transform: translateY(0);
}

[dir="rtl"] .ebp-card__cta svg,
[dir="rtl"] .ebp-detail__link svg {
	transform: scaleX(-1);
}

.ebp-card.is-filtered-out {
	display: none;
}

.ebp-has-entrance .ebp-card {
	opacity: 0;
	transform: translateY(28px);
}

.ebp-has-entrance .ebp-card.is-visible {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 700ms ease calc(var(--ebp-entrance-index, 0) * 65ms), transform 700ms cubic-bezier(0.18, 0.72, 0, 1) calc(var(--ebp-entrance-index, 0) * 65ms);
}

.elementor-editor-active .ebp-has-entrance .ebp-card {
	opacity: 1;
	transform: none;
}

.ebp-templates {
	display: none !important;
}

.ebp-film-grain {
	position: absolute;
	z-index: 40;
	inset: -50%;
	width: 200%;
	height: 200%;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.48'/%3E%3C/svg%3E");
	opacity: 0.11;
	pointer-events: none;
	mix-blend-mode: soft-light;
	animation: ebp-grain 0.28s steps(2) infinite;
}

@keyframes ebp-grain {
	0% { transform: translate3d(0, 0, 0); }
	25% { transform: translate3d(-3%, 2%, 0); }
	50% { transform: translate3d(2%, -4%, 0); }
	75% { transform: translate3d(4%, 3%, 0); }
	100% { transform: translate3d(-2%, -1%, 0); }
}

.ebp-index-toggle {
	--ebp-trigger-x: 20px;
	--ebp-trigger-y: 16px;
	position: absolute;
	z-index: 2147483010;
	top: var(--ebp-trigger-y);
	right: var(--ebp-trigger-x);
	bottom: auto;
	left: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	background: #111;
	color: #faf9f2;
	cursor: pointer;
	transition: color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.ebp-index-toggle--top-left {
	right: auto;
	left: var(--ebp-trigger-x);
}

.ebp-index-toggle--bottom-right {
	top: auto;
	bottom: var(--ebp-trigger-y);
}

.ebp-index-toggle--bottom-left {
	top: auto;
	right: auto;
	bottom: var(--ebp-trigger-y);
	left: var(--ebp-trigger-x);
}

.ebp-index-toggle--fixed {
	position: fixed;
}

.elementor-editor-active .ebp-index-toggle--fixed {
	position: absolute;
}

.ebp-index-toggle:hover,
.ebp-index-toggle.is-open {
	color: #f2473e;
}

.ebp-index-toggle__icon {
	position: relative;
	display: block;
	width: 21px;
	height: 14px;
}

.ebp-index-toggle__line {
	position: absolute;
	inset-inline: 0;
	display: block;
	height: 2px;
	background: currentColor;
	transform-origin: center;
	transition: top 260ms ease, transform 340ms cubic-bezier(0.16, 0.8, 0, 1);
}

.ebp-index-toggle__line:first-child { top: 3px; }
.ebp-index-toggle__line:last-child { top: 10px; }
.ebp-index-toggle.is-open .ebp-index-toggle__line:first-child { top: 7px; transform: rotate(45deg); }
.ebp-index-toggle.is-open .ebp-index-toggle__line:last-child { top: 7px; transform: rotate(-45deg); }

.ebp-index {
	--ebp-index-accent: #f2473e;
	position: fixed;
	z-index: 2147483005;
	inset: 0;
	visibility: hidden;
	background: rgba(0, 0, 0, 0.82);
	opacity: 0;
	pointer-events: none;
	transition: visibility 0s linear 620ms, opacity 360ms ease;
}

.ebp-index.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0s;
}

.ebp-index__panel {
	position: absolute;
	inset: 0;
	padding: 86px 70px 60px;
	overflow: hidden;
	background: #171717;
	color: #faf9f2;
	clip-path: inset(0 0 100% 0);
	transition: clip-path 680ms cubic-bezier(0.77, 0, 0.18, 1);
	isolation: isolate;
}

.ebp-index.is-open .ebp-index__panel {
	clip-path: inset(0 0 0 0);
}

.ebp-index__layout {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: stretch;
	gap: 60px;
	width: 100%;
	height: 100%;
	direction: ltr;
}

.ebp-index--list-right .ebp-index__layout { flex-direction: row; }
.ebp-index--list-left .ebp-index__layout { flex-direction: row-reverse; }
.ebp-index[dir="rtl"] .ebp-index__list-pane { direction: rtl; }

.ebp-index__identity {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}

.ebp-index__giant-word {
	position: absolute;
	top: 50%;
	inset-inline-start: 0;
	width: 118%;
	color: var(--ebp-index-accent);
	font-size: 23vw;
	font-weight: 900;
	line-height: 0.72;
	letter-spacing: -0.095em;
	white-space: nowrap;
	transform: translate(var(--ebp-giant-x, -2vw), -50%);
	transform-origin: center;
	user-select: none;
}

[dir="rtl"] .ebp-index__giant-word {
	transform: translate(var(--ebp-giant-x, 2vw), -50%);
}

.ebp-index__list-pane {
	--ebp-index-list-x: 0px;
	--ebp-index-list-y: 0px;
	position: relative;
	display: flex;
	flex: 0 0 31%;
	flex-direction: column;
	justify-content: center;
	min-width: 330px;
	max-height: 100%;
	transform: translate(var(--ebp-index-list-x), var(--ebp-index-list-y));
}

.ebp-index__heading {
	margin: 0 0 36px;
	color: #faf9f2;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.2;
}

.ebp-index__projects {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.ebp-index__project {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	padding: 2px 0;
	border: 0 solid transparent !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #faf9f2 !important;
	-webkit-appearance: none;
	appearance: none;
	text-align: start;
	cursor: pointer;
	transition: color 180ms ease, transform 180ms ease;
}

.ebp-index__project::before {
	position: absolute;
	top: 50%;
	inset-inline-start: -24px;
	width: 0;
	height: 2px;
	background: currentColor;
	content: "";
	transition: width 220ms ease;
}

.ebp-index__project:hover,
.ebp-index__project:focus-visible,
.ebp-index__project.is-active {
	color: var(--ebp-index-accent) !important;
	transform: translateX(8px);
}

[dir="rtl"] .ebp-index__project:hover,
[dir="rtl"] .ebp-index__project:focus-visible,
[dir="rtl"] .ebp-index__project.is-active {
	transform: translateX(-8px);
}

.ebp-index__project:hover::before,
.ebp-index__project:focus-visible::before {
	width: 16px;
}

.ebp-index__project-main {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	min-width: 0;
}

.ebp-index__project-title {
	font-size: clamp(15px, 1.35vw, 22px);
	font-weight: 500;
	line-height: 1.2;
}

.ebp-index__project-number {
	color: var(--ebp-index-accent);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.ebp-index__project-category {
	flex-basis: 100%;
	color: #8e8d88;
	font-size: 9px;
	font-weight: 650;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ebp-index__project-year {
	flex: 0 0 auto;
	color: #8e8d88;
	font-size: 10px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.ebp-index__footer-link {
	display: inline-block;
	width: max-content;
	margin-top: 36px;
	color: #faf9f2;
	font-size: 15px;
	line-height: 1.2;
	text-decoration: none;
	transition: color 180ms ease;
}

.ebp-index__footer-link:hover {
	color: var(--ebp-index-accent);
}

.ebp-cursor {
	--ebp-cursor-size: 22px;
	--ebp-cursor-active-size: 72px;
	--ebp-cursor-color: #d8d8d2;
	--ebp-cursor-label-color: #111;
	position: fixed;
	z-index: 2147483640;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--ebp-cursor-size);
	height: var(--ebp-cursor-size);
	margin-top: calc(var(--ebp-cursor-size) / -2);
	margin-left: calc(var(--ebp-cursor-size) / -2);
	border: 1px solid var(--ebp-cursor-color);
	border-radius: 50%;
	color: var(--ebp-cursor-label-color);
	opacity: 0;
	pointer-events: none;
	transition: width 220ms ease, height 220ms ease, margin 220ms ease, opacity 160ms ease, background-color 220ms ease;
}

.ebp-cursor span {
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	opacity: 0;
	transition: opacity 160ms ease;
}

.ebp-cursor.is-visible { opacity: 1; }
.ebp-cursor.is-active {
	width: var(--ebp-cursor-active-size);
	height: var(--ebp-cursor-active-size);
	margin-top: calc(var(--ebp-cursor-active-size) / -2);
	margin-left: calc(var(--ebp-cursor-active-size) / -2);
	background: var(--ebp-cursor-color);
}
.ebp-cursor.is-active span { opacity: 1; }

@media (pointer: fine) {
	.ebp-has-cursor,
	.ebp-has-cursor *,
	.ebp-has-custom-cursor .ebp-index,
	.ebp-has-custom-cursor .ebp-index *,
	.ebp-has-custom-cursor .ebp-modal,
	.ebp-has-custom-cursor .ebp-modal * {
		cursor: none !important;
	}
}

.ebp-editor-empty {
	padding: 24px;
	border: 1px dashed #999;
	color: #555;
	text-align: center;
}

html.ebp-modal-open,
html.ebp-modal-open body {
	overflow: hidden !important;
}

.ebp-portal {
	position: relative;
	z-index: 2147483000;
}

.ebp-modal {
	position: fixed;
	z-index: 2147483000;
	inset: 0;
	display: grid;
	place-items: center;
	visibility: hidden;
	pointer-events: none;
}

.ebp-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.88);
	opacity: 0;
	transition: opacity 340ms ease;
}

.ebp-modal__shell {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100vh;
	max-width: 100vw;
	max-height: 100vh;
	overflow: hidden;
	background: #f0ece4;
	color: #111;
	opacity: 0;
	transition: opacity 340ms ease, transform 460ms cubic-bezier(0.18, 0.8, 0, 1);
}

.ebp-modal[data-ebp-animation="rise"] .ebp-modal__shell {
	transform: translateY(42px);
}

.ebp-modal[data-ebp-animation="scale"] .ebp-modal__shell {
	transform: scale(0.96);
}

.ebp-modal[data-ebp-animation="fade"] .ebp-modal__shell {
	transform: none;
}

.ebp-modal.is-open {
	visibility: visible;
	pointer-events: auto;
}

.ebp-modal.is-open .ebp-modal__backdrop,
.ebp-modal.is-open .ebp-modal__shell {
	opacity: 1;
}

.ebp-modal.is-open .ebp-modal__shell {
	transform: none;
}

.ebp-modal__scroll {
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--ebp-modal-accent) 65%, #777) transparent;
}

.ebp-modal__close {
	position: absolute;
	z-index: 20;
	top: 22px;
	inset-inline-end: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	color: #111;
	cursor: pointer;
	backdrop-filter: blur(14px);
	transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.ebp-modal__close:hover {
	background: #111;
	color: #fff;
	transform: rotate(4deg) scale(1.04);
}

.ebp-modal__close svg {
	width: 22px;
	height: 22px;
}

.ebp-modal__content {
	min-height: calc(100% - 92px);
}

.ebp-detail {
	--ebp-project-accent: var(--ebp-modal-accent);
	width: 100%;
	max-width: 1680px;
	margin: 0 auto;
	padding: 90px 64px 64px;
}

.ebp-detail__hero {
	display: grid;
	align-items: center;
	gap: 70px;
}

.ebp-detail[data-layout="split"] .ebp-detail__hero {
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr);
}

.ebp-detail[data-layout="stack"] .ebp-detail__hero {
	grid-template-columns: minmax(0, 1fr);
}

.ebp-detail[data-layout="stack"] .ebp-detail__copy {
	max-width: 980px;
	padding-top: 10px;
}

.ebp-detail__main-image {
	position: relative;
	height: 72vh;
	min-height: 360px;
	overflow: hidden;
	border-radius: 4px;
	background: color-mix(in srgb, var(--ebp-project-accent) 12%, #d9d5cd);
}

.ebp-detail__main-image::after {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: inherit;
	content: "";
	pointer-events: none;
}

.ebp-detail__main-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ebp-detail__copy {
	position: relative;
	min-width: 0;
}

.ebp-detail__copy::before {
	display: block;
	width: 76px;
	height: 6px;
	margin-bottom: 28px;
	background: var(--ebp-project-accent, var(--ebp-modal-accent));
	content: "";
}

.ebp-detail__eyebrow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	margin: 0 0 18px;
	color: #56524c;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ebp-detail__eyebrow-number {
	color: var(--ebp-project-accent, var(--ebp-modal-accent));
}

.ebp-detail__title {
	margin: 0 0 24px;
	color: #111;
	font-size: clamp(54px, 6vw, 118px);
	font-weight: 820;
	line-height: 0.86;
	letter-spacing: -0.06em;
	text-wrap: balance;
}

.ebp-detail__description {
	margin: 0 0 40px;
	color: #252525;
	font-size: clamp(16px, 1.25vw, 21px);
	line-height: 1.62;
}

.ebp-detail__description > :first-child {
	margin-top: 0;
}

.ebp-detail__description > :last-child {
	margin-bottom: 0;
}

.ebp-detail__meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 34px;
	padding-top: 22px;
	border-top: 1px solid rgba(0, 0, 0, 0.15);
}

.ebp-detail__meta-item,
.ebp-detail__meta-label,
.ebp-detail__meta-value {
	display: block;
}

.ebp-detail__meta-label,
.ebp-detail__services-label {
	margin-bottom: 8px;
	color: #77716a;
	font-size: 9px;
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.ebp-detail__meta-value {
	color: #111;
	font-size: 14px;
	line-height: 1.35;
}

.ebp-detail__services-wrap {
	margin: 0 0 32px;
}

.ebp-detail__services {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ebp-detail__service {
	display: inline-flex;
	align-items: center;
	padding: 8px 12px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.06);
	color: #111;
	font-size: 11px;
	font-weight: 650;
	line-height: 1;
}

.ebp-detail__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding-bottom: 5px;
	border-bottom: 2px solid var(--ebp-project-accent, var(--ebp-modal-accent));
	color: #111;
	font-size: 13px;
	font-weight: 760;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 180ms ease, gap 180ms ease;
}

.ebp-detail__link:hover {
	color: var(--ebp-project-accent, var(--ebp-modal-accent));
	gap: 15px;
}

.ebp-detail__link svg {
	width: 18px;
	height: 18px;
}

.ebp-detail__gallery {
	--ebp-gallery-columns: 2;
	display: grid;
	grid-template-columns: repeat(var(--ebp-gallery-columns), minmax(0, 1fr));
	gap: 18px;
	margin-top: 90px;
}

.ebp-detail__gallery-item {
	position: relative;
	height: 520px;
	margin: 0;
	overflow: hidden;
	border-radius: 4px;
	background: #d9d5cd;
}

.ebp-detail__gallery-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 700ms cubic-bezier(0.2, 0.72, 0, 1);
}

.ebp-detail__gallery-item:hover img {
	transform: scale(1.025);
}

.ebp-modal__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	width: 100%;
	margin: 0 auto;
	padding: 28px 64px;
	border-top: 1px solid rgba(0, 0, 0, 0.18);
}

.ebp-modal__nav-button {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	width: max-content;
	padding: 6px 0;
	border: 0;
	background: transparent;
	color: #111;
	font-size: 12px;
	font-weight: 750;
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color 180ms ease, gap 180ms ease;
}

.ebp-modal__nav-button:hover {
	color: var(--ebp-project-accent, var(--ebp-modal-accent));
	gap: 17px;
}

.ebp-modal__nav-button svg {
	width: 20px;
	height: 20px;
}

.ebp-modal__nav-button--previous {
	justify-self: start;
}

.ebp-modal__nav-button--previous svg {
	transform: scaleX(-1);
}

.ebp-modal__nav-button--next {
	grid-column: 3;
	justify-self: end;
}

[dir="rtl"] .ebp-modal__nav-button--previous svg {
	transform: none;
}

[dir="rtl"] .ebp-modal__nav-button--next svg {
	transform: scaleX(-1);
}

.ebp-modal__counter {
	grid-column: 2;
	color: #77716a;
	font-size: 11px;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.ebp-modal.is-open .ebp-detail__main-image,
.ebp-modal.is-open .ebp-detail__copy {
	animation: ebp-detail-enter 700ms both cubic-bezier(0.18, 0.8, 0, 1);
}

.ebp-modal.is-open .ebp-detail__copy {
	animation-delay: 80ms;
}

@keyframes ebp-detail-enter {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 1024px) {
	.ebp-portfolio {
		padding: 42px 32px;
	}

	.ebp-intro {
		flex-direction: column;
		align-items: start;
		gap: 30px;
		margin-bottom: 54px;
	}

	.ebp-intro-row- .ebp-intro {
		flex-direction: column;
	}

	.ebp-intro__heading,
	.ebp-intro__description {
		flex-basis: auto;
	}

	.ebp-intro__title {
		font-size: clamp(52px, 10vw, 104px);
	}

	.ebp-index__panel {
		padding: 76px 36px 42px;
	}

	.ebp-index__layout {
		gap: 34px;
	}

	.ebp-index__list-pane {
		flex-basis: 42%;
		min-width: 300px;
	}

	.ebp-index__giant-word {
		font-size: 28vw;
	}

	.ebp-grid {
		--ebp-columns: 2;
	}

	.ebp-detail {
		padding: 86px 36px 50px;
	}

	.ebp-detail[data-layout="split"] .ebp-detail__hero {
		grid-template-columns: minmax(0, 1fr);
	}

	.ebp-detail__main-image {
		height: 62vh;
	}

	.ebp-detail__copy {
		max-width: 820px;
	}

	.ebp-detail__gallery-item {
		height: 420px;
	}
}

@media (max-width: 767px) {
	.ebp-portfolio {
		padding: 30px 18px;
	}

	.ebp-intro {
		gap: 24px;
		margin-bottom: 40px;
	}

	.ebp-intro--has-image {
		min-height: 72vh;
		padding: 28px 22px;
	}

	.ebp-intro__title {
		font-size: clamp(43px, 16vw, 74px);
		line-height: 0.9;
	}

	.ebp-intro__description {
		font-size: 16px;
	}

	.ebp-filters {
		flex-wrap: nowrap;
		justify-content: flex-start;
		margin-inline: -18px;
		padding-inline: 18px;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.ebp-filters::-webkit-scrollbar {
		display: none;
	}

	.ebp-filter {
		flex: 0 0 auto;
	}

	.ebp-index-toggle {
		--ebp-trigger-x: 12px;
		--ebp-trigger-y: 12px;
		width: 48px;
		height: 48px;
	}

	.ebp-index__panel {
		padding: 76px 22px 34px;
		overflow-y: auto;
	}

	.ebp-index__layout {
		display: block;
		height: auto;
		min-height: 100%;
	}

	.ebp-index__identity {
		position: absolute;
		inset: 0;
		opacity: 0.18;
		pointer-events: none;
	}

	.ebp-index__giant-word {
		top: 44%;
		inset-inline-start: -8vw;
		width: 150%;
		font-size: 54vw;
	}

	.ebp-index__list-pane {
		position: relative;
		z-index: 2;
		justify-content: flex-start;
		width: 100%;
		min-width: 0;
	}

	.ebp-index__heading {
		margin-bottom: 28px;
	}

	.ebp-index__projects {
		gap: 15px;
	}

	.ebp-index__project-title {
		font-size: 18px;
	}

	.ebp-index__project::before {
		display: none;
	}

	.ebp-grid {
		--ebp-columns: 1;
	}

	.ebp-card--wide,
	.ebp-card--hero {
		grid-column: span 1;
	}

	.ebp-card__trigger,
	.ebp-card--tall .ebp-card__trigger,
	.ebp-card--hero .ebp-card__trigger {
		min-height: 440px;
	}

	.ebp-card__content {
		padding: 22px;
	}

	.ebp-card__number {
		top: 14px;
		inset-inline-start: 14px;
	}

	.ebp-card__title,
	.ebp-card--standard .ebp-card__title,
	.ebp-card--tall .ebp-card__title {
		font-size: clamp(30px, 11vw, 48px);
	}

	.ebp-card__cta {
		max-height: 40px;
		margin-top: 15px;
		opacity: 1;
		transform: none;
	}

	.ebp-modal__close {
		top: 14px;
		inset-inline-end: 14px;
		width: 46px;
		height: 46px;
	}

	.ebp-detail {
		padding: 76px 18px 36px;
	}

	.ebp-detail__hero {
		gap: 38px;
	}

	.ebp-detail__main-image {
		height: 52vh;
		min-height: 300px;
	}

	.ebp-detail__copy::before {
		width: 54px;
		height: 5px;
		margin-bottom: 22px;
	}

	.ebp-detail__title {
		font-size: clamp(48px, 18vw, 78px);
		line-height: 0.9;
	}

	.ebp-detail__meta {
		grid-template-columns: minmax(0, 1fr);
	}

	.ebp-detail__gallery {
		--ebp-gallery-columns: 1;
		margin-top: 56px;
	}

	.ebp-detail__gallery-item {
		height: 360px;
	}

	.ebp-modal__footer {
		gap: 12px;
		padding: 22px 18px;
	}

	.ebp-modal__nav-button {
		font-size: 0;
		gap: 0;
	}

	.ebp-modal__nav-button svg {
		width: 26px;
		height: 26px;
	}

	.ebp-modal__counter {
		font-size: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ebp-portfolio *,
	.ebp-portfolio *::before,
	.ebp-portfolio *::after,
	.ebp-modal *,
	.ebp-modal *::before,
	.ebp-modal *::after {
		scroll-behavior: auto !important;
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
	}

	.ebp-has-entrance .ebp-card {
		opacity: 1;
		transform: none;
	}
}
