/* Lenis smooth scrolling (assets/js/smooth-scroll.js). */
html.lenis,
html.lenis body {
	height: auto;
}

.lenis.lenis-smooth {
	scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-stopped {
	overflow: hidden;
}

.lenis.lenis-scrolling iframe {
	pointer-events: none;
}

.seamkt-home {
	isolation: isolate;
}

/* Only the transform animates here (hero-motion.js writes it directly). Its corner radius is
   fixed, and it is never faded: a changing radius repainted this whole tall section, and
   opacity on it made the GPU redraw the entire page into an offscreen pass on every frame.
   The dimming while it rises is a separate sheet (.seamkt-home__dim) that only fades. */
.seamkt-home__content {
	position: relative;
	z-index: 1;
	width: 100%;
	overflow: clip;
	border-radius: 34px 34px 0 0;
	background: #fff;
	box-shadow: 0 -24px 80px #0000002e;
	transform-origin: top center;
	will-change: transform;
}

/* Added by hero-motion.js: a dark sheet over the top screen of the white section while it rises
   out of the hero, faded on its own layer. */
.seamkt-home__dim {
	position: absolute;
	z-index: 50;
	top: 0;
	right: 0;
	left: 0;
	height: 130svh;
	background: #000;
	opacity: 0;
	pointer-events: none;
	will-change: opacity;
}

.seamkt-hero-transition {
	position: relative;
	z-index: 0;
	height: 170svh;
	pointer-events: none;
}

/* Room at the top of the white section that the hero video grows into. */
.seamkt-home__reel-space {
	height: 100svh;
	pointer-events: none;
}

/* The hero video lives on its own layer so it can sit above the white section while it grows.
   hero-motion.js lays it out at a fixed size and only moves and scales it (from its top
   left corner), so the playing video is never resized or re-laid out mid-scroll. The box
   draws nothing of its own (no background, border or shadow): its corner radius changes on
   every frame while it grows, and with nothing to paint that is only a clip the GPU applies
   to the video, where a painted box had to be redrawn whole each time. */
.seamkt-hero-reel {
	position: fixed;
	z-index: 5;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	overflow: hidden;
	border-radius: 16px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform-origin: 0 0;
	will-change: transform;
}

/* Scaled back from the centre while the reel grows, so the picture is cropped, never stretched. */
.seamkt-hero-reel video {
	display: block;
	width: 100%;
	height: 100%;
	background: #050505;
	object-fit: cover;
	transform-origin: 50% 50%;
	will-change: transform;
}

/* Frosted badge that fades in over the reel as it reaches full size. */
.seamkt-about {
	position: relative;
	isolation: isolate;
	padding: clamp(64px, 8vw, 120px) 24px;
	background-color: #fff;
	color: #555753;
	font-family: var(--seamkt-font);
	font-size: 16px;
	line-height: 1.45;
}

.seamkt-about::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image: url('../images/h2-bg-noise-1.gif');
	background-repeat: repeat;
	opacity: 0.035;
	pointer-events: none;
	content: '';
}

.seamkt-about__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(40px, 8vw, 120px);
	max-width: 1200px;
	margin-inline: auto;
}

.seamkt-about__hands {
	position: relative;
	height: clamp(150px, 27vw, 440px);
	margin: calc(-1 * clamp(64px, 8vw, 120px)) -24px 32px;
	overflow: hidden;
	pointer-events: none;
	user-select: none;
}

.seamkt-about__hand {
	position: absolute;
	display: block;
	width: min(44%, 720px);
	height: auto;
}

.seamkt-about__hand--robot {
	top: 0;
	left: 0;
}

.seamkt-about__hand--human {
	top: 12%;
	right: 0;
}

.seamkt-about .seamkt-about__title {
	max-width: 520px;
	margin: 0 0 28px;
	color: #171816;
	font-family: var(--seamkt-font);
	font-size: clamp(36px, 4vw, 56px);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.025em;
}

.seamkt-about p {
	max-width: 400px;
	margin: 0 0 24px;
}

.seamkt-about__intro p:last-child {
	margin-bottom: 0;
	color: #30322f;
}

.seamkt-about__media {
	aspect-ratio: 456 / 198;
	margin-bottom: 18px;
	overflow: hidden;
	background: #191919;
}

.seamkt-about__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1);
}

.seamkt-about__link {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	min-height: 44px;
	color: #d1cfca;
	font-size: 14px;
	text-decoration: none;
}

.seamkt-about__link svg {
	flex-shrink: 0;
}

.seamkt-about__link:hover {
	color: #fff;
}

.seamkt-about__link:focus-visible {
	outline: 2px solid #d1cfca;
	outline-offset: 5px;
}

