/**
 * Firefly Scroller (Preview — Before) styles.
 *
 * Identical to Firefly Interview Scroller EXCEPT the card rules restore the
 * pre-last-change coverflow look: side (non-focused) cards dim + scale down,
 * the focused card is full opacity / full size.
 */
.ffis{
	--ffis-accent: var(--e-global-color-primary, #6EC1E4);
	--ffis-ink: var(--e-global-color-2890e26, #021127);
	--ffis-soft: var(--e-global-color-0df3eba, #F4F4F8);
	--ffis-muted: var(--e-global-color-text, #7A7A7A);
	position: relative;
	box-sizing: border-box;
}
.ffis *{ box-sizing: border-box; }

.ffis__pin{
	min-height: auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: clamp(2rem, 5vh, 4rem);
	padding: clamp(3rem, 6vh, 6rem) clamp(1.25rem, 6vw, 6rem);
	overflow: hidden;
}
.ffis--jack .ffis__pin{ min-height: 100vh; }

.ffis__head{ text-align: center; max-width: 760px; margin: 0 auto; }
.ffis__heading{
	font-family: var(--e-global-typography-b2a2c9e-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-b2a2c9e-font-size, 40px);
	line-height: 1.1;
	font-weight: 800;
	color: var(--ffis-ink);
	margin: 0 0 1rem;
}
.ffis__subheading{
	font-family: var(--e-global-typography-6337102-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-6337102-font-size, 20px);
	line-height: 1.6;
	color: var(--ffis-muted);
	margin: 0;
}

.ffis__body{
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 1.7fr;
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	width: 100%;
}

.ffis__left{ display: flex; gap: 1.25rem; align-items: stretch; }
.ffis__bar{
	position: relative;
	width: 4px;
	border-radius: 4px;
	background: var(--ffis-soft);
	flex: 0 0 auto;
	align-self: stretch;
	min-height: 170px;
}
.ffis__bar-fill{
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 0;
	background: var(--ffis-accent);
	border-radius: 4px;
	transition: height .12s linear;
}
.ffis__step-num{
	display: block;
	font-family: var(--e-global-typography-83102b5-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-83102b5-font-size, 28px);
	color: var(--ffis-muted);
	opacity: .55;
	margin-bottom: .75rem;
	letter-spacing: .02em;
}
.ffis__step-title{
	font-family: var(--e-global-typography-83102b5-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-83102b5-font-size, 28px);
	font-weight: 700;
	color: var(--ffis-ink);
	margin: 0 0 1rem;
}
.ffis__step-desc{
	font-family: var(--e-global-typography-e3368c3-font-family, "Inter", sans-serif);
	font-size: var(--e-global-typography-e3368c3-font-size, 16px);
	line-height: 1.6;
	color: var(--ffis-muted);
	margin: 0;
	max-width: 40ch;
}

.ffis__viewport{
	position: relative;
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	background: var(--ffis-panel-bg, var(--e-global-color-0df3eba, #F4F4F8));
	border: var(--ffis-panel-bw, 1px) solid var(--ffis-panel-bc, rgba(2, 17, 39, .05));
	border-radius: var(--ffis-panel-radius, 28px);
	padding: clamp(1.5rem, 4vh, 3rem) 0;
	box-shadow: 0 30px 60px -40px var(--ffis-shadow, rgba(2, 17, 39, .30));
	scrollbar-width: none;
}
.ffis__viewport::-webkit-scrollbar{ display: none; }
.ffis--jack .ffis__viewport{ overflow: hidden; }
.ffis__track{
	display: flex;
	gap: clamp(1rem, 2vw, 1.75rem);
	align-items: center;
	padding: 0 clamp(1rem, 4vw, 4rem);
	will-change: transform;
}

/* Coverflow (pre-last-change): focused card full, side cards dim + scale. */
.ffis__card{
	position: relative;
	flex: 0 0 auto;
	height: 300px;
	width: min(512px, 86vw);
	max-width: 512px;
	border-radius: var(--ffis-card-radius, 22px);
	overflow: hidden;
	background: var(--ffis-card-bg, var(--ffis-soft));
	border: var(--ffis-card-bw, 0px) solid var(--ffis-card-bc, var(--ffis-on-accent, #ffffff));
	box-shadow: 0 18px 44px -22px var(--ffis-shadow, rgba(2, 17, 39, .40));
	opacity: .42;
	transform: scale(.9);
	transition: transform .45s ease, opacity .45s ease;
}
.ffis__card.is-active{
	opacity: 1;
	transform: scale(1);
}
.ffis__card-media{ position: absolute; inset: 0; }
.ffis__card-media img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (max-width: 767px){
	.ffis__body{ grid-template-columns: 1fr; }
	.ffis__heading{ font-size: var(--e-global-typography-b2a2c9e-font-size, 32px); }
}