@media (max-width: 767px) {
	.seamkt-about__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.seamkt-about p {
		max-width: none;
	}
}

.seamkt-hero {
	--hero-bg: #000;
	--hero-ink: #20201e;
	--hero-accent: #d5f34a;
	--hero-paper: #fffaf4;
	--hero-marquee-duration: 48s;
	--hero-exit-opacity: 1;
	--session-reveal-opacity: 0;
	--session-reveal-scale: 1.08;
	--session-background-opacity: 1;
	--session-media-opacity: 1;
	--session-media-blur: 0px;
	--session-badge-opacity: 0;
	--session-badge-y: 14px;
	--session-status-opacity: 0;
	--session-status-y: 14px;
	--session-line-1-opacity: 0;
	--session-line-1-clip: 100%;
	--session-line-1-x: 42px;
	--session-line-2-opacity: 0;
	--session-line-2-clip: 100%;
	--session-line-2-x: 42px;
	--session-line-3-opacity: 0;
	--session-line-3-clip: 100%;
	--session-line-3-x: 42px;
	--session-underline-opacity: 0;
	--session-underline-offset: 1;
	position: sticky;
	top: 0;
	z-index: 0;
	isolation: isolate;
	display: grid;
	grid-template-rows: 1fr auto;
	min-height: 100svh;
	overflow: clip;
	background: radial-gradient(ellipse at 0% 100%, #aab5c380, transparent 22%), radial-gradient(ellipse at 100% 0%, #aab5c380, transparent 20%), repeating-linear-gradient(90deg, transparent 0, transparent calc(16.666% - 1px), #20201e0a calc(16.666% - 1px), #20201e0a 16.666%), var(--hero-bg);
	color: var(--hero-ink);
	font-family: var(--seamkt-font);
}

.seamkt-hero *,
.seamkt-hero *::before,
.seamkt-hero *::after {
	box-sizing: border-box;
}

.seamkt-hero__portrait {
	position: absolute;
	z-index: -1;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
	transform-origin: center 65%;
	pointer-events: none;
}

/* The intro fades as the session covers it: opacity only, each on its own layer, so the fade
   never repaints them (an animated blur here re-filtered the full-screen portrait each frame). */
.seamkt-hero__portrait,
.seamkt-hero__label,
.seamkt-hero__title,
.seamkt-home-header {
	opacity: var(--hero-exit-opacity);
	will-change: opacity;
}

.seamkt-hero__portrait {
	will-change: transform, opacity;
}

.seamkt-hero__session {
	position: absolute;
	z-index: 4;
	inset: 0;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	padding: clamp(24px, 4vw, 72px);
	overflow: hidden;
	background: #050505;
	color: #fff;
	opacity: var(--session-reveal-opacity);
	transform: scale(var(--session-reveal-scale));
	transform-origin: center;
	/* Zoomed and faded in on its own layer; a full-screen blur on top was redone every frame. */
	will-change: transform, opacity;
	pointer-events: none;
}

.seamkt-hero__session::after {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(180deg, #0000001f 0%, #03050875 52%, #030508e8 100%);
	opacity: var(--session-background-opacity);
	content: '';
}

.seamkt-hero__session-background {
	position: absolute;
	z-index: 0;
	inset: -3%;
	display: block;
	width: 106%;
	max-width: none;
	height: 106%;
	object-fit: cover;
	object-position: center;
	opacity: var(--session-background-opacity);
	/* The image itself is pre-blurred and dimmed (session1-blur.webp), so no filter runs here, and
	   it needs no layer of its own: drawn into the session's layer, the session fades as one
	   picture instead of making the GPU compose it offscreen on every frame. */
}

.seamkt-hero__session-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(1320px, 100%);
	text-align: center;
	font-family: var(--seamkt-font);
}

.seamkt-hero .seamkt-hero__session-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 clamp(26px, 3vw, 44px);
	padding: 10px 18px 10px 14px;
	border: 1px solid #ffffff2e;
	border-radius: 999px;
	background: linear-gradient(180deg, #ffffff24, #ffffff0a);
	box-shadow: inset 0 1px 0 #ffffff33, 0 12px 32px #00000059;
	backdrop-filter: blur(14px) saturate(140%);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	color: #fff;
	font-size: clamp(11px, 0.8vw, 13px);
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;
	text-shadow: 0 1px 2px #00000066;
	opacity: var(--session-badge-opacity);
	transform: translateY(var(--session-badge-y));
}

.seamkt-hero .seamkt-hero__session-badge::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #4d84ff;
	box-shadow: 0 0 0 3px #2e6bff38, 0 0 12px #2e6bff;
}

.seamkt-hero .seamkt-hero__session-title {
	display: grid;
	justify-items: center;
	gap: 0.14em;
	max-width: none;
	margin: 0;
	color: #fff;
	font-family: inherit;
	font-size: clamp(50px, 6vw, 108px);
	font-weight: 500;
	line-height: 1.06;
	letter-spacing: -0.045em;
	text-align: center;
	text-wrap: balance;
}

.seamkt-hero__session-line {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.17em;
	white-space: nowrap;
}

.seamkt-hero__session-text-line {
	display: block;
}

.seamkt-hero__session-text-reveal {
	display: block;
	padding: 0.07em 0.06em 0.13em;
	margin: -0.07em -0.06em -0.13em;
	opacity: var(--session-line-opacity);
	clip-path: inset(-15% var(--session-line-clip) -18% -4%);
	transform: translateX(var(--session-line-x));
}

.seamkt-hero__session-text-line--1 {
	--session-line-opacity: var(--session-line-1-opacity);
	--session-line-clip: var(--session-line-1-clip);
	--session-line-x: var(--session-line-1-x);
}

/* Let the underline tail run past the text once line 1 is fully revealed. */
.seamkt-hero__session-text-line--1 .seamkt-hero__session-text-reveal {
	clip-path: inset(-15% calc(var(--session-line-clip) * 1.4 - 40%) -18% -4%);
}

.seamkt-hero__session-underline-target {
	position: relative;
	z-index: 0;
	display: inline-block;
	white-space: nowrap;
	isolation: isolate;
}

.seamkt-hero__session-underline {
	position: absolute;
	z-index: -1;
	left: 0;
	bottom: -0.24em;
	/* The drawing is 840 units wide: units 0-774 keep the loop where it was, and the rest is a longer
	   straight tail, so the SVG is that much wider than the original text + 0.9em. */
	width: calc((100% + 0.9em) * 840 / 774);
	height: 0.48em;
	overflow: visible;
	opacity: var(--session-underline-opacity);
	filter: drop-shadow(0 0 3px #2e6bff55);
	pointer-events: none;
}

.seamkt-hero__session-underline path {
	fill: none;
	stroke: #2e6bff;
	stroke-width: 8;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 1;
	stroke-dashoffset: var(--session-underline-offset);
	vector-effect: non-scaling-stroke;
	opacity: 0.16;
}

.seamkt-hero__session-underline path:last-child {
	stroke-width: 3.4;
	opacity: 1;
}

.seamkt-hero__session-text-line--2 {
	--session-line-opacity: var(--session-line-2-opacity);
	--session-line-clip: var(--session-line-2-clip);
	--session-line-x: var(--session-line-2-x);
}

.seamkt-hero__session-text-line--3 {
	--session-line-opacity: var(--session-line-3-opacity);
	--session-line-clip: var(--session-line-3-clip);
	--session-line-x: var(--session-line-3-x);
}

.seamkt-hero__session-video {
	--session-video-radius: clamp(12px, 1.15vw, 18px);
	display: block;
	flex: 0 0 auto;
	width: clamp(124px, 12vw, 190px);
	aspect-ratio: 16 / 9;
	border-radius: var(--session-video-radius);
	/* Placeholder only: the visible video is .seamkt-hero-reel, positioned over this box. */
	visibility: hidden;
}

.seamkt-hero .seamkt-hero__session-status {
	display: block;
	width: fit-content;
	margin: clamp(28px, 4vw, 54px) auto 0;
	color: #ffffffb8;
	font-size: clamp(12px, 0.95vw, 15px);
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.4;
	opacity: var(--session-status-opacity);
	transform: translateY(var(--session-status-y));
}

.seamkt-hero a:focus-visible,
.seamkt-skip-link:focus-visible {
	outline: 3px solid #687c00;
	outline-offset: 5px;
}

.seamkt-hero__label {
	position: absolute;
	top: 10%;
	left: 50%;
	display: flex;
	align-items: center;
	gap: 9px;
	max-width: calc(100% - 32px);
	margin: 0;
	padding: 20px 35px;
	border: 1px solid #ffffff26;
	border-radius: 22px;
	background: #080808b3;
	color: #fff;
	font-size: clamp(18px, 1.7vw, 30px);
	font-weight: 500;
	line-height: 1.5;
	white-space: nowrap;
	transform: translateX(-50%);
}

.seamkt-hero__service {
	min-width: 0;
	min-height: 1.5em;
	overflow: hidden;
	transition: width 80ms linear;
}

@media (prefers-reduced-motion: reduce) {
	.seamkt-home__content {
		border-radius: 0;
		opacity: 1;
		transform: none;
		will-change: auto;
	}

	.seamkt-hero__portrait,
	.seamkt-hero__label,
	.seamkt-hero__title,
	.seamkt-home-header,
	.seamkt-hero__session {
		filter: none;
	}

	.seamkt-hero__session {
		transform: none;
	}

	.seamkt-hero__session-video,
	.seamkt-hero__session-text-reveal {
		filter: none;
	}

	.seamkt-hero__session-text-reveal,
	.seamkt-hero .seamkt-hero__session-badge,
	.seamkt-hero .seamkt-hero__session-status {
		transform: none;
	}

	.seamkt-hero__service {
		transition: none;
	}
}

.seamkt-hero__cursor {
	flex: 0 0 1px;
	width: 1px;
	height: 1.5em;
	background: currentColor;
}

.seamkt-hero .seamkt-hero__title {
	position: absolute;
	top: 38%;
	left: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	color: #c3c3c3;
	font-family: inherit;
	font-size: clamp(100px, 13.5vw, 265px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.075em;
	white-space: nowrap;
	mix-blend-mode: difference;
}

.seamkt-hero__marquee {
	display: flex;
	width: max-content;
	animation: seamkt-marquee var(--hero-marquee-duration) linear infinite;
}

.seamkt-hero__marquee > span {
	flex-shrink: 0;
	padding-inline-end: 0.35em;
}

.seamkt-hero[data-motion-paused="true"] .seamkt-hero__marquee {
	animation-play-state: paused;
}

@keyframes seamkt-marquee {
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.seamkt-hero__marquee {
		display: block;
		width: auto;
		animation: none;
		white-space: normal;
	}

	.seamkt-hero__marquee > span[aria-hidden="true"] {
		display: none;
	}

	.seamkt-hero .seamkt-hero__title {
		font-size: clamp(48px, 7vw, 120px);
	}
}

.seamkt-home-header {
	grid-row: 2;
	position: relative;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	width: min(960px, calc(100% - 64px));
	margin: 0 auto 28px;
	padding: 20px 22px;
	border: 1px solid #ffffff14;
	border-radius: 21px;
	background: rgba(146, 146, 146, 0.23);
	backdrop-filter: blur(18px);
}

.seamkt-hero > .seamkt-home-header {
	--hero-menu-gap: 44px;
	overflow: hidden;
	transition: width 520ms cubic-bezier(0.22, 1, 0.36, 1), padding 420ms ease, gap 420ms ease, background 320ms ease, border-color 320ms ease, box-shadow 320ms ease, border-radius 420ms ease;
}

.seamkt-hero > .seamkt-home-header .seamkt-home-header__brand,
.seamkt-hero > .seamkt-home-header .seamkt-home-menu a,
.seamkt-hero > .seamkt-home-header .seamkt-home-header__menu-icon {
	transition: flex-basis 420ms ease, min-height 420ms ease, width 420ms ease, height 420ms ease, padding 420ms ease, color 180ms ease, background 180ms ease, border-color 180ms ease;
}

.seamkt-hero > .seamkt-home-header .seamkt-home-header__brand img {
	transition: filter 280ms ease, opacity 280ms ease;
}

.seamkt-home-menu__expanded {
	flex: 0 0 auto;
	max-width: 0;
	margin-left: calc(var(--hero-menu-gap) * -1);
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transform: translateX(18px);
	pointer-events: none;
	transition: max-width 500ms cubic-bezier(0.22, 1, 0.36, 1), margin-left 420ms ease, opacity 220ms ease, transform 420ms ease, visibility 0s linear 500ms;
}

.seamkt-home-menu__expanded-inner {
	display: flex;
	align-items: center;
	gap: var(--hero-menu-gap);
	white-space: nowrap;
}

.seamkt-home-header__expanded-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 8px;
	max-width: 0;
	box-shadow: inset 1px 0 0 #ffffff2e;
	overflow: hidden;
	opacity: 0;
	visibility: hidden;
	transform: translateX(14px);
	pointer-events: none;
	transition: max-width 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease, transform 420ms ease, visibility 0s linear 420ms;
}

.seamkt-home-header__expanded-action:first-child {
	margin-left: 16px;
}

.seamkt-home-header__expanded-action {
	display: grid;
	flex: 0 0 54px;
	place-items: center;
	width: 54px;
	height: 54px;
	border: 1px solid #ffffff38;
	border-radius: 14px;
	background: #ffffff17;
	box-shadow: inset 0 1px 0 #ffffff26;
	color: #fff;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.seamkt-home-header__expanded-action:hover,
.seamkt-home-header__expanded-action:focus-visible {
	border-color: #ffffff66;
	background: #ffffff2b;
	color: #fff;
	transform: translateY(-1px);
}

.seamkt-home-header__expanded-action svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.seamkt-hero > .seamkt-home-header .seamkt-home-header__menu-icon {
	padding: 0;
	border: 1px solid transparent;
	background: transparent;
	cursor: pointer;
	appearance: none;
}

.seamkt-hero > .seamkt-home-header .seamkt-home-header__menu-icon > span {
	transition: opacity 220ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Expanded state: wider glass bar, same frosted look as the closed header. */
.seamkt-hero > .seamkt-home-header.is-expanded {
	--hero-menu-gap: 4px;
	flex-wrap: nowrap;
	gap: clamp(12px, 1.4vw, 22px);
	width: min(1440px, calc(100% - 40px));
	padding: 16px 16px 16px 30px;
	overflow: visible;
	border-color: #ffffff29;
	border-radius: 24px;
	background: linear-gradient(180deg, rgba(48, 48, 52, 0.66), rgba(26, 26, 30, 0.74));
	box-shadow: inset 0 1px 0 #ffffff24, 0 18px 48px #00000059;
	backdrop-filter: blur(28px) saturate(1.1) brightness(0.7);
	-webkit-backdrop-filter: blur(28px) saturate(1.1) brightness(0.7);
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__brand {
	flex-basis: 150px;
	min-height: 56px;
	padding: 4px;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__brand img {
	filter: brightness(0) invert(1);
	opacity: 0.98;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-nav {
	order: initial;
	flex: 1 1 auto;
	flex-basis: auto;
	min-width: 0;
	overflow: hidden;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu {
	flex-wrap: nowrap;
	justify-content: center;
	gap: var(--hero-menu-gap);
	overflow-x: auto;
	scrollbar-width: none;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu::-webkit-scrollbar {
	display: none;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu a {
	min-height: 52px;
	padding: 0 clamp(12px, 1.1vw, 18px);
	border-radius: 999px;
	color: #fff;
	font-size: clamp(16px, 1vw, 18px);
	font-weight: 600;
	letter-spacing: 0.01em;
	text-shadow: 0 1px 3px #00000080;
	white-space: nowrap;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu a:hover,
.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu a:focus-visible {
	background: #ffffff26;
	color: #fff;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu__expanded {
	max-width: 860px;
	margin-left: 0;
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	pointer-events: auto;
	transition-delay: 0s, 0s, 110ms, 70ms, 0s;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__expanded-actions {
	max-width: 70px;
	overflow: visible;
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
	pointer-events: auto;
	transition-delay: 0s, 170ms, 90ms, 0s;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon {
	flex-basis: 54px;
	width: 54px;
	height: 54px;
	border-color: #ffffff38;
	border-radius: 14px;
	background: #ffffff17;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon:hover,
.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon:focus-visible {
	border-color: #ffffff66;
	background: #ffffff2b;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon > span {
	width: 22px;
	height: 2px;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon > span:first-child {
	transform: translateY(8px) rotate(45deg);
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon > span:nth-child(2) {
	opacity: 0;
	transform: scaleX(0);
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-header__menu-icon > span:last-child {
	transform: translateY(-8px) rotate(-45deg);
}

.seamkt-home-header.seamkt-scroll-header {
	position: fixed;
	z-index: 1000;
	top: max(18px, env(safe-area-inset-top));
	left: 50%;
	grid-row: auto;
	flex-wrap: nowrap;
	gap: clamp(16px, 2vw, 32px);
	width: min(1340px, calc(100% - 48px));
	margin: 0;
	padding: 13px 13px 13px 28px;
	border: 1px solid #ffffff1f;
	border-radius: 22px;
	background: linear-gradient(180deg, #1c1c1fe6, #111113e6);
	box-shadow: 0 20px 50px #00000066, inset 0 1px 0 #ffffff17;
	color: #fff;
	opacity: 0;
	visibility: hidden;
	filter: none;
	transform: translate(-50%, 24px);
	backdrop-filter: blur(22px) saturate(0.9);
	pointer-events: none;
	transition: opacity 260ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 420ms;
}

.seamkt-home-header.seamkt-scroll-header.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	pointer-events: auto;
	transition-delay: 0s;
}

.admin-bar .seamkt-home-header.seamkt-scroll-header {
	top: 50px;
}

.seamkt-scroll-header .seamkt-home-header__brand {
	flex-basis: 140px;
	min-height: 50px;
	padding: 0;
}

.seamkt-scroll-header .seamkt-home-header__brand img {
	filter: brightness(0) invert(1);
	opacity: 0.96;
}

.seamkt-scroll-header .seamkt-home-nav {
	order: initial;
	flex: 1 1 auto;
	overflow: hidden;
}

.seamkt-scroll-header .seamkt-home-menu {
	flex-wrap: nowrap;
	justify-content: safe center;
	gap: 12px;
	width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
}

.seamkt-scroll-header .seamkt-home-menu::-webkit-scrollbar {
	display: none;
}

.seamkt-scroll-header .seamkt-home-menu a {
	min-height: 48px;
	padding: 0 clamp(12px, 1.15vw, 20px);
	border-radius: 999px;
	color: #ffffffeb;
	font-size: clamp(15px, 1.1vw, 17.5px);
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
	transition: background 180ms ease, color 180ms ease;
}

.seamkt-scroll-header .seamkt-home-menu a:hover,
.seamkt-scroll-header .seamkt-home-menu a:focus-visible {
	background: #ffffff14;
	color: #fff;
}

.seamkt-scroll-header .seamkt-home-menu a.is-current,
.seamkt-scroll-header .seamkt-home-menu a.is-current:hover,
.seamkt-scroll-header .seamkt-home-menu a.is-current:focus-visible {
	border: 1px solid #fff;
	background: #fff;
	color: #111;
}

.seamkt-hero > .seamkt-home-header.is-expanded .seamkt-home-menu a.is-current {
	border: 1px solid #fff;
	background: #fff;
	color: #111;
}

.seamkt-scroll-header__actions {
	display: flex;
	flex: none;
	align-items: center;
	gap: 8px;
	padding-left: clamp(12px, 1.4vw, 20px);
	border-left: 1px solid #ffffff1a;
}

.seamkt-scroll-header__action {
	display: grid;
	position: relative;
	place-items: center;
	width: 50px;
	height: 50px;
	border: 1px solid #ffffff26;
	border-radius: 14px;
	background: #ffffff0d;
	color: #fff;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.seamkt-home-header.seamkt-scroll-header .seamkt-scroll-header__action:hover,
.seamkt-home-header.seamkt-scroll-header .seamkt-scroll-header__action:focus-visible {
	border-color: #ffffff4d;
	background: #ffffff1f;
	color: #fff;
	transform: translateY(-1px);
}

.seamkt-scroll-header__count {
	position: absolute;
	top: -9px;
	right: -9px;
	display: grid;
	min-width: 23px;
	height: 23px;
	padding: 0 4px;
	place-items: center;
	border: 2px solid #1c1c1f;
	border-radius: 999px;
	background: #e53935;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

.seamkt-scroll-header__count[hidden] {
	display: none;
}

.seamkt-scroll-header__action svg {
	width: 21px;
	height: 21px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (prefers-reduced-motion: reduce) {
	.seamkt-home-header.seamkt-scroll-header {
		transition: none;
	}

	.seamkt-hero > .seamkt-home-header,
	.seamkt-home-menu__expanded,
	.seamkt-home-header__expanded-actions,
	.seamkt-hero > .seamkt-home-header .seamkt-home-header__brand,
	.seamkt-hero > .seamkt-home-header .seamkt-home-menu a,
	.seamkt-hero > .seamkt-home-header .seamkt-home-header__menu-icon,
	.seamkt-hero > .seamkt-home-header .seamkt-home-header__menu-icon > span {
		transition: none;
	}
}

@media (max-width: 782px) {
	.admin-bar .seamkt-home-header.seamkt-scroll-header {
		top: 62px;
	}
}

@media (max-width: 767px) {
	.seamkt-home-header.seamkt-scroll-header {
		gap: 10px;
		width: calc(100% - 24px);
		padding: 10px 12px;
	}

	.seamkt-scroll-header .seamkt-home-header__brand {
		flex-basis: 92px;
		min-height: 36px;
	}

	.seamkt-scroll-header .seamkt-home-menu {
		justify-content: flex-start;
	}

	.seamkt-scroll-header .seamkt-home-menu a {
		min-height: 36px;
		padding: 0 10px;
		font-size: 13px;
	}

	.seamkt-scroll-header__actions {
		gap: 6px;
		padding-left: 10px;
	}

	.seamkt-scroll-header__action {
		width: 36px;
		height: 36px;
		border-radius: 10px;
	}
}

.seamkt-home-header__brand {
	display: grid;
	flex: 0 0 160px;
	place-items: center;
	min-height: 72px;
	padding: 12px;
	border-radius: 16px;
	line-height: 1;
	text-decoration: none;
}

.seamkt-home-header__brand img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.seamkt-home-nav {
	flex: 1;
	min-width: 0;
}

.seamkt-home-menu {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 44px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.seamkt-home-menu li {
	position: relative;
	list-style: none;
}

.seamkt-home-menu a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	color: #fff;
	font-size: clamp(16px, 1.25vw, 20px);
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: color 180ms ease;
}

.seamkt-home-menu a:hover {
	color: #000;
}

.seamkt-home-header__menu-icon {
	display: inline-flex;
	flex: 0 0 52px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	color: #fff;
}

.seamkt-home-header__menu-icon > span {
	display: block;
	width: 27px;
	height: 3px;
	border-radius: 999px;
	background: currentColor;
}

.seamkt-home-menu > .menu-item-has-children > a::after {
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	content: "";
	transform: rotate(45deg);
}

.seamkt-home-menu .sub-menu {
	position: absolute;
	bottom: 100%;
	left: 0;
	display: none;
	min-width: 190px;
	margin: 0;
	padding: 12px 18px;
	border-radius: 12px;
	background: #292928;
}

.seamkt-home-menu li:hover > .sub-menu,
.seamkt-home-menu li:focus-within > .sub-menu {
	display: block;
}

.seamkt-skip-link {
	position: fixed;
	z-index: 100;
	top: 10px;
	left: 10px;
	padding: 12px 20px;
	background: #fff;
	color: #20201e;
	transform: translateY(-200%);
}

.seamkt-skip-link:focus {
	transform: none;
}

@media (max-width: 1024px) {
	.seamkt-hero > .seamkt-home-header {
		--hero-menu-gap: 30px;
	}

	.seamkt-home-header {
		gap: 20px;
	}

	.seamkt-home-menu {
		gap: 30px;
	}

	.seamkt-home-header__brand {
		flex-basis: 128px;
		min-height: 56px;
	}

	.seamkt-home-header__menu-icon {
		flex-basis: 46px;
		width: 46px;
		height: 46px;
	}

}

@media (max-width: 767px) {
	.seamkt-hero .seamkt-hero__portrait {
		left: -13%;
		width: 126%;
		max-width: none;
	}

	.seamkt-hero__session {
		padding: 28px 20px;
	}

	.seamkt-hero .seamkt-hero__session-title {
		max-width: 100%;
		font-size: clamp(35px, 11.2vw, 52px);
		line-height: 1.04;
	}

	.seamkt-hero .seamkt-hero__session-text-line--1 {
		max-width: 100%;
	}

	.seamkt-hero .seamkt-hero__session-text-line--1 .seamkt-hero__session-underline {
		width: 100%;
	}

	.seamkt-hero__session-line {
		flex-wrap: wrap;
		justify-content: center;
		white-space: normal;
	}

	.seamkt-hero__session-text-line--2 {
		margin-top: 12px;
		row-gap: 14px;
	}

	.seamkt-home__reel-space {
		height: 72svh;
	}

	.seamkt-hero__session-video {
		width: clamp(104px, 30vw, 150px);
	}

	.seamkt-hero .seamkt-hero__session-status {
		margin: 24px auto 0;
	}

	.seamkt-hero__label {
		top: auto;
		bottom: calc(18px + env(safe-area-inset-bottom));
		padding: 12px 20px;
		border-radius: 14px;
		font-size: 20px;
	}

	.seamkt-hero .seamkt-hero__title {
		top: 45%;
		left: 0;
		width: 100%;
		font-size: clamp(72px, 19vw, 120px);
		line-height: 0.95;
	}

	.seamkt-home-header {
		flex-wrap: wrap;
		gap: 12px;
		width: calc(100% - 28px);
		margin-bottom: 14px;
		padding: 14px;
		border-radius: 18px;
	}

	.seamkt-home-nav {
		order: 3;
		flex-basis: 100%;
	}

	.seamkt-home-menu {
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: 4px 22px;
	}

	.seamkt-home-menu a {
		font-size: 15px;
	}

	.seamkt-home-menu .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		padding: 0 0 0 12px;
		background: transparent;
	}

	.seamkt-home-menu .sub-menu a {
		font-size: 14px;
	}
}

/* One fixed, compact navigation for every page on phones. */
.seamkt-scroll-header__menu-toggle {
	display: none;
}

@media (max-width: 767px) {
	.seamkt-hero > .seamkt-home-header {
		display: none;
	}

	.seamkt-home-header.seamkt-scroll-header,
	.seamkt-home-header.seamkt-scroll-header.is-visible {
		z-index: 2000;
		top: max(8px, env(safe-area-inset-top));
		left: 50%;
		flex-wrap: nowrap;
		gap: 12px;
		width: calc(100% - 24px);
		min-height: 64px;
		margin: 0;
		padding: 8px 10px 8px 16px;
		border-radius: 18px;
		opacity: 0;
		visibility: hidden;
		transform: translate(-50%, -14px);
		pointer-events: none;
		transition: opacity 220ms ease, transform 280ms ease, visibility 0s linear 280ms;
	}

	/* Phones: the pinned hero fills the large viewport (Safari's toolbar collapsed), so no strip
	   opens beneath it as the toolbar shrinks mid-scroll; the label is lifted by the toolbar's
	   height so it still clears it when the toolbar is showing. */
	@supports (height: 100lvh) {
		.seamkt-hero {
			min-height: 100lvh;
		}

		.seamkt-hero__label {
			bottom: calc(18px + 100lvh - 100svh + env(safe-area-inset-bottom));
		}
	}

	/* No clipping around the sections on phones. Safari only moves a sticky element on its own
	   scrolling thread when no ancestor clips its overflow; inside this clip every pinned scene
	   below (the story's rail, the services stage, the sky, the ring) was moved by the page's
	   main thread instead, a frame late, so they shook and snapped back while scrolling fast.
	   Each scene clips its own overflow, which Safari allows. */
	.seamkt-home__content {
		overflow: visible;
	}

	/* The session badge sits over the moving hero scene: a tinted glass instead of a live blur. */
	.seamkt-hero .seamkt-hero__session-badge {
		background: linear-gradient(180deg, rgba(40, 40, 44, 0.62), rgba(24, 24, 28, 0.62));
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	/* No backdrop blur on phones: behind a near-opaque bar it showed little, but it was
	   redrawn on every frame of the scroll beneath. */
	.seamkt-home-header.seamkt-scroll-header,
	.seamkt-home-header.seamkt-scroll-header.is-visible {
		background: linear-gradient(180deg, #1c1c1ff7, #111113f7);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.seamkt-home-header.seamkt-scroll-header.is-mobile-visible,
	.seamkt-home .seamkt-home-header.seamkt-scroll-header:not(.is-mobile-ready) {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
		pointer-events: auto;
		transition-delay: 0s;
	}

	.admin-bar .seamkt-home-header.seamkt-scroll-header {
		top: calc(54px + env(safe-area-inset-top));
	}

	.seamkt-scroll-header .seamkt-home-header__brand {
		flex: 0 0 108px;
		min-width: 0;
		min-height: 44px;
		padding: 0 2px;
	}

	.seamkt-scroll-header .seamkt-home-nav {
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		display: none;
		width: 100%;
		max-height: calc(100dvh - 100px);
		padding: 8px;
		overflow-x: hidden;
		overflow-y: auto;
		border: 1px solid #ffffff26;
		border-radius: 18px;
		background: #171719f5;
		box-shadow: 0 22px 48px #0007;
		backdrop-filter: blur(22px);
		-webkit-backdrop-filter: blur(22px);
	}

	.seamkt-scroll-header.is-menu-open .seamkt-home-nav {
		display: block;
		animation: seamkt-mobile-menu-in 180ms ease-out both;
	}

	.seamkt-scroll-header .seamkt-home-menu {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: flex-start;
		gap: 4px;
		width: 100%;
		overflow: visible;
	}

	.seamkt-scroll-header .seamkt-home-menu li {
		width: 100%;
	}

	.seamkt-scroll-header .seamkt-home-menu a {
		display: flex;
		width: 100%;
		min-height: 46px;
		padding: 0 14px;
		border-radius: 11px;
		font-size: 14px;
		white-space: normal;
	}

	.seamkt-scroll-header__actions {
		margin-left: auto;
		padding-left: 0;
		gap: 12px;
		border-left: 0;
	}

	.seamkt-scroll-header__action,
	.seamkt-scroll-header__menu-toggle {
		flex: 0 0 42px;
		width: 42px;
		height: 42px;
		border: 1px solid #ffffff29;
		border-radius: 12px;
		background: #ffffff0f;
		color: #fff;
	}

	.seamkt-scroll-header__menu-toggle {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
		padding: 0;
		cursor: pointer;
	}

	.seamkt-scroll-header__menu-toggle span {
		display: block;
		width: 19px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: transform 180ms ease, opacity 180ms ease;
	}

	.seamkt-scroll-header.is-menu-open .seamkt-scroll-header__menu-toggle span:first-child {
		transform: translateY(7px) rotate(45deg);
	}

	.seamkt-scroll-header.is-menu-open .seamkt-scroll-header__menu-toggle span:nth-child(2) {
		opacity: 0;
	}

	.seamkt-scroll-header.is-menu-open .seamkt-scroll-header__menu-toggle span:last-child {
		transform: translateY(-7px) rotate(-45deg);
	}

	.seamkt-scroll-header__menu-toggle:hover,
	.seamkt-scroll-header__menu-toggle:focus-visible {
		border-color: #ffffff5c;
		background: #ffffff20;
	}
}

@keyframes seamkt-mobile-menu-in {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.seamkt-scroll-header.is-menu-open .seamkt-home-nav {
		animation: none;
	}
}
