/*
Theme Name: TTRAVIQUE Portal Neon
Theme URI: https://ttravique.com/
Author: TTRAVIQUE
Description: A spatial-editorial Elementor Pro theme for TTRAVIQUE Hospitality Consultancy.
Version: 5.6.0
Text Domain: ttravique-portal-neon
*/

@font-face {
	font-family: "Exo 2";
	src: url("assets/fonts/exo-2-400.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 400;
}

@font-face {
	font-family: "Exo 2";
	src: url("assets/fonts/exo-2-500.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 500;
}

@font-face {
	font-family: "Exo 2";
	src: url("assets/fonts/exo-2-600.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 600;
}

@font-face {
	font-family: Montserrat;
	src: url("assets/fonts/montserrat-400.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 400;
}

@font-face {
	font-family: Montserrat;
	src: url("assets/fonts/montserrat-500.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 500;
}

@font-face {
	font-family: Montserrat;
	src: url("assets/fonts/montserrat-600.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 600;
}

:root {
	--ttv-ink: #050b0f;
	--ttv-ink-2: #080f14;
	--ttv-ink-3: #0f1624;
	--ttv-paper: #080f14;
	--ttv-paper-2: #0f1624;
	--ttv-silver: #c7ccd3;
	--ttv-muted: #8d989f;
	--ttv-teal: #00f6e0;
	--ttv-teal-2: #00cfc0;
	--ttv-teal-soft: rgba(0, 231, 212, 0.14);
	--ttv-line: rgba(255, 255, 255, 0.13);
	--ttv-line-light: rgba(255, 255, 255, 0.15);
	--ttv-white: #fbfcfb;
	--ttv-display: "Exo 2", Arial, sans-serif;
	--ttv-body: Montserrat, Arial, sans-serif;
	--ttv-gutter: clamp(22px, 4.4vw, 76px);
	--ttv-header-h: 82px;
	--ttv-radius: 4px;
	--ttv-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ttv-loader-progress: 0;
	--ttv-scroll-progress: 0;
}

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

html {
	overflow-x: clip;
	background: var(--ttv-ink);
	scroll-behavior: auto;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body {
	margin: 0;
	min-width: 320px;
	overflow-x: clip;
	background: var(--ttv-ink-2);
	color: var(--ttv-silver);
	font-family: var(--ttv-body);
	font-size: 16px;
	line-height: 1.65;
}

body.admin-bar .ttv-header {
	top: 32px;
}

body.ttv-menu-open {
	overflow: hidden;
}

::selection {
	background: var(--ttv-teal);
	color: var(--ttv-ink);
}

a {
	color: inherit;
	text-decoration: none;
}

img,
video {
	display: block;
	max-width: 100%;
}

button,
input,
textarea,
select {
	font: inherit;
}

.elementor-widget,
.elementor-widget-container,
.elementor-element {
	min-width: 0;
}

.elementor-widget-heading .elementor-heading-title {
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-text-editor .elementor-widget-container > :last-child {
	margin-bottom: 0;
}

.elementor-location-header,
.elementor-location-footer {
	position: relative;
	z-index: 40;
}

main,
.site-main,
.elementor-location-single {
	position: relative;
	z-index: 1;
}

/* Identity */
.ttv-brandmark {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	width: max-content;
	color: var(--ttv-white);
}

.ttv-brandmark-symbol {
	position: relative;
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 52px;
	height: 48px;
	padding-right: 18px;
}

.ttv-brandmark-symbol svg {
	width: 100%;
	height: 100%;
	overflow: visible;
}

.ttv-brandmark-symbol path {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 3;
}

.ttv-brandmark-symbol .ttv-portal-left {
	filter: drop-shadow(0 0 8px rgba(0, 246, 224, 0.84));
	stroke: var(--ttv-teal);
}

.ttv-brandmark-symbol .ttv-portal-right {
	stroke: #edf1f2;
}

.ttv-brandmark-symbol .ttv-portal-left-inner {
	filter: drop-shadow(0 0 5px rgba(0, 246, 224, 0.52));
	stroke: rgba(0, 246, 224, 0.72);
	stroke-width: 1.2;
}

.ttv-brandmark-symbol .ttv-portal-right-inner {
	stroke: rgba(237, 241, 242, 0.5);
	stroke-width: 1.2;
}

.ttv-brandmark-symbol .ttv-portal-floor {
	stroke: rgba(0, 231, 212, 0.32);
	stroke-width: 1.1;
}

.ttv-brandmark-divider {
	position: absolute;
	top: 4px;
	right: 0;
	bottom: 4px;
	width: 1px;
	background: linear-gradient(transparent, rgba(199, 204, 211, 0.62), transparent);
}

/* The pseudo divider also upgrades an existing Elementor header immediately,
   before the refreshed importer rewrites its stored logo HTML. */
.ttv-brandmark-symbol::after {
	position: absolute;
	top: 4px;
	right: 0;
	bottom: 4px;
	width: 1px;
	background: linear-gradient(transparent, rgba(199, 204, 211, 0.62), transparent);
	content: "";
}

.ttv-brandmark-symbol .ttv-portal-inner {
	stroke: rgba(199, 204, 211, 0.5);
	stroke-width: 1.2;
}

.ttv-brandmark-copy {
	display: grid;
	gap: 1px;
line-height: 1;
}

.ttv-brandmark-copy strong {
	background: linear-gradient(180deg, #fbfcfb 10%, #c7ccd3 62%, #88939c 100%);
	-webkit-background-clip: text;
	background-clip: text;
	font-family: var(--ttv-display);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 0.34em;
	-webkit-text-fill-color: transparent;
}

.ttv-brandmark-tagline {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
}

.ttv-brandmark-tagline i {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(0, 246, 224, 0.72));
}

.ttv-brandmark-tagline i:last-child {
	background: linear-gradient(90deg, rgba(0, 246, 224, 0.72), transparent);
}

.ttv-brandmark-tagline small {
	color: var(--ttv-teal);
	font-family: var(--ttv-body);
	font-size: 6px;
	font-weight: 600;
	letter-spacing: 0.34em;
	white-space: nowrap;
	text-transform: uppercase;
}

.ttv-brandmark-copy > small {
	color: var(--ttv-teal);
	font-family: var(--ttv-body);
	font-size: 6px;
	font-weight: 600;
	letter-spacing: 0.34em;
	white-space: nowrap;
	text-transform: uppercase;
}

/* Floating glass navigation */
.ttv-header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	display: flex;
	justify-content: center;
	width: 100%;
	padding: 14px 18px 0;
	pointer-events: none;
}

.ttv-v5-header-shell,
.ttv-fallback-header {
	isolation: isolate;
	display: flex;
	align-items: center;
	width: min(1440px, 100%);
	min-height: 66px;
	padding: 10px 12px 10px 18px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(7, 16, 22, 0.82), rgba(12, 23, 32, 0.68));
	box-shadow: 0 18px 60px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	backdrop-filter: saturate(140%) blur(18px);
	-webkit-backdrop-filter: saturate(140%) blur(18px);
	pointer-events: auto;
	transition: min-height 320ms var(--ttv-ease), background-color 320ms var(--ttv-ease), box-shadow 320ms var(--ttv-ease);
}

.ttv-v5-header-shell {
	position: relative;
}

.ttv-v5-header-shell::before,
.ttv-fallback-header::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	border-radius: inherit;
	background:
		radial-gradient(280px circle at var(--ttv-nav-x, 50%) var(--ttv-nav-y, 50%), rgba(0, 246, 224, 0.16), transparent 58%),
		linear-gradient(110deg, transparent 12%, rgba(255, 255, 255, 0.045) 46%, transparent 72%);
	content: "";
	opacity: 0.66;
	pointer-events: none;
	transition: opacity 240ms ease;
}

.ttv-v5-header-shell::after,
.ttv-fallback-header::after {
	position: absolute;
	z-index: 0;
	inset: -1px;
	border: 1px solid rgba(0, 246, 224, 0.13);
	border-radius: inherit;
	box-shadow: inset 0 0 24px rgba(0, 246, 224, 0.025);
	content: "";
	pointer-events: none;
}

.ttv-v5-header-shell > *,
.ttv-fallback-header > * {
	position: relative;
	z-index: 1;
}

.ttv-has-scrolled .ttv-v5-header-shell,
.ttv-has-scrolled .ttv-fallback-header {
	min-height: 58px;
	background: rgba(7, 16, 22, 0.92);
	box-shadow: 0 12px 42px rgba(0, 0, 0, 0.28);
}

.ttv-header .ttv-brand {
	margin-right: auto;
}

.ttv-header .ttv-brand .elementor-widget-container {
	display: flex;
}

.ttv-nav,
.ttv-fallback-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(10px, 1.6vw, 28px);
	margin-inline: auto;
}

.ttv-nav-link .elementor-button,
.ttv-fallback-nav a {
	position: relative;
	display: inline-flex;
	padding: 9px 11px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0);
	box-shadow: none;
	color: rgba(255, 255, 255, 0.74);
	font-family: var(--ttv-body);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transition: color 240ms ease, border-color 240ms ease, background-color 240ms ease, transform 300ms var(--ttv-ease);
}

.ttv-nav-link .elementor-button::after,
.ttv-fallback-nav a::after {
	position: absolute;
	right: 0;
	bottom: 3px;
	left: 0;
	height: 1px;
	background: var(--ttv-teal);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 300ms var(--ttv-ease);
}

.ttv-nav-link .elementor-button:hover,
.ttv-nav-link .elementor-button:focus-visible,
.ttv-fallback-nav a:hover,
.ttv-fallback-nav a:focus-visible {
	border-color: rgba(0, 246, 224, 0.15);
	background: rgba(0, 246, 224, 0.075);
	color: var(--ttv-white);
	transform: translateY(-2px);
}

.ttv-nav-link .elementor-button.is-current,
.ttv-fallback-nav a.is-current {
	border-color: rgba(0, 246, 224, 0.14);
	background: rgba(0, 246, 224, 0.06);
	color: var(--ttv-teal);
}

.ttv-nav-link .elementor-button:hover::after,
.ttv-nav-link .elementor-button:focus-visible::after,
.ttv-nav-link .elementor-button.is-current::after,
.ttv-fallback-nav a:hover::after,
.ttv-fallback-nav a:focus-visible::after,
.ttv-fallback-nav a.is-current::after {
	transform: scaleX(1);
	transform-origin: left;
}

.ttv-header-cta .elementor-button,
.ttv-fallback-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 18px;
	border: 1px solid rgba(0, 231, 212, 0.54);
	border-radius: 12px;
	background: rgba(0, 231, 212, 0.1);
	color: var(--ttv-white);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 240ms ease, color 240ms ease, transform 300ms var(--ttv-ease);
}

.ttv-header-cta .elementor-button:hover,
.ttv-fallback-cta:hover {
	background: var(--ttv-teal);
	color: var(--ttv-ink);
	transform: translateY(-2px);
}

.ttv-mobile-menu-widget,
.ttv-fallback-mobile-menu {
	display: none;
}

/* Elementor dropdowns inherit the glass language. */
.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown .sub-menu,
.elementor-nav-menu .sub-menu {
	padding: 10px !important;
	border: 1px solid rgba(255, 255, 255, 0.14) !important;
	border-radius: 16px !important;
	background: rgba(7, 16, 22, 0.92) !important;
	box-shadow: 0 24px 72px rgba(0, 0, 0, 0.36) !important;
	backdrop-filter: saturate(140%) blur(18px);
	-webkit-backdrop-filter: saturate(140%) blur(18px);
}

.elementor-nav-menu--dropdown a,
.elementor-nav-menu .sub-menu a {
	border-radius: 10px !important;
	background: transparent !important;
	color: rgba(255, 255, 255, 0.76) !important;
	transition: background-color 200ms ease, color 200ms ease, transform 240ms var(--ttv-ease) !important;
}

.elementor-nav-menu--dropdown a:hover,
.elementor-nav-menu .sub-menu a:hover {
	background: rgba(0, 231, 212, 0.12) !important;
	color: var(--ttv-white) !important;
	transform: translateX(4px);
}

/* Type and actions */
.ttv-eyebrow,
.ttv-v5-kicker {
	color: var(--ttv-teal-2);
	font-family: var(--ttv-body);
	font-size: 10px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.23em;
	text-transform: uppercase;
}

.ttv-eyebrow-light {
	color: var(--ttv-teal);
}

.ttv-v5-section-title,
.ttv-v5-page-title,
.ttv-v5-home-title,
.ttv-v5-thesis-title,
.ttv-v5-character-title,
.ttv-v5-contact-title,
.ttv-v5-closing-title,
.ttv-footer-prompt {
	margin: 0;
	font-family: var(--ttv-display);
	font-weight: 400;
	letter-spacing: -0.045em;
}

.ttv-v5-section-title {
	font-size: clamp(48px, 6.4vw, 104px);
	line-height: 0.95;
}

.ttv-v5-section-title em,
.ttv-v5-page-title em,
.ttv-v5-home-title em,
.ttv-v5-character-title em,
.ttv-v5-contact-title em,
.ttv-v5-closing-title em,
.ttv-footer-prompt em {
	color: var(--ttv-teal-2);
	font-style: normal;
}

.ttv-v5-section-title-light,
.ttv-copy-light {
	color: var(--ttv-white);
}

.ttv-v5-large-copy {
	max-width: 620px;
	color: var(--ttv-muted);
	font-size: clamp(16px, 1.45vw, 21px);
	line-height: 1.75;
}

.ttv-copy-light {
	color: rgba(255, 255, 255, 0.66);
}

.ttv-button .elementor-button,
.ttv-button.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 22px;
	border: 1px solid var(--ttv-ink);
	border-radius: 999px;
	background: var(--ttv-ink);
	box-shadow: none;
	color: var(--ttv-white);
	font-family: var(--ttv-body);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	transform: translate(var(--ttv-magnetic-x, 0), var(--ttv-magnetic-y, 0));
	transition: background-color 240ms ease, border-color 240ms ease, color 240ms ease, transform 260ms var(--ttv-ease);
}

.ttv-button .elementor-button:hover,
.ttv-button .elementor-button:focus-visible {
	border-color: var(--ttv-teal-2);
	background: var(--ttv-teal);
	color: var(--ttv-ink);
}

.ttv-button-light .elementor-button {
	border-color: rgba(255, 255, 255, 0.42);
	background: rgba(255, 255, 255, 0.06);
	color: var(--ttv-white);
}

.ttv-button-light .elementor-button:hover,
.ttv-button-light .elementor-button:focus-visible {
	border-color: var(--ttv-teal);
	background: var(--ttv-teal);
	color: var(--ttv-ink);
}

.ttv-text-link .elementor-button {
	position: relative;
	display: inline-flex;
	padding: 11px 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: inherit;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	transition: color 220ms ease, padding 280ms var(--ttv-ease);
}

.ttv-text-link .elementor-button:hover,
.ttv-text-link .elementor-button:focus-visible {
	padding-right: 10px;
	color: var(--ttv-teal-2);
}

/* Loader and light cross-page transition */
.ttv-page-transition {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: grid;
	place-items: center;
	background: rgba(2, 8, 12, 0.14);
	opacity: 0;
	pointer-events: none;
	transition: opacity 140ms ease;
}

.ttv-transition-pending .ttv-page-transition,
.ttv-arriving .ttv-page-transition,
.ttv-leaving .ttv-page-transition {
	opacity: 1;
}

.ttv-arrived .ttv-page-transition {
	opacity: 0;
	transition-duration: 170ms;
}

.ttv-transition-brand {
	position: relative;
	display: grid;
	grid-template-columns: 64px auto;
	align-items: center;
	column-gap: 18px;
	width: min(390px, calc(100vw - 36px));
	padding: 18px 20px 20px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 18px;
	background:
		radial-gradient(220px circle at 18% 30%, rgba(0, 246, 224, 0.13), transparent 68%),
		linear-gradient(145deg, rgba(8, 20, 28, 0.94), rgba(5, 12, 17, 0.88));
	box-shadow: 0 24px 90px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	backdrop-filter: saturate(135%) blur(16px);
	-webkit-backdrop-filter: saturate(135%) blur(16px);
	color: var(--ttv-white);
	opacity: 0;
	transform: translateY(10px) scale(0.985);
	transition: transform 260ms var(--ttv-ease), opacity 140ms ease;
}

.ttv-transition-pending .ttv-transition-brand,
.ttv-arriving .ttv-transition-brand,
.ttv-leaving .ttv-transition-brand {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.ttv-arrived .ttv-transition-brand {
	opacity: 0;
	transform: translateY(-5px) scale(0.992);
}

.ttv-transition-mark {
	grid-row: 1 / 4;
	display: grid;
	place-items: center;
	width: 64px;
	height: 58px;
}

.ttv-transition-mark svg {
	width: 100%;
	height: 100%;
}

.ttv-transition-mark path {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.5;
}

.ttv-transition-mark .ttv-portal-left {
	filter: drop-shadow(0 0 9px rgba(0, 231, 212, 0.78));
	stroke: var(--ttv-teal);
}

.ttv-transition-mark .ttv-portal-right {
	stroke: var(--ttv-white);
}

.ttv-transition-mark .ttv-portal-left-inner,
.ttv-transition-mark .ttv-portal-right-inner,
.ttv-transition-mark .ttv-portal-floor {
	stroke: rgba(255, 255, 255, 0.28);
	stroke-width: 1;
}

.ttv-transition-brand strong {
	font-family: var(--ttv-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.28em;
}

.ttv-transition-brand small {
	color: rgba(255, 255, 255, 0.48);
	font-size: 8px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ttv-transition-brand b {
	justify-self: end;
	color: var(--ttv-teal);
	font-family: var(--ttv-display);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.1em;
}

.ttv-transition-brand > i {
	position: absolute;
	right: 0;
	bottom: 10px;
	left: 82px;
	right: 20px;
	height: 1px;
	background: rgba(255, 255, 255, 0.13);
	overflow: hidden;
}

.ttv-transition-brand > i::after {
	display: block;
	width: calc(var(--ttv-loader-progress) * 100%);
	height: 100%;
	background: linear-gradient(90deg, var(--ttv-teal), var(--ttv-white));
	box-shadow: 0 0 12px rgba(0, 231, 212, 0.68);
	content: "";
	transition: width 70ms linear;
}

/* Portal image language */
.ttv-v5-portal-frame {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--ttv-ink-2);
	clip-path: polygon(5% 0, 100% 0, 95% 100%, 0 100%);
}

.ttv-v5-portal-frame::before,
.ttv-v5-portal-frame::after {
	position: absolute;
	z-index: 3;
	top: 8%;
	bottom: 8%;
	width: 1px;
	background: linear-gradient(transparent, var(--ttv-teal), transparent);
	box-shadow: 0 0 18px rgba(0, 231, 212, 0.66);
	content: "";
	pointer-events: none;
}

.ttv-v5-portal-frame::before {
	left: 5.5%;
}

.ttv-v5-portal-frame::after {
	right: 5.5%;
	background: linear-gradient(transparent, rgba(255, 255, 255, 0.76), transparent);
	box-shadow: none;
}

.ttv-v5-portal-frame img,
.ttv-v5-portal-frame video,
.ttv-depth-image img,
.ttv-depth-image video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate3d(var(--ttv-depth-x, 0), var(--ttv-depth-y, 0), 0) scale(var(--ttv-depth-scale, 1.072));
	transition: transform 180ms linear, opacity 400ms ease, filter 500ms ease;
}

.ttv-v5-portal-frame:hover img,
.ttv-v5-portal-frame:hover video {
	--ttv-depth-scale: 1.105;
}

/* Home / a radically different asymmetric composition */
.ttv-v5-home-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.82fr);
	grid-template-rows: auto 1fr auto;
	gap: 24px clamp(32px, 5vw, 90px);
	min-height: 100svh;
	padding: clamp(118px, 14vh, 158px) var(--ttv-gutter) 42px;
	background:
		linear-gradient(90deg, transparent 0 58%, rgba(7, 16, 22, 0.05) 58% 58.08%, transparent 58.08%),
		var(--ttv-paper);
}

.ttv-v5-home-hero::before {
	position: absolute;
	top: 0;
	left: var(--ttv-gutter);
	width: 1px;
	height: 100%;
	background: var(--ttv-line);
	content: "";
}

.ttv-v5-home-hero-top {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-left: 24px;
}

.ttv-v5-coordinate {
	color: var(--ttv-muted);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ttv-v5-coordinate p {
	display: flex;
	gap: 13px;
	margin: 0;
}

.ttv-v5-coordinate span {
	color: var(--ttv-teal-2);
}

.ttv-v5-home-hero-copy {
	position: relative;
	z-index: 4;
	display: flex;
	flex-direction: column;
	align-self: center;
	padding: 42px 0 30px 24px;
}

.ttv-v5-home-title {
	max-width: 100%;
	font-size: clamp(58px, 6.55vw, 116px);
	line-height: 0.88;
}

.ttv-v5-home-title em:first-of-type {
	color: var(--ttv-ink);
	-webkit-text-stroke: 1px var(--ttv-ink);
	-webkit-text-fill-color: transparent;
}

.ttv-v5-home-lead {
	max-width: 530px;
	margin: clamp(28px, 4vw, 58px) 0 0 auto;
	padding-left: clamp(28px, 5vw, 80px);
	border-left: 1px solid var(--ttv-teal-2);
	color: var(--ttv-muted);
	font-size: clamp(15px, 1.3vw, 19px);
}

.ttv-v5-home-actions {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 32px;
	margin-left: auto;
}

.ttv-v5-home-portal {
	position: relative;
	align-self: stretch;
	min-height: min(68vh, 760px);
	box-shadow: 0 28px 90px rgba(7, 16, 22, 0.24);
}

.ttv-v5-film-widget,
.ttv-v5-film-widget > .elementor-widget-container,
.ttv-v5-film,
.ttv-v5-film video,
.ttv-v5-film img {
	width: 100%;
	height: 100%;
}

.ttv-v5-film video,
.ttv-v5-film img {
	object-fit: cover;
}

.ttv-v5-film button {
	position: absolute;
	right: 28px;
	bottom: 28px;
	z-index: 6;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 10px 13px;
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(7, 16, 22, 0.58);
	color: var(--ttv-white);
	font-size: 8px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	backdrop-filter: blur(12px);
	cursor: pointer;
}

.ttv-v5-portal-label,
.ttv-v5-visual-label {
	position: absolute;
	z-index: 5;
	right: 26px;
	bottom: 26px;
	left: 26px;
	color: var(--ttv-white);
}

.ttv-v5-portal-label p,
.ttv-v5-visual-label p {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 3px 15px;
	align-items: center;
	margin: 0;
}

.ttv-v5-portal-label span,
.ttv-v5-visual-label span {
	grid-row: 1 / 3;
	color: var(--ttv-teal);
	font-family: var(--ttv-display);
	font-size: 18px;
}

.ttv-v5-portal-label strong {
	font-size: 9px;
	letter-spacing: 0.15em;
}

.ttv-v5-portal-label small,
.ttv-v5-visual-label small {
	color: rgba(255, 255, 255, 0.52);
	font-size: 7px;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.ttv-v5-home-scroll,
.ttv-scroll-cue {
	align-self: end;
	color: var(--ttv-muted);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.ttv-v5-home-scroll {
	grid-column: 1 / -1;
	padding-left: 24px;
}

.ttv-scroll-cue p {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.ttv-scroll-cue span {
	color: var(--ttv-teal-2);
	font-size: 16px;
}

.ttv-v5-signal-band {
	overflow: hidden;
	padding: 22px var(--ttv-gutter);
	border-top: 1px solid var(--ttv-line);
	border-bottom: 1px solid var(--ttv-line);
	background: var(--ttv-white);
}

.ttv-v5-signal-copy p {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	margin: 0;
	white-space: nowrap;
}

.ttv-v5-signal-copy span {
	display: inline-flex;
	align-items: center;
	gap: 28px;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.16em;
}

.ttv-v5-signal-copy span:not(:last-child)::after {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ttv-teal-2);
	content: "";
}

.ttv-v5-thesis {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
	gap: clamp(44px, 7vw, 118px);
	min-height: 100svh;
	padding: clamp(90px, 12vw, 190px) var(--ttv-gutter);
	background: var(--ttv-ink);
	color: var(--ttv-white);
}

.ttv-v5-thesis-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.ttv-v5-thesis-title {
	margin-top: 26px;
	font-size: clamp(55px, 7.8vw, 132px);
	line-height: 0.87;
}

.ttv-v5-thesis-title span {
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.72);
	transition: color 300ms ease, -webkit-text-stroke-color 300ms ease;
}

.ttv-v5-thesis-title span:hover {
	color: var(--ttv-teal);
	-webkit-text-stroke-color: var(--ttv-teal);
}

.ttv-v5-thesis-lead {
	max-width: 610px;
	margin: 48px 0 0 auto;
	padding-left: 28px;
	border-left: 1px solid var(--ttv-teal);
	color: rgba(255, 255, 255, 0.62);
	font-size: clamp(15px, 1.35vw, 20px);
}

.ttv-v5-thesis-visual {
	position: sticky;
	top: 110px;
	align-self: start;
	height: calc(100svh - 150px);
	min-height: 520px;
}

.ttv-v5-thesis-visual .ttv-v5-visual-label {
	left: 30px;
}

/* Capability atlas */
.ttv-v5-service-atlas {
	padding: clamp(90px, 11vw, 180px) var(--ttv-gutter);
	background: var(--ttv-paper);
}

.ttv-v5-atlas-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px 40px;
	align-items: end;
	margin-bottom: clamp(50px, 7vw, 100px);
}

.ttv-v5-atlas-head .ttv-eyebrow {
	grid-column: 1 / -1;
}

.ttv-v5-atlas-head .ttv-text-link {
	align-self: end;
}

.ttv-v5-spatial-grid {
	display: grid;
	grid-auto-flow: dense;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-auto-rows: minmax(210px, auto);
	gap: 12px;
}

.ttv-v5-spatial-tile {
	position: relative;
	display: flex;
	grid-column: span 4;
	flex-direction: column;
	min-height: 330px;
	padding: clamp(24px, 3vw, 46px);
	overflow: hidden;
	border: 1px solid var(--ttv-line);
	background: var(--ttv-white);
	transform: perspective(900px) rotateX(var(--ttv-tilt-x, 0deg)) rotateY(var(--ttv-tilt-y, 0deg));
	transform-style: preserve-3d;
	transition: background-color 320ms ease, color 320ms ease, border-color 320ms ease, transform 360ms var(--ttv-ease), box-shadow 360ms var(--ttv-ease);
}

.ttv-v5-spatial-tile::after {
	position: absolute;
	right: -50px;
	bottom: -70px;
	width: 180px;
	height: 220px;
	border: 1px solid rgba(0, 231, 212, 0.36);
	content: "";
	transform: skewY(-14deg);
	transition: transform 500ms var(--ttv-ease), opacity 300ms ease;
}

.ttv-v5-spatial-tile:hover {
	z-index: 3;
	border-color: rgba(0, 231, 212, 0.48);
	background: var(--ttv-ink);
	box-shadow: 0 30px 80px rgba(7, 16, 22, 0.16);
	color: var(--ttv-white);
}

.ttv-v5-spatial-tile:hover::after {
	transform: translate(-22px, -18px) skewY(-14deg);
}

.ttv-v5-tile-wide {
	grid-column: span 8;
}

.ttv-v5-tile-tall {
	grid-row: span 2;
}

.ttv-v5-tile-accent {
	background: var(--ttv-teal);
}

.ttv-v5-tile-number {
	color: var(--ttv-teal-2);
	font-family: var(--ttv-display);
	font-size: 12px;
	letter-spacing: 0.12em;
}

.ttv-v5-tile-accent .ttv-v5-tile-number {
	color: var(--ttv-ink);
}

.ttv-v5-tile-title {
	max-width: 580px;
	margin: auto 0 18px;
	font-family: var(--ttv-display);
	font-size: clamp(25px, 2.55vw, 43px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
}

.ttv-v5-tile-copy {
	max-width: 440px;
	color: var(--ttv-muted);
	font-size: 13px;
	transition: color 300ms ease;
}

.ttv-v5-spatial-tile:hover .ttv-v5-tile-copy,
.ttv-v5-tile-accent .ttv-v5-tile-copy {
	color: rgba(255, 255, 255, 0.62);
}

.ttv-v5-tile-accent .ttv-v5-tile-copy,
.ttv-v5-tile-accent .ttv-v5-tile-meta {
	color: rgba(7, 16, 22, 0.62);
}

.ttv-v5-tile-meta {
	margin-top: 26px;
	padding-top: 17px;
	border-top: 1px solid currentColor;
	color: var(--ttv-muted);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

/* Journey overview */
.ttv-v5-journey-overview {
	display: grid;
	grid-template-columns: minmax(310px, 0.76fr) minmax(0, 1.24fr);
	gap: clamp(50px, 8vw, 140px);
	align-items: center;
	min-height: 92svh;
	padding: clamp(90px, 11vw, 170px) var(--ttv-gutter);
	background:
		radial-gradient(circle at 77% 50%, rgba(0, 231, 212, 0.1), transparent 30%),
		var(--ttv-ink-2);
	color: var(--ttv-white);
}

.ttv-v5-journey-overview-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
}

.ttv-v5-journey-map {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: clamp(18px, 3vw, 42px);
}

.ttv-v5-journey-map::before,
.ttv-v5-journey-map::after {
	position: absolute;
	left: 50%;
	width: clamp(100px, 13vw, 190px);
	height: 72%;
	border: 1px solid rgba(0, 231, 212, 0.46);
	content: "";
	transform-origin: center;
}

.ttv-v5-journey-map::before {
	top: 14%;
	transform: translateX(-99%) skewY(-10deg);
	box-shadow: 0 0 28px rgba(0, 231, 212, 0.12);
}

.ttv-v5-journey-map::after {
	top: 14%;
	border-color: rgba(255, 255, 255, 0.32);
	transform: skewY(10deg);
}

.ttv-v5-journey-map span {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: baseline;
	gap: 16px;
	min-height: 88px;
	padding: 24px;
	border: 1px solid var(--ttv-line-light);
	background: rgba(255, 255, 255, 0.03);
	font-family: var(--ttv-display);
	font-size: clamp(20px, 2vw, 32px);
	transition: background-color 260ms ease, border-color 260ms ease, transform 300ms var(--ttv-ease);
}

.ttv-v5-journey-map span:hover {
	border-color: rgba(0, 231, 212, 0.62);
	background: rgba(0, 231, 212, 0.1);
	transform: translateX(6px);
}

.ttv-v5-journey-map b {
	color: var(--ttv-teal);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.13em;
}

/* Project doors and editorial proof */
.ttv-v5-proof,
.ttv-v5-projects,
.ttv-v5-editorial,
.ttv-v5-origin,
.ttv-v5-range,
.ttv-v5-featured,
.ttv-v5-contact-next {
	padding: clamp(90px, 11vw, 176px) var(--ttv-gutter);
}

.ttv-v5-proof-head {
	display: grid;
	gap: 22px;
	margin-bottom: clamp(52px, 7vw, 98px);
}

.ttv-v5-proof-grid,
.ttv-v5-projects,
.ttv-v5-principle-mosaic {
	display: grid;
	grid-template-columns: 1.14fr 0.86fr;
	grid-template-rows: repeat(2, minmax(280px, 38vw));
	gap: 14px;
}

.ttv-v5-projects,
.ttv-v5-principle-mosaic {
	background: var(--ttv-paper);
}

.ttv-v5-project-door {
	position: relative;
	min-height: 420px;
	overflow: hidden;
	background: var(--ttv-ink-2);
	transform: perspective(1100px) rotateX(var(--ttv-tilt-x, 0deg)) rotateY(var(--ttv-tilt-y, 0deg));
	transition: transform 420ms var(--ttv-ease), box-shadow 420ms var(--ttv-ease);
}

.ttv-v5-door-primary {
	grid-row: 1 / 3;
}

.ttv-v5-project-door:hover {
	z-index: 2;
	box-shadow: 0 30px 88px rgba(7, 16, 22, 0.26);
}

.ttv-v5-project-door-image,
.ttv-v5-project-door-image .elementor-widget-container,
.ttv-v5-project-door-image img {
	width: 100%;
	height: 100%;
}

.ttv-v5-project-door-image img {
	filter: saturate(0.82) contrast(1.05);
	object-fit: cover;
	transform: translate3d(0, var(--ttv-depth-y, 0), 0) scale(1.06);
	transition: transform 900ms var(--ttv-ease), filter 500ms ease;
}

.ttv-v5-project-door:hover img {
	filter: saturate(1) contrast(1.02);
	transform: translate3d(0, var(--ttv-depth-y, 0), 0) scale(1.1);
}

.ttv-v5-project-door::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 20%, rgba(7, 16, 22, 0.86));
	content: "";
}

.ttv-v5-project-door-copy {
	position: absolute;
	z-index: 3;
	right: 0;
	bottom: 0;
	left: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 22px;
	padding: clamp(24px, 3vw, 44px);
	color: var(--ttv-white);
}

.ttv-v5-door-number {
	grid-row: 1 / 3;
	color: var(--ttv-teal);
	font-family: var(--ttv-display);
	font-size: 10px;
	letter-spacing: 0.12em;
}

.ttv-v5-door-title {
	font-family: var(--ttv-display);
	font-size: clamp(27px, 3vw, 50px);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.03em;
}

.ttv-v5-door-copy {
	max-width: 510px;
	color: rgba(255, 255, 255, 0.62);
	font-size: 12px;
}

.ttv-v5-proof > .ttv-text-link {
	margin-top: 30px;
}

/* Inner page hero */
.ttv-v5-page-hero {
	position: relative;
	display: grid;
	grid-template-columns: 130px minmax(0, 1fr) minmax(330px, 0.72fr);
	gap: clamp(28px, 4vw, 74px);
	min-height: 100svh;
	padding: clamp(126px, 16vh, 170px) var(--ttv-gutter) 52px;
	background: var(--ttv-paper);
}

.ttv-v5-page-index {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 16px 22px 0 0;
	border-right: 1px solid var(--ttv-line);
}

.ttv-v5-page-copy {
	display: flex;
	flex-direction: column;
	align-self: center;
	gap: 28px;
}

.ttv-v5-page-title {
	font-size: clamp(64px, 8vw, 138px);
	line-height: 0.85;
}

.ttv-v5-page-lead {
	max-width: 590px;
	margin-left: clamp(0px, 6vw, 110px);
	padding-left: 26px;
	border-left: 1px solid var(--ttv-teal-2);
	color: var(--ttv-muted);
	font-size: clamp(15px, 1.25vw, 19px);
}

.ttv-v5-page-visual {
	position: relative;
	min-height: 67vh;
}

.ttv-v5-page-image,
.ttv-v5-page-image .elementor-widget-container,
.ttv-v5-page-image img {
	width: 100%;
	height: 100%;
}

/* About */
.ttv-v5-origin {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 0.7fr);
	gap: clamp(56px, 8vw, 140px);
	background: var(--ttv-white);
}

.ttv-v5-origin-copy {
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.ttv-v5-origin-statements {
	display: grid;
	border-top: 1px solid var(--ttv-line);
}

.ttv-v5-origin-statement {
	display: grid;
	grid-template-columns: 46px 1fr;
	gap: 6px 18px;
	padding: 28px 0;
	border-bottom: 1px solid var(--ttv-line);
}

.ttv-v5-origin-statement .ttv-index {
	grid-row: 1 / 3;
	color: var(--ttv-teal-2);
	font-size: 9px;
	letter-spacing: 0.13em;
}

.ttv-v5-origin-statement .ttv-item-title {
	font-family: var(--ttv-display);
	font-size: clamp(26px, 3vw, 43px);
	font-weight: 400;
	line-height: 1;
}

.ttv-v5-origin-statement .ttv-item-copy {
	color: var(--ttv-muted);
	font-size: 12px;
}

.ttv-v5-principle-mosaic {
	padding: clamp(90px, 11vw, 176px) var(--ttv-gutter);
	background: var(--ttv-paper-2);
}

.ttv-v5-character,
.ttv-v5-loop-statement {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
	gap: 50px;
	align-items: end;
	min-height: 84svh;
	padding: clamp(90px, 12vw, 190px) var(--ttv-gutter);
	background: var(--ttv-ink);
	color: var(--ttv-white);
}

.ttv-v5-character .ttv-eyebrow,
.ttv-v5-loop-statement .ttv-eyebrow {
	grid-column: 1 / -1;
}

.ttv-v5-character-title {
	font-size: clamp(54px, 7.6vw, 126px);
	line-height: 0.88;
}

/* Services connection */
.ttv-v5-service-atlas-page {
	background: var(--ttv-white);
}

.ttv-v5-connection {
	position: relative;
	display: grid;
	grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
	min-height: 88svh;
	background: var(--ttv-ink);
	color: var(--ttv-white);
}

.ttv-v5-connection-image,
.ttv-v5-connection-image .elementor-widget-container,
.ttv-v5-connection-image img {
	width: 100%;
	height: 100%;
}

.ttv-v5-connection-image img {
	object-fit: cover;
	filter: saturate(0.76) contrast(1.06);
}

.ttv-v5-connection-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 32px;
	padding: clamp(64px, 8vw, 140px) var(--ttv-gutter);
}

/* Approach stages */
.ttv-v5-journey-stages {
	background: var(--ttv-white);
}

.ttv-v5-journey-stage {
	display: grid;
	grid-template-columns: 120px minmax(0, 0.9fr) minmax(320px, 0.72fr);
	gap: clamp(28px, 5vw, 88px);
	align-items: center;
	min-height: 86svh;
	padding: clamp(72px, 9vw, 138px) var(--ttv-gutter);
	border-bottom: 1px solid var(--ttv-line);
}

.ttv-v5-journey-stage:nth-child(even) {
	background: var(--ttv-paper-2);
}

.ttv-v5-stage-index {
	position: sticky;
	top: 130px;
	align-self: start;
	display: flex;
	align-items: center;
	gap: 18px;
}

.ttv-v5-stage-number {
	color: var(--ttv-teal-2);
	font-family: var(--ttv-display);
	font-size: 14px;
	letter-spacing: 0.12em;
}

.ttv-v5-stage-line {
	flex: 1;
}

.ttv-v5-stage-line i {
	display: block;
	width: 100%;
	height: 1px;
	background: var(--ttv-line);
}

.ttv-v5-stage-copy {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.ttv-v5-stage-title {
	font-family: var(--ttv-display);
	font-size: clamp(64px, 9vw, 148px);
	font-weight: 400;
	line-height: 0.84;
	letter-spacing: -0.05em;
}

.ttv-v5-stage-text {
	max-width: 540px;
	color: var(--ttv-muted);
	font-size: clamp(15px, 1.25vw, 19px);
}

.ttv-v5-stage-image {
	height: 55vh;
	min-height: 440px;
	overflow: hidden;
	clip-path: polygon(7% 0, 100% 0, 93% 100%, 0 100%);
}

.ttv-v5-stage-image .elementor-widget-container,
.ttv-v5-stage-image img {
	width: 100%;
	height: 100%;
}

/* Projects range */
.ttv-v5-range {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(260px, 0.5fr);
	gap: 50px;
	align-items: end;
	background: var(--ttv-white);
}

.ttv-v5-range .ttv-eyebrow {
	grid-column: 1 / -1;
}

.ttv-v5-range-title {
	font-family: var(--ttv-display);
	font-size: clamp(48px, 6.9vw, 114px);
	font-weight: 400;
	line-height: 0.95;
	letter-spacing: -0.04em;
}

.ttv-v5-range-title span {
	color: var(--ttv-teal-2);
}

/* Editorial */
.ttv-v5-editorial {
	background: var(--ttv-paper-2);
}

.ttv-v5-editorial-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	align-items: end;
	margin-bottom: clamp(48px, 7vw, 94px);
}

.ttv-v5-editorial-head .ttv-eyebrow {
	grid-column: 1 / -1;
}

.ttv-v5-editorial-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.ttv-v5-editorial-card {
	display: flex;
	flex-direction: column;
	min-height: 420px;
	padding: clamp(26px, 3vw, 44px);
	border: 1px solid var(--ttv-line);
	background: var(--ttv-white);
	transform: perspective(900px) rotateX(var(--ttv-tilt-x, 0deg)) rotateY(var(--ttv-tilt-y, 0deg));
	transition: transform 360ms var(--ttv-ease), box-shadow 360ms var(--ttv-ease), border-color 300ms ease;
}

.ttv-v5-editorial-card:hover {
	border-color: rgba(0, 231, 212, 0.5);
	box-shadow: 0 24px 68px rgba(7, 16, 22, 0.12);
}

.ttv-v5-editorial-card-dark {
	background: var(--ttv-ink);
	color: var(--ttv-white);
}

.ttv-v5-editorial-card-tall {
	min-height: 520px;
}

.ttv-v5-editorial-card .ttv-index {
	color: var(--ttv-teal-2);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.13em;
}

.ttv-v5-editorial-card .ttv-item-title {
	margin-top: auto;
	font-family: var(--ttv-display);
	font-size: clamp(28px, 3vw, 48px);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.03em;
}

.ttv-v5-editorial-card .ttv-item-copy {
	margin-top: 22px;
	color: var(--ttv-muted);
	font-size: 12px;
}

.ttv-v5-editorial-card-dark .ttv-item-copy {
	color: rgba(255, 255, 255, 0.58);
}

.ttv-v5-featured {
	display: grid;
	grid-template-columns: minmax(340px, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(52px, 8vw, 136px);
	align-items: center;
	background: var(--ttv-white);
}

.ttv-v5-featured-visual {
	height: 72vh;
	min-height: 540px;
}

.ttv-v5-featured-visual .elementor-widget-image,
.ttv-v5-featured-visual .elementor-widget-container,
.ttv-v5-featured-visual img {
	width: 100%;
	height: 100%;
}

.ttv-v5-featured-copy {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

/* Contact */
.ttv-v5-contact-hero {
	display: grid;
	grid-template-columns: minmax(0, 0.96fr) minmax(430px, 0.74fr);
	gap: clamp(48px, 8vw, 140px);
	min-height: 100svh;
	padding: clamp(132px, 17vh, 184px) var(--ttv-gutter) clamp(70px, 8vw, 120px);
	background:
		radial-gradient(circle at 24% 42%, rgba(0, 231, 212, 0.1), transparent 27%),
		var(--ttv-ink);
	color: var(--ttv-white);
}

.ttv-v5-contact-copy {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.ttv-v5-contact-title {
	font-size: clamp(62px, 8.7vw, 148px);
	line-height: 0.84;
}

.ttv-v5-contact-lead {
	max-width: 560px;
	color: rgba(255, 255, 255, 0.63);
	font-size: clamp(15px, 1.25vw, 19px);
}

.ttv-v5-contact-lead a {
	color: var(--ttv-teal);
}

.ttv-v5-contact-paths {
	display: grid;
	margin-top: auto;
	border-top: 1px solid var(--ttv-line-light);
}

.ttv-v5-contact-paths p {
	display: flex;
	gap: 22px;
	margin: 0;
	padding: 15px 0;
	border-bottom: 1px solid var(--ttv-line-light);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ttv-v5-contact-paths span {
	color: var(--ttv-teal);
}

.ttv-v5-contact-form-wrap {
	align-self: center;
	padding: clamp(28px, 4vw, 56px);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.055);
	box-shadow: 0 34px 90px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(18px);
}

.ttv-v5-contact-form-title {
	margin-bottom: 30px;
	font-family: var(--ttv-display);
	font-size: clamp(28px, 3vw, 48px);
	font-weight: 400;
}

.ttv-contact-form .elementor-form-fields-wrapper {
	gap: 20px 0;
}

.ttv-contact-form .elementor-field-group {
	padding-right: 10px !important;
	padding-left: 10px !important;
}

.ttv-contact-form .elementor-field-label {
	margin-bottom: 8px;
	color: rgba(255, 255, 255, 0.56);
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.ttv-contact-form input,
.ttv-contact-form textarea,
.ttv-contact-form select {
	padding: 14px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.22) !important;
	border-radius: 0 !important;
	outline: 0;
	background: transparent !important;
	color: var(--ttv-white) !important;
	box-shadow: none !important;
	transition: border-color 220ms ease !important;
}

.ttv-contact-form input:focus,
.ttv-contact-form textarea:focus {
	border-bottom-color: var(--ttv-teal) !important;
}

.ttv-contact-form input::placeholder,
.ttv-contact-form textarea::placeholder {
	color: rgba(255, 255, 255, 0.32) !important;
}

.ttv-contact-form .elementor-button {
	min-height: 50px;
	padding: 0 24px;
	border: 0;
	border-radius: 999px;
	background: var(--ttv-teal);
	color: var(--ttv-ink);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ttv-v5-contact-next {
	display: grid;
	grid-template-columns: minmax(340px, 0.82fr) minmax(0, 1.18fr);
	gap: clamp(52px, 8vw, 138px);
	align-items: center;
	background: var(--ttv-white);
}

.ttv-v5-contact-next-visual {
	height: 70vh;
	min-height: 520px;
}

.ttv-v5-contact-next-visual .elementor-widget-image,
.ttv-v5-contact-next-visual .elementor-widget-container,
.ttv-v5-contact-next-visual img {
	width: 100%;
	height: 100%;
}

.ttv-v5-contact-next-copy {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.ttv-v5-contact-next-steps {
	display: grid;
	margin-top: 18px;
	border-top: 1px solid var(--ttv-line);
}

.ttv-v5-contact-next-steps p {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 3px 18px;
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid var(--ttv-line);
}

.ttv-v5-contact-next-steps span {
	grid-row: 1 / 3;
	color: var(--ttv-teal-2);
	font-size: 9px;
	letter-spacing: 0.12em;
}

.ttv-v5-contact-next-steps strong {
	font-family: var(--ttv-display);
	font-size: 22px;
	font-weight: 400;
}

.ttv-v5-contact-next-steps small {
	color: var(--ttv-muted);
	font-size: 11px;
}

/* Closing portal */
.ttv-v5-closing {
	position: relative;
	display: grid;
	grid-template-columns: minmax(300px, 0.62fr) minmax(0, 1.38fr);
	gap: clamp(44px, 8vw, 138px);
	align-items: center;
	min-height: 82svh;
	padding: clamp(88px, 11vw, 170px) var(--ttv-gutter);
	overflow: hidden;
	background: var(--ttv-ink-2);
	color: var(--ttv-white);
}

.ttv-v5-closing-portal {
	position: relative;
	width: min(31vw, 430px);
	min-width: 270px;
	aspect-ratio: 0.86;
	margin: auto;
	perspective: 900px;
}

.ttv-v5-closing-portal i {
	position: absolute;
	top: 8%;
	bottom: 8%;
	width: 49%;
	border: 2px solid;
	transition: transform 700ms var(--ttv-ease);
}

.ttv-v5-closing-portal i:first-child {
	left: 0;
	border-color: var(--ttv-teal);
	box-shadow: 0 0 34px rgba(0, 231, 212, 0.24);
	transform: rotateY(38deg);
	transform-origin: right;
}

.ttv-v5-closing-portal i:nth-child(2) {
	right: 0;
	border-color: rgba(255, 255, 255, 0.7);
	transform: rotateY(-38deg);
	transform-origin: left;
}

.ttv-v5-closing:hover .ttv-v5-closing-portal i:first-child {
	transform: rotateY(56deg);
}

.ttv-v5-closing:hover .ttv-v5-closing-portal i:nth-child(2) {
	transform: rotateY(-56deg);
}

.ttv-v5-closing-portal span {
	position: absolute;
	right: 20%;
	bottom: 0;
	left: 20%;
	height: 1px;
	background: var(--ttv-teal);
	box-shadow: 0 0 24px rgba(0, 231, 212, 0.7);
}

.ttv-v5-closing-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 30px;
}

.ttv-v5-closing-title {
	font-size: clamp(62px, 8.4vw, 140px);
	line-height: 0.84;
}

/* Footer */
.ttv-footer {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: clamp(70px, 9vw, 130px) var(--ttv-gutter) 28px;
	background: #040a0e;
	color: var(--ttv-white);
}

.ttv-v5-footer-prompt-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px 50px;
	align-items: end;
	padding-bottom: clamp(60px, 8vw, 118px);
	border-bottom: 1px solid var(--ttv-line-light);
}

.ttv-v5-footer-prompt-wrap .ttv-eyebrow {
	grid-column: 1 / -1;
}

.ttv-footer-prompt {
	font-size: clamp(50px, 7vw, 112px);
	line-height: 0.9;
}

.ttv-footer-lower {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(300px, 0.8fr) minmax(220px, 0.5fr);
	gap: 50px;
	align-items: start;
	padding: 48px 0;
}

.ttv-footer-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 28px;
}

.ttv-footer-links a,
.ttv-fallback-footer-links a {
	color: rgba(255, 255, 255, 0.62);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: color 220ms ease, transform 240ms var(--ttv-ease);
}

.ttv-footer-links a:hover,
.ttv-fallback-footer-links a:hover {
	color: var(--ttv-teal);
	transform: translateX(4px);
}

.ttv-footer-meta,
.ttv-copyright,
.ttv-fallback-copyright {
	color: rgba(255, 255, 255, 0.38);
	font-size: 8px;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.ttv-copyright {
	padding-top: 24px;
	border-top: 1px solid var(--ttv-line-light);
}

.ttv-fallback-footer-prompt {
	font-family: var(--ttv-display);
	font-size: clamp(48px, 7vw, 110px);
	font-weight: 400;
	line-height: 0.9;
}

.ttv-fallback-footer-links {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 26px;
}

/* Motion: opacity and local transforms only; the page itself never moves. */
[data-ttv-reveal] {
	opacity: 0;
	transform: translate3d(0, var(--ttv-reveal-distance, 24px), 0);
	transition: opacity 650ms ease var(--ttv-delay, 0ms), transform 780ms var(--ttv-ease) var(--ttv-delay, 0ms);
}

[data-ttv-reveal].is-visible,
.elementor-editor-active [data-ttv-reveal] {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.ttv-image-reveal {
	clip-path: polygon(0 9%, 100% 0, 100% 91%, 0 100%);
	transition: clip-path 900ms var(--ttv-ease), opacity 650ms ease, transform 800ms var(--ttv-ease);
}

.ttv-image-reveal.is-visible {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

.ttv-parallax-copy-layer {
	transform: translate3d(0, var(--ttv-copy-y, 0), 0);
}

.ttv-magnetic {
	transform: translate(var(--ttv-magnetic-x, 0), var(--ttv-magnetic-y, 0));
}

.ttv-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10001;
	width: calc(var(--ttv-scroll-progress) * 100%);
	height: 2px;
	background: linear-gradient(90deg, var(--ttv-teal-2), var(--ttv-teal));
	box-shadow: 0 0 10px rgba(0, 231, 212, 0.48);
	pointer-events: none;
}

.ttv-story-index {
	position: fixed;
	right: 14px;
	top: 50%;
	z-index: 80;
	display: grid;
	grid-template-columns: auto 1px auto;
	gap: 8px;
	align-items: center;
	padding: 11px 8px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	background: rgba(7, 16, 22, 0.72);
	color: rgba(255, 255, 255, 0.56);
	font-family: var(--ttv-display);
	font-size: 8px;
	backdrop-filter: blur(10px);
	transform: translateY(-50%);
}

.ttv-story-index i {
	width: 1px;
	height: 36px;
	background: linear-gradient(to bottom, var(--ttv-teal) calc(var(--ttv-story-progress) * 100%), rgba(255, 255, 255, 0.18) 0);
}

.ttv-story-index small {
	display: none;
}

.ttv-pointer-aura {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	width: 78px;
	height: 78px;
	border: 1px solid rgba(0, 231, 212, 0.34);
	border-radius: 50%;
	box-shadow: 0 0 28px rgba(0, 231, 212, 0.1);
	opacity: 0;
	pointer-events: none;
	transition: width 220ms ease, height 220ms ease, margin 220ms ease, opacity 220ms ease, border-color 220ms ease;
}

.ttv-pointer-active .ttv-pointer-aura {
	opacity: 0.78;
}

.ttv-pointer-over-action .ttv-pointer-aura {
	width: 96px;
	height: 96px;
	margin: -9px 0 0 -9px;
	border-color: rgba(0, 231, 212, 0.65);
}

/* Compatibility: if the new theme is activated before the v5 importer runs,
   the old Elementor pages are immediately recoloured and cannot look identical. */
.ttv-living-hero,
.ttv-subhero,
.ttv-belief-scene,
.ttv-project-scene,
.ttv-contact-pathways {
	background-color: var(--ttv-ink) !important;
	color: var(--ttv-white) !important;
}

.ttv-manifesto,
.ttv-split-story,
.ttv-insight-preview,
.ttv-editorial-statement,
.ttv-service-chapters,
.ttv-stage-stack {
	background: var(--ttv-paper) !important;
	color: var(--ttv-silver) !important;
}

.ttv-marquee-band {
	overflow: hidden;
	padding: 18px 0;
	background: var(--ttv-teal);
	color: var(--ttv-ink);
}

.ttv-marquee-text {
	width: max-content;
	font-family: var(--ttv-display);
	font-size: clamp(22px, 3.5vw, 54px);
	font-weight: 400;
	white-space: nowrap;
	animation: ttv-marquee 24s linear infinite;
}

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

/* Responsive */
@media (max-width: 1180px) {
	.ttv-nav,
	.ttv-fallback-nav {
		gap: 10px;
	}

	.ttv-nav-link .elementor-button,
	.ttv-fallback-nav a {
		font-size: 9px;
	}

	.ttv-v5-home-hero {
		grid-template-columns: minmax(0, 1fr) minmax(330px, 0.72fr);
	}

	.ttv-v5-page-hero {
		grid-template-columns: 90px minmax(0, 1fr) minmax(300px, 0.66fr);
	}

	.ttv-v5-spatial-tile {
		grid-column: span 6;
	}

	.ttv-v5-tile-wide {
		grid-column: span 12;
	}
}

@media (max-width: 960px) {
	body.admin-bar .ttv-header {
		top: 46px;
	}

	.ttv-nav,
	.ttv-header-cta,
	.ttv-fallback-nav,
	.ttv-fallback-cta {
		display: none;
	}

	.ttv-mobile-menu-widget,
	.ttv-fallback-mobile-menu {
		display: block;
		margin-left: auto;
	}

	.ttv-mobile-menu {
		position: relative;
	}

	.ttv-menu-toggle {
		display: inline-flex;
		align-items: center;
		gap: 12px;
		min-height: 40px;
		padding: 0 14px;
		border: 1px solid rgba(0, 231, 212, 0.4);
		border-radius: 12px;
		background: rgba(0, 231, 212, 0.07);
		color: var(--ttv-white);
		font-size: 9px;
		font-weight: 600;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		cursor: pointer;
	}

	.ttv-menu-toggle i,
	.ttv-menu-toggle i::before {
		display: block;
		width: 16px;
		height: 1px;
		background: var(--ttv-teal);
		content: "";
		transition: transform 260ms var(--ttv-ease);
	}

	.ttv-menu-toggle i::before {
		transform: translateY(5px);
	}

	.ttv-mobile-menu.is-open .ttv-menu-toggle i {
		transform: rotate(45deg);
	}

	.ttv-mobile-menu.is-open .ttv-menu-toggle i::before {
		transform: rotate(-90deg);
	}

	.ttv-mobile-menu nav {
		position: fixed;
		top: 90px;
		right: 18px;
		left: 18px;
		display: grid;
		padding: 18px;
		border: 1px solid rgba(255, 255, 255, 0.14);
		border-radius: 22px;
		background: rgba(7, 16, 22, 0.94);
		box-shadow: 0 32px 100px rgba(0, 0, 0, 0.36);
		backdrop-filter: saturate(140%) blur(20px);
		opacity: 0;
		pointer-events: none;
		transform: translateY(-12px) scale(0.98);
		transform-origin: top;
		transition: opacity 220ms ease, transform 360ms var(--ttv-ease);
	}

	.admin-bar .ttv-mobile-menu nav {
		top: 136px;
	}

	.ttv-mobile-menu.is-open nav {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0) scale(1);
	}

	.ttv-mobile-menu nav a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 16px 10px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.09);
		color: rgba(255, 255, 255, 0.78);
		font-family: var(--ttv-display);
		font-size: clamp(22px, 4.8vw, 38px);
		transition: color 200ms ease, padding 260ms var(--ttv-ease), background-color 200ms ease;
	}

	.ttv-mobile-menu nav a:hover,
	.ttv-mobile-menu nav a:focus-visible {
		padding-right: 18px;
		padding-left: 18px;
		background: rgba(0, 231, 212, 0.09);
		color: var(--ttv-teal);
	}

	.ttv-v5-home-hero,
	.ttv-v5-thesis,
	.ttv-v5-journey-overview,
	.ttv-v5-origin,
	.ttv-v5-connection,
	.ttv-v5-featured,
	.ttv-v5-contact-hero,
	.ttv-v5-contact-next,
	.ttv-v5-closing {
		grid-template-columns: 1fr;
	}

	.ttv-v5-home-hero {
		min-height: auto;
	}

	.ttv-v5-home-hero-copy {
		padding-right: 6vw;
	}

	.ttv-v5-home-portal {
		min-height: 70svh;
	}

	.ttv-v5-thesis-visual {
		position: relative;
		top: auto;
		height: 70svh;
	}

	.ttv-v5-page-hero {
		grid-template-columns: 76px 1fr;
		min-height: auto;
	}

	.ttv-v5-page-visual {
		grid-column: 1 / -1;
		min-height: 68svh;
	}

	.ttv-v5-journey-stage {
		grid-template-columns: 76px 1fr;
	}

	.ttv-v5-stage-image {
		grid-column: 2;
		height: 56svh;
	}

	.ttv-v5-character,
	.ttv-v5-loop-statement,
	.ttv-v5-range {
		grid-template-columns: 1fr;
	}

	.ttv-v5-proof-grid,
	.ttv-v5-projects,
	.ttv-v5-principle-mosaic {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(3, minmax(480px, 65svh));
	}

	.ttv-v5-door-primary {
		grid-row: auto;
	}

	.ttv-v5-editorial-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ttv-footer-lower {
		grid-template-columns: 1fr 1fr;
	}

	.ttv-footer-meta {
		grid-column: 1 / -1;
	}

	.ttv-story-index {
		display: none;
	}
}

@media (max-width: 680px) {
	:root {
		--ttv-gutter: 20px;
	}

	.ttv-header {
		padding: 10px 10px 0;
	}

	.ttv-v5-header-shell,
	.ttv-fallback-header {
		min-height: 60px;
		padding: 8px 9px 8px 13px;
		border-radius: 15px;
	}

	.ttv-brandmark-symbol {
		width: 34px;
		height: 32px;
	}

	.ttv-brandmark-copy strong {
		font-size: 14px;
	}

	.ttv-brandmark-copy small {
		font-size: 5px;
	}

	.ttv-v5-home-hero {
		gap: 24px;
		padding-top: 112px;
	}

	.ttv-v5-home-hero-top {
		align-items: flex-start;
		padding-left: 14px;
	}

	.ttv-v5-coordinate {
		display: none;
	}

	.ttv-v5-home-hero-copy {
		padding: 26px 0 16px 14px;
	}

	.ttv-v5-home-title {
		font-size: clamp(53px, 16vw, 78px);
	}

	.ttv-v5-home-lead {
		margin-top: 30px;
		padding-left: 18px;
	}

	.ttv-v5-home-actions {
		align-items: flex-start;
		flex-direction: column;
		margin: 26px 0 0;
	}

	.ttv-v5-home-portal {
		min-height: 64svh;
	}

	.ttv-v5-signal-copy p {
		justify-content: flex-start;
		animation: ttv-signal 22s linear infinite;
	}

	@keyframes ttv-signal {
		to { transform: translateX(-55%); }
	}

	.ttv-v5-thesis,
	.ttv-v5-service-atlas,
	.ttv-v5-journey-overview,
	.ttv-v5-proof,
	.ttv-v5-editorial,
	.ttv-v5-origin,
	.ttv-v5-projects,
	.ttv-v5-range,
	.ttv-v5-featured,
	.ttv-v5-contact-next,
	.ttv-v5-principle-mosaic {
		padding-top: 86px;
		padding-bottom: 86px;
	}

	.ttv-v5-section-title {
		font-size: clamp(44px, 14vw, 70px);
	}

	.ttv-v5-thesis-title {
		font-size: clamp(49px, 15vw, 74px);
	}

	.ttv-v5-thesis-lead {
		margin-top: 34px;
	}

	.ttv-v5-thesis-visual {
		height: 60svh;
		min-height: 430px;
	}

	.ttv-v5-atlas-head,
	.ttv-v5-editorial-head,
	.ttv-v5-footer-prompt-wrap {
		grid-template-columns: 1fr;
	}

	.ttv-v5-spatial-grid {
		grid-template-columns: 1fr;
	}

	.ttv-v5-spatial-tile,
	.ttv-v5-tile-wide,
	.ttv-v5-tile-tall {
		grid-column: auto;
		grid-row: auto;
		min-height: 310px;
	}

	.ttv-v5-journey-map {
		grid-template-columns: 1fr;
	}

	.ttv-v5-journey-map::before,
	.ttv-v5-journey-map::after {
		display: none;
	}

	.ttv-v5-page-hero {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-top: 118px;
	}

	.ttv-v5-page-index {
		flex-direction: row;
		padding: 0 0 15px;
		border-right: 0;
		border-bottom: 1px solid var(--ttv-line);
	}

	.ttv-v5-page-copy {
		gap: 22px;
	}

	.ttv-v5-page-title {
		font-size: clamp(54px, 16vw, 82px);
	}

	.ttv-v5-page-lead {
		margin-left: 0;
	}

	.ttv-v5-page-visual {
		grid-column: auto;
		min-height: 58svh;
	}

	.ttv-v5-origin {
		gap: 56px;
	}

	.ttv-v5-character,
	.ttv-v5-loop-statement {
		gap: 34px;
		min-height: 76svh;
		padding: 86px var(--ttv-gutter);
	}

	.ttv-v5-character-title {
		font-size: clamp(49px, 15vw, 76px);
	}

	.ttv-v5-journey-stage {
		grid-template-columns: 1fr;
		gap: 32px;
		min-height: auto;
		padding: 76px var(--ttv-gutter);
	}

	.ttv-v5-stage-index {
		position: relative;
		top: auto;
	}

	.ttv-v5-stage-title {
		font-size: clamp(62px, 20vw, 100px);
	}

	.ttv-v5-stage-image {
		grid-column: auto;
		height: 54svh;
		min-height: 380px;
	}

	.ttv-v5-proof-grid,
	.ttv-v5-projects,
	.ttv-v5-principle-mosaic {
		grid-template-rows: none;
	}

	.ttv-v5-project-door {
		min-height: 60svh;
	}

	.ttv-v5-editorial-grid {
		grid-template-columns: 1fr;
	}

	.ttv-v5-editorial-card {
		min-height: 350px;
	}

	.ttv-v5-featured-visual,
	.ttv-v5-contact-next-visual {
		height: 58svh;
		min-height: 420px;
	}

	.ttv-v5-contact-hero {
		gap: 58px;
		padding-top: 120px;
	}

	.ttv-v5-contact-title {
		font-size: clamp(56px, 16vw, 86px);
	}

	.ttv-v5-closing {
		min-height: 76svh;
		padding: 86px var(--ttv-gutter);
	}

	.ttv-v5-closing-portal {
		width: min(78vw, 360px);
	}

	.ttv-v5-closing-title {
		font-size: clamp(57px, 17vw, 88px);
	}

	.ttv-footer-lower {
		grid-template-columns: 1fr;
	}

	.ttv-footer-links {
		grid-template-columns: 1fr 1fr;
	}

	.ttv-pointer-aura {
		display: none;
	}
}

/* -------------------------------------------------------------------------
   5.1 Elementor hardening + Dark Portal system
   Elementor writes its flex display and global heading colours after the
   theme stylesheet. These rules intentionally win so the designed grids,
   media proportions and brand palette survive every CSS regeneration.
   ---------------------------------------------------------------------- */

body .elementor-widget-heading .elementor-heading-title {
	color: inherit !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	letter-spacing: inherit !important;
}

body .ttv-v5-home-hero.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.82fr) !important;
	grid-template-rows: auto minmax(0, 1fr) auto !important;
	min-height: 100svh !important;
	overflow: hidden !important;
	background:
		radial-gradient(circle at 72% 38%, rgba(0, 246, 224, 0.11), transparent 24%),
		linear-gradient(115deg, #080f14 0%, #080f14 54%, #0f1624 100%) !important;
	color: var(--ttv-white) !important;
}

body .ttv-v5-home-hero::before {
	background: rgba(255, 255, 255, 0.1) !important;
}

body .ttv-v5-home-hero::after {
	position: absolute;
	z-index: 0;
	top: 18%;
	left: 39%;
	width: 42vw;
	height: 42vw;
	border: 1px solid rgba(0, 246, 224, 0.12);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 246, 224, 0.055), transparent 68%);
	content: "";
	pointer-events: none;
	animation: ttv-ambient-breathe 5.5s ease-in-out infinite alternate;
}

body .ttv-v5-home-hero-top.e-con {
	position: relative;
	z-index: 3;
	display: flex !important;
	grid-column: 1 / -1 !important;
	grid-row: 1 !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
}

body .ttv-v5-home-hero-copy.e-con {
	position: relative;
	z-index: 3;
	display: flex !important;
	grid-column: 1 !important;
	grid-row: 2 !important;
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: center !important;
	width: auto !important;
}

body .ttv-v5-home-title,
body .ttv-v5-home-title .elementor-heading-title {
	color: var(--ttv-white) !important;
}

body .ttv-v5-home-title em:first-of-type {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	-webkit-text-stroke: 1px rgba(199, 204, 211, 0.84) !important;
}

body .ttv-v5-home-title em:last-of-type {
	color: var(--ttv-teal) !important;
	text-shadow: 0 0 30px rgba(0, 246, 224, 0.16);
}

body .ttv-v5-home-lead {
	color: rgba(199, 204, 211, 0.72) !important;
}

body .ttv-v5-home-actions.e-con {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	width: auto !important;
}

body .ttv-v5-home-portal.e-con {
	position: relative !important;
	z-index: 2;
	display: block !important;
	grid-column: 2 !important;
	grid-row: 2 !important;
	align-self: stretch !important;
	width: auto !important;
	min-height: min(70svh, 760px) !important;
	overflow: hidden !important;
	border: 1px solid rgba(0, 246, 224, 0.2);
	background: #050b0f !important;
	box-shadow: 0 34px 110px rgba(0, 0, 0, 0.48), 0 0 42px rgba(0, 246, 224, 0.1);
}

body .ttv-v5-home-portal .ttv-v5-film-widget {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

body .ttv-v5-home-portal .ttv-v5-film-widget > .elementor-widget-container,
body .ttv-v5-home-portal .ttv-v5-film,
body .ttv-v5-home-portal video,
body .ttv-v5-home-portal img {
	width: 100% !important;
	height: 100% !important;
}

body .ttv-v5-home-portal .ttv-v5-film {
	position: relative;
}

body .ttv-v5-home-portal .ttv-v5-film::after {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(5, 11, 15, 0.14), rgba(5, 11, 15, 0.32) 58%, rgba(5, 11, 15, 0.86)),
		linear-gradient(90deg, rgba(5, 11, 15, 0.48), transparent 34%);
	content: "";
	pointer-events: none;
}

body .ttv-v5-home-portal video,
body .ttv-v5-home-portal img {
	filter: brightness(0.62) saturate(0.88) contrast(1.12);
	object-fit: cover !important;
}

body .ttv-v5-home-scroll {
	position: relative;
	z-index: 3;
	grid-column: 1 / -1 !important;
	grid-row: 3 !important;
	color: rgba(199, 204, 211, 0.56) !important;
}

body .ttv-v5-signal-band.e-con {
	display: block !important;
	border-color: rgba(255, 255, 255, 0.11) !important;
	background: #050b0f !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-thesis.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr) !important;
	min-height: 100svh !important;
	background:
		radial-gradient(circle at 76% 48%, rgba(0, 246, 224, 0.09), transparent 24%),
		#050b0f !important;
}

body .ttv-v5-thesis-copy.e-con {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	width: auto !important;
}

body .ttv-v5-thesis-title,
body .ttv-v5-thesis-title .elementor-heading-title {
	color: var(--ttv-silver) !important;
}

body .ttv-v5-thesis-title span {
	-webkit-text-stroke-color: rgba(199, 204, 211, 0.58) !important;
}

body .ttv-v5-thesis-visual.e-con {
	display: block !important;
	width: auto !important;
	min-height: 520px !important;
	overflow: hidden !important;
	border: 1px solid rgba(0, 246, 224, 0.16);
	box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42);
}

body .ttv-v5-thesis-visual > .elementor-widget-image,
body .ttv-v5-thesis-visual > .elementor-widget-image > .elementor-widget-container {
	width: 100% !important;
	height: 100% !important;
}

body .ttv-v5-thesis-visual img {
	filter: brightness(0.58) saturate(0.8) contrast(1.12);
}

body .ttv-v5-service-atlas.e-con,
body .ttv-v5-origin.e-con,
body .ttv-v5-principle-mosaic.e-con,
body .ttv-v5-projects.e-con,
body .ttv-v5-range.e-con,
body .ttv-v5-editorial.e-con,
body .ttv-v5-featured.e-con,
body .ttv-v5-contact-next.e-con {
	color: var(--ttv-silver) !important;
	background: var(--ttv-ink-2) !important;
}

body .ttv-v5-service-atlas.e-con {
	display: flex !important;
	flex-direction: column !important;
}

body .ttv-v5-atlas-head.e-con,
body .ttv-v5-editorial-head.e-con,
body .ttv-v5-proof-head.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: end !important;
	width: auto !important;
}

body .ttv-v5-atlas-head > .ttv-eyebrow,
body .ttv-v5-editorial-head > .ttv-eyebrow {
	grid-column: 1 / -1 !important;
}

body .ttv-v5-spatial-grid.e-con {
	display: grid !important;
	grid-auto-flow: dense !important;
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	grid-auto-rows: minmax(210px, auto) !important;
	width: auto !important;
}

body .ttv-v5-spatial-tile.e-con {
	display: flex !important;
	grid-column: span 4 !important;
	flex-direction: column !important;
	align-items: stretch !important;
	justify-content: flex-start !important;
	width: auto !important;
	min-height: 330px !important;
	border-color: rgba(255, 255, 255, 0.11) !important;
	background:
		linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
		var(--ttv-ink-3) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-spatial-tile:hover {
	border-color: rgba(0, 246, 224, 0.5) !important;
	background: #111e27 !important;
	box-shadow: 0 30px 90px rgba(0, 0, 0, 0.38), inset 0 0 42px rgba(0, 246, 224, 0.035);
}

body .ttv-v5-spatial-tile.ttv-v5-tile-wide {
	grid-column: span 8 !important;
}

body .ttv-v5-spatial-tile.ttv-v5-tile-tall {
	grid-row: span 2 !important;
}

body .ttv-v5-spatial-tile.ttv-v5-tile-accent {
	background: linear-gradient(145deg, #00f6e0, #00b9ae) !important;
	color: var(--ttv-ink) !important;
}

body .ttv-v5-tile-title,
body .ttv-v5-tile-title .elementor-heading-title,
body .ttv-v5-door-title,
body .ttv-v5-door-title .elementor-heading-title,
body .ttv-v5-stage-title,
body .ttv-v5-stage-title .elementor-heading-title,
body .ttv-v5-section-title,
body .ttv-v5-section-title .elementor-heading-title {
	color: inherit !important;
}

body .ttv-v5-tile-copy,
body .ttv-v5-tile-meta,
body .ttv-v5-stage-text,
body .ttv-v5-large-copy,
body .ttv-v5-page-lead {
	color: rgba(199, 204, 211, 0.64) !important;
}

body .ttv-v5-journey-overview.e-con {
	display: grid !important;
	grid-template-columns: minmax(310px, 0.76fr) minmax(0, 1.24fr) !important;
	min-height: 92svh !important;
}

body .ttv-v5-journey-overview-copy.e-con {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	width: auto !important;
}

body .ttv-v5-proof.e-con {
	display: flex !important;
	flex-direction: column !important;
	background: #050b0f !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-proof-grid.e-con,
body .ttv-v5-projects.e-con,
body .ttv-v5-principle-mosaic.e-con {
	display: grid !important;
	grid-template-columns: 1.14fr 0.86fr !important;
	grid-template-rows: repeat(2, minmax(280px, 38vw)) !important;
	width: auto !important;
}

body .ttv-v5-project-door.e-con {
	position: relative !important;
	display: block !important;
	width: auto !important;
	min-height: 420px !important;
	overflow: hidden !important;
}

body .ttv-v5-project-door.ttv-v5-door-primary {
	grid-row: 1 / 3 !important;
}

body .ttv-v5-project-door-image img {
	filter: brightness(0.58) saturate(0.78) contrast(1.13) !important;
}

body .ttv-v5-page-hero.e-con {
	display: grid !important;
	grid-template-columns: 130px minmax(0, 1fr) minmax(330px, 0.72fr) !important;
	min-height: 100svh !important;
	overflow: hidden !important;
	background:
		radial-gradient(circle at 78% 42%, rgba(0, 246, 224, 0.1), transparent 24%),
		var(--ttv-ink-2) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-page-index.e-con {
	display: flex !important;
	flex-direction: column !important;
	justify-content: space-between !important;
	width: auto !important;
}

body .ttv-v5-page-copy.e-con {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	width: auto !important;
}

body .ttv-v5-page-title,
body .ttv-v5-page-title .elementor-heading-title {
	color: var(--ttv-white) !important;
}

body .ttv-v5-page-visual.e-con {
	position: relative !important;
	display: block !important;
	width: auto !important;
	min-height: 67vh !important;
	overflow: hidden !important;
	border: 1px solid rgba(0, 246, 224, 0.16);
	box-shadow: 0 32px 94px rgba(0, 0, 0, 0.44), 0 0 38px rgba(0, 246, 224, 0.07);
}

body .ttv-v5-page-visual > .elementor-widget-image,
body .ttv-v5-page-visual > .elementor-widget-image > .elementor-widget-container {
	width: 100% !important;
	height: 100% !important;
}

body .ttv-v5-page-visual img {
	filter: brightness(0.6) saturate(0.8) contrast(1.12);
}

body .ttv-v5-origin.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 0.7fr) !important;
}

body .ttv-v5-origin-copy.e-con,
body .ttv-v5-featured-copy.e-con,
body .ttv-v5-contact-next-copy.e-con,
body .ttv-v5-contact-copy.e-con,
body .ttv-v5-closing-copy.e-con,
body .ttv-v5-connection-copy.e-con {
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
}

body .ttv-v5-origin-statements.e-con {
	display: grid !important;
	width: auto !important;
}

body .ttv-v5-origin-statement.e-con {
	display: grid !important;
	grid-template-columns: 46px 1fr !important;
	width: auto !important;
}

body .ttv-v5-character.e-con,
body .ttv-v5-loop-statement.e-con,
body .ttv-v5-range.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr) !important;
	min-height: 84svh !important;
	background: #050b0f !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-connection.e-con {
	display: grid !important;
	grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr) !important;
	min-height: 88svh !important;
}

body .ttv-v5-journey-stages.e-con {
	display: flex !important;
	flex-direction: column !important;
	background: var(--ttv-ink-2) !important;
}

body .ttv-v5-journey-stage.e-con {
	display: grid !important;
	grid-template-columns: 120px minmax(0, 0.9fr) minmax(320px, 0.72fr) !important;
	min-height: 86svh !important;
	border-color: rgba(255, 255, 255, 0.1) !important;
	background: var(--ttv-ink-2) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-journey-stage:nth-child(even) {
	background: var(--ttv-ink-3) !important;
}

body .ttv-v5-stage-index.e-con {
	display: flex !important;
	flex-direction: row !important;
	width: auto !important;
}

body .ttv-v5-stage-copy.e-con {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	width: auto !important;
}

body .ttv-v5-stage-image {
	overflow: hidden !important;
}

body .ttv-v5-stage-image img {
	filter: brightness(0.56) saturate(0.78) contrast(1.14);
}

body .ttv-v5-editorial.e-con {
	display: flex !important;
	flex-direction: column !important;
}

body .ttv-v5-editorial-grid.e-con {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	width: auto !important;
}

body .ttv-v5-editorial-card.e-con {
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
	min-height: 420px !important;
	border-color: rgba(255, 255, 255, 0.11) !important;
	background: var(--ttv-ink-3) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-editorial-card:hover {
	border-color: rgba(0, 246, 224, 0.5) !important;
	box-shadow: 0 28px 80px rgba(0, 0, 0, 0.34);
}

body .ttv-v5-featured.e-con,
body .ttv-v5-contact-next.e-con {
	display: grid !important;
	grid-template-columns: minmax(340px, 0.9fr) minmax(0, 1.1fr) !important;
}

body .ttv-v5-contact-hero.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 0.96fr) minmax(430px, 0.74fr) !important;
	min-height: 100svh !important;
}

body .ttv-v5-contact-form-wrap.e-con {
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
}

body .ttv-v5-closing.e-con {
	display: grid !important;
	grid-template-columns: minmax(300px, 0.62fr) minmax(0, 1.38fr) !important;
	min-height: 82svh !important;
}

body .ttv-v5-footer-prompt-wrap.e-con,
body .ttv-footer-lower.e-con {
	display: grid !important;
	width: auto !important;
}

body .ttv-v5-footer-prompt-wrap.e-con {
	grid-template-columns: minmax(0, 1fr) auto !important;
}

body .ttv-footer-lower.e-con {
	grid-template-columns: minmax(260px, 1fr) minmax(300px, 0.8fr) minmax(220px, 0.5fr) !important;
}

body .ttv-footer-links {
	display: grid !important;
}

body .ttv-button .elementor-button,
body .ttv-button.elementor-widget-button .elementor-button {
	border-color: rgba(0, 246, 224, 0.68) !important;
	background: var(--ttv-teal) !important;
	color: var(--ttv-ink) !important;
}

body .ttv-button .elementor-button:hover,
body .ttv-button .elementor-button:focus-visible {
	border-color: var(--ttv-white) !important;
	background: var(--ttv-white) !important;
	color: var(--ttv-ink) !important;
}

body .ttv-button-light .elementor-button {
	border-color: rgba(0, 246, 224, 0.5) !important;
	background: rgba(0, 246, 224, 0.08) !important;
	color: var(--ttv-white) !important;
}

body .ttv-text-link .elementor-button {
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--ttv-silver) !important;
}

body .ttv-text-link .elementor-button:hover,
body .ttv-text-link .elementor-button:focus-visible {
	color: var(--ttv-teal) !important;
}

body .ttv-v5-portal-frame.e-con {
	overflow: hidden !important;
}

body .ttv-v5-portal-frame::before {
	animation: ttv-portal-edge 3.8s ease-in-out infinite alternate;
}

body .ttv-pointer-aura {
	border-color: rgba(0, 246, 224, 0.46);
	background: radial-gradient(circle, rgba(0, 246, 224, 0.08), transparent 62%);
	box-shadow: 0 0 34px rgba(0, 246, 224, 0.12);
}

@keyframes ttv-ambient-breathe {
	from { opacity: 0.45; transform: scale(0.96); }
	to { opacity: 1; transform: scale(1.04); }
}

@keyframes ttv-portal-edge {
	from { opacity: 0.48; }
	to { opacity: 1; }
}

@media (max-width: 1180px) {
	body .ttv-v5-home-hero.e-con {
		grid-template-columns: minmax(0, 1fr) minmax(330px, 0.72fr) !important;
	}

	body .ttv-v5-page-hero.e-con {
		grid-template-columns: 90px minmax(0, 1fr) minmax(300px, 0.66fr) !important;
	}

	body .ttv-v5-spatial-tile.e-con {
		grid-column: span 6 !important;
	}

	body .ttv-v5-spatial-tile.ttv-v5-tile-wide {
		grid-column: span 12 !important;
	}
}

@media (max-width: 960px) {
	body .ttv-v5-home-hero.e-con {
		grid-template-columns: 1fr !important;
		grid-template-rows: auto auto minmax(62svh, 680px) auto !important;
	}

	body .ttv-v5-home-hero-copy.e-con {
		grid-column: 1 !important;
		grid-row: 2 !important;
	}

	body .ttv-v5-home-portal.e-con {
		grid-column: 1 !important;
		grid-row: 3 !important;
	}

	body .ttv-v5-home-scroll {
		grid-row: 4 !important;
	}

	body .ttv-v5-thesis.e-con,
	body .ttv-v5-journey-overview.e-con,
	body .ttv-v5-origin.e-con,
	body .ttv-v5-connection.e-con,
	body .ttv-v5-featured.e-con,
	body .ttv-v5-contact-hero.e-con,
	body .ttv-v5-contact-next.e-con,
	body .ttv-v5-closing.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-page-hero.e-con {
		grid-template-columns: 76px 1fr !important;
	}

	body .ttv-v5-page-visual.e-con {
		grid-column: 1 / -1 !important;
	}

	body .ttv-v5-character.e-con,
	body .ttv-v5-loop-statement.e-con,
	body .ttv-v5-range.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-proof-grid.e-con,
	body .ttv-v5-projects.e-con,
	body .ttv-v5-principle-mosaic.e-con {
		grid-template-columns: 1fr !important;
		grid-template-rows: repeat(3, minmax(480px, 65svh)) !important;
	}

	body .ttv-v5-project-door.ttv-v5-door-primary {
		grid-row: auto !important;
	}

	body .ttv-v5-journey-stage.e-con {
		grid-template-columns: 76px 1fr !important;
	}

	body .ttv-v5-stage-image {
		grid-column: 2 !important;
	}

	body .ttv-v5-editorial-grid.e-con {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	body .ttv-v5-footer-prompt-wrap.e-con,
	body .ttv-footer-lower.e-con {
		grid-template-columns: 1fr 1fr !important;
	}
}

@media (max-width: 680px) {
	body .ttv-v5-home-hero.e-con {
		grid-template-rows: auto auto minmax(58svh, 520px) auto !important;
	}

	body .ttv-v5-home-actions.e-con {
		flex-direction: column !important;
		align-items: flex-start !important;
	}

	body .ttv-v5-atlas-head.e-con,
	body .ttv-v5-editorial-head.e-con,
	body .ttv-v5-footer-prompt-wrap.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-spatial-grid.e-con,
	body .ttv-v5-editorial-grid.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-spatial-tile.e-con,
	body .ttv-v5-spatial-tile.ttv-v5-tile-wide,
	body .ttv-v5-spatial-tile.ttv-v5-tile-tall {
		grid-column: auto !important;
		grid-row: auto !important;
	}

	body .ttv-v5-page-hero.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-page-index.e-con {
		flex-direction: row !important;
	}

	body .ttv-v5-page-visual.e-con {
		grid-column: auto !important;
	}

	body .ttv-v5-journey-stage.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-stage-image {
		grid-column: auto !important;
	}

	body .ttv-v5-proof-grid.e-con,
	body .ttv-v5-projects.e-con,
	body .ttv-v5-principle-mosaic.e-con {
		grid-template-rows: none !important;
	}

	body .ttv-footer-lower.e-con {
		grid-template-columns: 1fr !important;
	}
}

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

	[data-ttv-reveal] {
		opacity: 1 !important;
		transform: none !important;
	}

	.ttv-pointer-aura,
	.ttv-page-transition {
		display: none !important;
	}
}

/* --------------------------------------------------------------------------
   5.3 · Coordinated journey light + living homepage
   -------------------------------------------------------------------------- */

html {
	scroll-padding-top: 112px;
}

main section[id],
main .e-con[id] {
	scroll-margin-top: 112px;
}

/* Elementor can replace theme spacing with its generated 10px container
   padding. These rules restore the intended clearance below the glass menu. */
body .ttv-v5-home-hero.e-con {
	padding: clamp(118px, 14vh, 158px) var(--ttv-gutter) 42px !important;
}

body .ttv-v5-page-hero.e-con {
	padding: clamp(126px, 16vh, 170px) var(--ttv-gutter) 52px !important;
}

body .ttv-v5-contact-hero.e-con {
	padding: clamp(132px, 17vh, 184px) var(--ttv-gutter) clamp(70px, 8vw, 120px) !important;
}

/* The navigation remains attached to the viewport. After the first movement it
   contracts into a tighter floating bar but never hides in either direction. */
body .ttv-fallback-header {
	position: fixed !important;
	top: 14px !important;
	right: 18px !important;
	left: 18px !important;
	width: auto !important;
	transform: translate3d(0, var(--ttv-header-drift, 0), 0);
	transition:
		top 360ms var(--ttv-ease),
		right 420ms var(--ttv-ease),
		left 420ms var(--ttv-ease),
		min-height 320ms var(--ttv-ease),
		background-color 320ms ease,
		box-shadow 320ms ease,
		transform 220ms ease;
}

.ttv-has-scrolled body .ttv-fallback-header {
	top: 8px !important;
	right: clamp(24px, 3.2vw, 52px) !important;
	left: clamp(24px, 3.2vw, 52px) !important;
	min-height: 58px;
	border-color: rgba(0, 246, 224, 0.15);
	background:
		radial-gradient(260px circle at var(--ttv-nav-x, 50%) var(--ttv-nav-y, 50%), rgba(0, 246, 224, 0.12), transparent 62%),
		rgba(5, 13, 19, 0.9);
	box-shadow: 0 18px 62px rgba(0, 0, 0, 0.36), inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.ttv-has-scrolled .ttv-v5-header-shell {
	width: min(1240px, 100%);
}

body.admin-bar .ttv-fallback-header {
	top: 46px !important;
}

html.ttv-has-scrolled body.admin-bar .ttv-fallback-header {
	top: 40px !important;
}

/* Current page: a quiet glass bead replaces the previous neon underline. */
.ttv-nav-link .elementor-button.is-current::after,
.ttv-fallback-nav a.is-current::after {
	right: auto;
	bottom: 2px;
	left: 50%;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: rgba(0, 246, 224, 0.66);
	box-shadow: 0 0 7px rgba(0, 246, 224, 0.36);
	transform: translateX(-50%) scale(0.86);
	transform-origin: center;
	animation: ttv-current-cue 3.8s ease-in-out infinite;
}

@keyframes ttv-current-cue {
	0%,
	100% {
		opacity: 0.5;
		transform: translateX(-50%) scale(0.78);
	}
	50% {
		opacity: 0.9;
		transform: translateX(-50%) scale(1);
	}
}

/* Every trace moves at the same speed. Its negative phase is assigned by the
   motion engine, producing an organic but visually uniform sequence. */
.ttv-v5-spatial-tile[data-ttv-trace]::before,
.ttv-v5-journey-map span[data-ttv-trace]::before {
	opacity: var(--ttv-trace-opacity, 0.84);
	animation-duration: var(--ttv-trace-duration, 6.2s);
	animation-delay: var(--ttv-trace-delay, 0s);
}

.ttv-v5-stage-image,
.ttv-v5-connection-image,
.ttv-v5-home-portal,
.ttv-v5-page-visual,
.ttv-v5-thesis-visual,
.ttv-v5-featured-visual,
.ttv-v5-contact-next-visual,
.ttv-v5-project-door {
	position: relative !important;
	isolation: isolate;
}

.ttv-neon-runner {
	position: absolute;
	z-index: 8;
	inset: 0;
	padding: 2px;
	border-radius: inherit;
	background:
		conic-gradient(
			from var(--ttv-trace-turn),
			transparent 0 67%,
			rgba(0, 246, 224, 0.1) 72%,
			rgba(0, 246, 224, 0.98) 77%,
			rgba(255, 255, 255, 0.96) 79%,
			rgba(0, 246, 224, 0.84) 82%,
			transparent 87% 100%
		);
	content: "";
	opacity: var(--ttv-trace-opacity, 0.84);
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	filter: drop-shadow(0 0 7px rgba(0, 246, 224, 0.7));
	mix-blend-mode: screen;
	pointer-events: none;
	animation: ttv-neon-trace var(--ttv-trace-duration, 6.2s) linear var(--ttv-trace-delay, 0s) infinite;
}

/* Local homepage motion. Nothing here changes the document scroll position. */
body .ttv-v5-home-hero.e-con {
	--ttv-hero-x: 68%;
	--ttv-hero-y: 38%;
	--ttv-portal-shift-x: 0px;
	--ttv-portal-shift-y: 0px;
}

.ttv-home-ambient {
	position: absolute;
	z-index: 1;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.ttv-home-ambient::before {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(440px circle at var(--ttv-hero-x) var(--ttv-hero-y), rgba(0, 246, 224, 0.105), transparent 64%);
	content: "";
	opacity: 0.88;
	transition: opacity 280ms ease;
}

.ttv-home-ambient::after {
	position: absolute;
	top: -35%;
	left: 54%;
	width: 1px;
	height: 170%;
	background: linear-gradient(transparent, rgba(0, 246, 224, 0.44), rgba(255, 255, 255, 0.22), transparent);
	box-shadow: 0 0 16px rgba(0, 246, 224, 0.28);
	content: "";
	opacity: 0.5;
	transform: rotate(24deg);
	transform-origin: center;
	animation: ttv-home-scan 10.5s ease-in-out infinite alternate;
}

.ttv-home-ambient i {
	position: absolute;
	top: var(--ttv-particle-y);
	left: var(--ttv-particle-x);
	width: var(--ttv-particle-size);
	height: var(--ttv-particle-size);
	border-radius: 50%;
	background: rgba(199, 204, 211, 0.92);
	box-shadow: 0 0 8px rgba(0, 246, 224, 0.86), 0 0 20px rgba(0, 246, 224, 0.22);
	opacity: 0.16;
	animation: ttv-home-particle var(--ttv-particle-duration) ease-in-out var(--ttv-particle-delay) infinite;
}

body .ttv-v5-home-portal.e-con {
	transform: translate3d(var(--ttv-portal-shift-x), var(--ttv-portal-shift-y), 0);
	transition: transform 520ms var(--ttv-ease), box-shadow 420ms ease;
}

body .ttv-v5-home-hero:hover .ttv-v5-home-portal.e-con {
	box-shadow: 0 38px 118px rgba(0, 0, 0, 0.5), 0 0 58px rgba(0, 246, 224, 0.135);
}

body .ttv-v5-home-title em:first-of-type {
	animation: ttv-outline-breathe 6.4s ease-in-out infinite;
}

body .ttv-v5-home-title em:last-of-type {
	background: linear-gradient(100deg, #00b9ae 0%, #00f6e0 34%, #f4f7f8 50%, #00f6e0 64%, #00b9ae 100%);
	background-position: 120% 50%;
	background-size: 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent !important;
	animation: ttv-teal-shimmer 7.8s ease-in-out infinite;
}

body .ttv-v5-signal-band {
	position: relative;
	overflow: hidden;
}

body .ttv-v5-signal-band::after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: -34%;
	width: 30%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), rgba(0, 246, 224, 0.2), transparent);
	content: "";
	pointer-events: none;
	transform: skewX(-18deg);
	animation: ttv-signal-sweep 9.5s ease-in-out infinite;
}

@keyframes ttv-home-scan {
	from { opacity: 0.2; transform: translateX(-18vw) rotate(24deg); }
	to { opacity: 0.62; transform: translateX(18vw) rotate(24deg); }
}

@keyframes ttv-home-particle {
	0%,
	100% { opacity: 0.12; transform: translate3d(0, 8px, 0) scale(0.8); }
	42% { opacity: 0.78; transform: translate3d(4px, -8px, 0) scale(1.2); }
	68% { opacity: 0.34; transform: translate3d(-3px, -2px, 0) scale(0.95); }
}

@keyframes ttv-outline-breathe {
	0%,
	100% { -webkit-text-stroke-color: rgba(199, 204, 211, 0.62); }
	50% { -webkit-text-stroke-color: rgba(0, 246, 224, 0.76); }
}

@keyframes ttv-teal-shimmer {
	0%,
	24% { background-position: 120% 50%; }
	62%,
	100% { background-position: -40% 50%; }
}

@keyframes ttv-signal-sweep {
	0%,
	18% { transform: translateX(0) skewX(-18deg); opacity: 0; }
	46% { opacity: 0.82; }
	72%,
	100% { transform: translateX(560%) skewX(-18deg); opacity: 0; }
}

@media (max-width: 960px) {
	body .ttv-v5-home-hero.e-con,
	body .ttv-v5-page-hero.e-con,
	body .ttv-v5-contact-hero.e-con {
		padding-top: 112px !important;
	}

	.ttv-home-ambient::after {
		left: 48%;
		opacity: 0.34;
	}
}

@media (max-width: 680px) {
	html {
		scroll-padding-top: 98px;
	}

	main section[id],
	main .e-con[id] {
		scroll-margin-top: 98px;
	}

	body .ttv-v5-home-hero.e-con,
	body .ttv-v5-page-hero.e-con,
	body .ttv-v5-contact-hero.e-con {
		padding-top: 98px !important;
	}

	.ttv-home-ambient i:nth-child(n + 5) {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ttv-neon-runner,
	.ttv-home-ambient::after,
	.ttv-home-ambient i,
	body .ttv-v5-home-title em,
	body .ttv-v5-signal-band::after,
	.ttv-nav-link .elementor-button.is-current::after,
	.ttv-fallback-nav a.is-current::after {
		animation: none !important;
	}

	body .ttv-v5-home-portal.e-con {
		transform: none !important;
	}
}

/* --------------------------------------------------------------------------
   5.2 · Immersive interaction layer
   -------------------------------------------------------------------------- */

@property --ttv-trace-turn {
	syntax: "<angle>";
	inherits: false;
	initial-value: 0deg;
}

.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown .sub-menu,
.elementor-nav-menu .sub-menu {
	background:
		radial-gradient(260px circle at var(--ttv-nav-x, 50%) var(--ttv-nav-y, 0%), rgba(0, 246, 224, 0.13), transparent 64%),
		linear-gradient(145deg, rgba(10, 24, 33, 0.96), rgba(4, 11, 16, 0.92)) !important;
	box-shadow:
		0 28px 90px rgba(0, 0, 0, 0.46),
		inset 0 1px 0 rgba(255, 255, 255, 0.08),
		inset 0 0 42px rgba(0, 246, 224, 0.025) !important;
}

.elementor-nav-menu--dropdown a,
.elementor-nav-menu .sub-menu a {
	border: 1px solid transparent !important;
}

.elementor-nav-menu--dropdown a:hover,
.elementor-nav-menu .sub-menu a:hover {
	border-color: rgba(0, 246, 224, 0.16) !important;
	box-shadow: inset 3px 0 0 rgba(0, 246, 224, 0.72);
}

/* The system cursor remains unchanged; these layers only leave a soft trail. */
body .ttv-pointer-aura {
	width: 64px;
	height: 64px;
	border-color: rgba(0, 246, 224, 0.42);
	background: radial-gradient(circle, rgba(0, 246, 224, 0.1), rgba(0, 246, 224, 0.025) 46%, transparent 68%);
	box-shadow: 0 0 30px rgba(0, 246, 224, 0.12), inset 0 0 16px rgba(0, 246, 224, 0.045);
}

.ttv-pointer-active .ttv-pointer-aura {
	opacity: 0.68;
}

.ttv-pointer-over-action .ttv-pointer-aura {
	width: 80px;
	height: 80px;
	margin: -8px 0 0 -8px;
	border-color: rgba(0, 246, 224, 0.72);
	background: radial-gradient(circle, rgba(0, 246, 224, 0.14), transparent 68%);
}

.ttv-pointer-spark {
	position: fixed;
	z-index: 10001;
	top: 0;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--ttv-white);
	box-shadow: 0 0 5px var(--ttv-white), 0 0 14px rgba(0, 246, 224, 0.92);
	opacity: 0;
	pointer-events: none;
	transition: opacity 160ms ease, box-shadow 180ms ease;
}

.ttv-pointer-active .ttv-pointer-spark {
	opacity: 0.82;
}

.ttv-pointer-over-action .ttv-pointer-spark {
	box-shadow: 0 0 7px var(--ttv-white), 0 0 20px rgba(0, 246, 224, 1);
}

/* Slow optical breathing happens on an inner compositor layer so it never
   changes document flow or competes with the native scroll position. */
.ttv-depth-image > .elementor-widget-container {
	transform-origin: 50% 50%;
	animation: ttv-depth-breathe 14s ease-in-out var(--ttv-zoom-delay, 0s) infinite alternate;
	will-change: transform;
}

.ttv-v5-project-door-image img,
.ttv-v5-project-door:hover .ttv-v5-project-door-image img {
	transform: translate3d(var(--ttv-depth-x, 0), var(--ttv-depth-y, 0), 0) scale(var(--ttv-depth-scale, 1.085));
	transition: transform 180ms linear, filter 500ms ease;
}

.ttv-v5-project-door:hover .ttv-v5-project-door-image img {
	--ttv-depth-scale: 1.12;
}

@keyframes ttv-depth-breathe {
	from { transform: scale(1.001); }
	to { transform: scale(var(--ttv-depth-breathe-scale, 1.026)); }
}

/* A continuous travelling edge makes both connected systems feel alive
   without relying on hover. */
.ttv-v5-spatial-tile::before,
.ttv-v5-journey-map span::before {
	position: absolute;
	z-index: 5;
	inset: -1px;
	padding: 1px;
	border-radius: inherit;
	background:
		conic-gradient(
			from var(--ttv-trace-turn),
			transparent 0 72%,
			rgba(0, 246, 224, 0.16) 76%,
			rgba(0, 246, 224, 0.98) 80%,
			rgba(255, 255, 255, 0.92) 82%,
			transparent 87% 100%
		);
	content: "";
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	animation: ttv-neon-trace 5.4s linear infinite;
	filter: drop-shadow(0 0 5px rgba(0, 246, 224, 0.58));
}

.ttv-v5-spatial-tile:nth-child(2n)::before,
.ttv-v5-journey-map span:nth-child(2n)::before {
	animation-delay: -1.8s;
}

.ttv-v5-spatial-tile:nth-child(3n)::before,
.ttv-v5-journey-map span:nth-child(3n)::before {
	animation-delay: -3.6s;
}

@keyframes ttv-neon-trace {
	to { --ttv-trace-turn: 360deg; }
}

body .ttv-v5-spatial-tile.e-con {
	background:
		radial-gradient(460px circle at var(--ttv-card-x, 50%) var(--ttv-card-y, 50%), rgba(0, 246, 224, 0.095), transparent 46%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
		var(--ttv-ink-3) !important;
	box-shadow: 7px 7px 0 rgba(0, 246, 224, 0.028), 14px 14px 0 rgba(255, 255, 255, 0.018);
}

body .ttv-v5-spatial-tile.ttv-v5-tile-accent {
	background:
		radial-gradient(420px circle at var(--ttv-card-x, 50%) var(--ttv-card-y, 50%), rgba(255, 255, 255, 0.24), transparent 48%),
		linear-gradient(145deg, #00f6e0, #00b9ae) !important;
}

.ttv-v5-journey-map span {
	overflow: hidden;
	border-radius: 4px;
	box-shadow: 6px 6px 0 rgba(0, 246, 224, 0.035), 12px 12px 0 rgba(255, 255, 255, 0.016);
}

.ttv-v5-journey-map span:nth-child(2),
.ttv-v5-journey-map span:nth-child(5) {
	transform: translateY(8px);
}

.ttv-v5-journey-map span:hover {
	transform: translate3d(6px, -3px, 0);
	box-shadow: 10px 12px 0 rgba(0, 246, 224, 0.06), 18px 20px 0 rgba(255, 255, 255, 0.022), 0 24px 70px rgba(0, 0, 0, 0.28);
}

body .ttv-v5-proof-grid.e-con,
body .ttv-v5-projects.e-con,
body .ttv-v5-principle-mosaic.e-con {
	gap: 24px !important;
}

body .ttv-v5-project-door.e-con,
body .ttv-v5-editorial-card.e-con {
	box-shadow:
		7px 7px 0 rgba(0, 246, 224, 0.038),
		14px 14px 0 rgba(255, 255, 255, 0.022),
		0 28px 74px rgba(0, 0, 0, 0.16);
}

body .ttv-v5-project-door.e-con:hover,
body .ttv-v5-editorial-card.e-con:hover {
	box-shadow:
		10px 10px 0 rgba(0, 246, 224, 0.075),
		20px 20px 0 rgba(255, 255, 255, 0.028),
		0 34px 90px rgba(0, 0, 0, 0.34);
}

body .ttv-v5-editorial-grid.e-con {
	gap: 22px !important;
}

@media (max-width: 960px) {
	.ttv-mobile-menu nav {
		border-color: rgba(0, 246, 224, 0.2);
		background:
			radial-gradient(360px circle at 86% 4%, rgba(0, 246, 224, 0.16), transparent 62%),
			linear-gradient(145deg, rgba(10, 24, 33, 0.97), rgba(4, 11, 16, 0.94));
		box-shadow: 0 32px 100px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.08);
		-webkit-backdrop-filter: saturate(145%) blur(20px);
	}

	.ttv-mobile-menu nav a {
		opacity: 0;
		transform: translateY(-8px);
		transition:
			opacity 220ms ease,
			transform 360ms var(--ttv-ease),
			color 200ms ease,
			padding 260ms var(--ttv-ease),
			background-color 200ms ease;
	}

	.ttv-mobile-menu.is-open nav a {
		opacity: 1;
		transform: translateY(0);
		transition-delay: calc(var(--ttv-menu-index, 0) * 38ms);
	}

	.ttv-mobile-menu nav a.is-current {
		background: rgba(0, 246, 224, 0.08);
		color: var(--ttv-teal);
	}

	.ttv-depth-image > .elementor-widget-container {
		animation-duration: 18s;
	}
}

@media (max-width: 680px) {
	.ttv-v5-journey-map span:nth-child(2),
	.ttv-v5-journey-map span:nth-child(5) {
		transform: none;
	}

	.ttv-v5-spatial-tile::before,
	.ttv-v5-journey-map span::before {
		animation-duration: 6.8s;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ttv-pointer-aura,
	.ttv-pointer-spark,
	.ttv-page-transition {
		display: none !important;
	}

	.ttv-depth-image > .elementor-widget-container,
	.ttv-v5-spatial-tile::before,
	.ttv-v5-journey-map span::before {
		animation: none !important;
	}
}

/* --------------------------------------------------------------------------
   5.5 · Full consistency pass + spacious page handoff
   -------------------------------------------------------------------------- */

:root {
	--ttv-gutter: clamp(34px, 5.6vw, 104px);
	--ttv-section-space: clamp(112px, 12vw, 200px);
}

/* A quiet backdrop under the fixed glass navigation keeps content from
   visually colliding with it while preserving native document scrolling. */
body::before {
	position: fixed;
	z-index: 45;
	top: 0;
	right: 0;
	left: 0;
	height: 126px;
	background: linear-gradient(180deg, rgba(4, 10, 14, 0.98) 0%, rgba(4, 10, 14, 0.68) 48%, transparent 100%);
	content: "";
	pointer-events: none;
}

.elementor-location-header {
	z-index: 1000;
}

body .ttv-v5-service-atlas.e-con,
body .ttv-v5-journey-overview.e-con,
body .ttv-v5-proof.e-con,
body .ttv-v5-editorial.e-con,
body .ttv-v5-origin.e-con,
body .ttv-v5-range.e-con,
body .ttv-v5-featured.e-con,
body .ttv-v5-contact-next.e-con,
body .ttv-v5-connection.e-con,
body .ttv-v5-character.e-con,
body .ttv-v5-loop-statement.e-con,
body .ttv-v5-closing.e-con {
	padding: var(--ttv-section-space) var(--ttv-gutter) !important;
}

body .ttv-v5-projects.e-con,
body .ttv-v5-principle-mosaic.e-con,
body .ttv-v5-journey-stage.e-con {
	padding: clamp(90px, 10vw, 164px) var(--ttv-gutter) !important;
}

body .ttv-v5-spatial-grid.e-con,
body .ttv-v5-proof-grid.e-con,
body .ttv-v5-projects.e-con,
body .ttv-v5-principle-mosaic.e-con,
body .ttv-v5-editorial-grid.e-con {
	gap: clamp(24px, 2.2vw, 38px) !important;
}

/* The sixth capability now belongs to the same visual family as the other
   five, including on pages generated with the previous importer. */
body .ttv-v5-spatial-tile.ttv-v5-tile-accent {
	background:
		radial-gradient(460px circle at var(--ttv-card-x, 50%) var(--ttv-card-y, 50%), rgba(0, 246, 224, 0.095), transparent 46%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012)),
		var(--ttv-ink-3) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-spatial-tile.ttv-v5-tile-accent .ttv-v5-tile-number,
body .ttv-v5-spatial-tile.ttv-v5-tile-accent .ttv-v5-tile-title {
	color: var(--ttv-silver) !important;
}

body .ttv-v5-spatial-tile.ttv-v5-tile-accent .ttv-v5-tile-number {
	color: var(--ttv-teal) !important;
}

body .ttv-v5-spatial-tile.ttv-v5-tile-accent .ttv-v5-tile-copy,
body .ttv-v5-spatial-tile.ttv-v5-tile-accent .ttv-v5-tile-meta {
	color: rgba(199, 204, 211, 0.64) !important;
}

/* Constant low-energy glow makes the capability and perspective systems feel
   connected; the travelling edge remains staggered and independent of hover. */
body .ttv-v5-spatial-tile.e-con,
body .ttv-v5-editorial-card.e-con {
	box-shadow:
		0 0 0 1px rgba(0, 246, 224, 0.08),
		0 0 34px rgba(0, 246, 224, 0.055),
		8px 8px 0 rgba(0, 246, 224, 0.026),
		16px 16px 0 rgba(255, 255, 255, 0.016),
		0 30px 84px rgba(0, 0, 0, 0.2) !important;
}

body .ttv-v5-spatial-tile.e-con:hover,
body .ttv-v5-editorial-card.e-con:hover {
	box-shadow:
		0 0 0 1px rgba(0, 246, 224, 0.18),
		0 0 48px rgba(0, 246, 224, 0.1),
		10px 10px 0 rgba(0, 246, 224, 0.05),
		20px 20px 0 rgba(255, 255, 255, 0.02),
		0 38px 96px rgba(0, 0, 0, 0.34) !important;
}

/* Force every project image to fill its doorway. Elementor's generated image
   height can otherwise win and leave a dark, apparently unloaded lower half. */
body .ttv-v5-project-door.e-con {
	padding: 0 !important;
}

body .ttv-v5-project-door-image,
body .ttv-v5-project-door-image.elementor-widget-image,
body .ttv-v5-project-door-image > .elementor-widget-container {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

body .ttv-v5-project-door-image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center !important;
}

/* Image-led editorial cards add hospitality atmosphere without sacrificing
   the calm reading hierarchy. */
body .ttv-v5-editorial-card-has-image.e-con {
	min-height: 590px !important;
	padding: 0 !important;
	overflow: hidden !important;
}

body .ttv-v5-card-image,
body .ttv-v5-card-image.elementor-widget-image,
body .ttv-v5-card-image > .elementor-widget-container {
	display: block !important;
	width: 100% !important;
	height: clamp(190px, 18vw, 250px) !important;
	min-height: clamp(190px, 18vw, 250px) !important;
	margin: 0 !important;
	overflow: hidden !important;
}

body .ttv-v5-card-image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	filter: brightness(0.58) saturate(0.78) contrast(1.14);
	transform: translate3d(var(--ttv-depth-x, 0), var(--ttv-depth-y, 0), 0) scale(1.07);
	transition: transform 900ms var(--ttv-ease), filter 500ms ease;
}

body .ttv-v5-editorial-card-has-image:hover .ttv-v5-card-image img {
	filter: brightness(0.68) saturate(0.92) contrast(1.09);
	transform: translate3d(var(--ttv-depth-x, 0), var(--ttv-depth-y, 0), 0) scale(1.11);
}

body .ttv-v5-editorial-card-has-image.e-con > :not(.ttv-v5-card-image):not(.ttv-neon-runner) {
	width: auto !important;
	margin-right: clamp(30px, 3vw, 46px) !important;
	margin-left: clamp(30px, 3vw, 46px) !important;
}

body .ttv-v5-editorial-card-has-image .ttv-index {
	margin-top: clamp(28px, 3vw, 42px) !important;
}

body .ttv-v5-editorial-card-has-image .ttv-item-title {
	margin-top: auto !important;
}

body .ttv-v5-editorial-card-has-image .ttv-item-copy {
	margin-bottom: clamp(28px, 3vw, 42px) !important;
}

/* Rebalance the closing scene so its call to action sits deliberately on the
   right instead of drifting into the visual centre. */
body .ttv-v5-closing.e-con {
	grid-template-columns: minmax(360px, 0.84fr) minmax(0, 1.16fr) !important;
	column-gap: clamp(64px, 8vw, 144px) !important;
}

body .ttv-v5-closing-copy.e-con {
	justify-self: end !important;
	align-items: flex-start !important;
	justify-content: center !important;
	width: min(100%, 780px) !important;
	max-width: 780px !important;
}

/* Menu links respond as glass surfaces only. There is no travelling neon line
   or active dot beneath them. */
.ttv-nav-link .elementor-button::after,
.ttv-fallback-nav a::after {
	display: none !important;
	content: none !important;
}

.ttv-nav-link .elementor-button:hover,
.ttv-nav-link .elementor-button:focus-visible,
.ttv-fallback-nav a:hover,
.ttv-fallback-nav a:focus-visible {
	border-color: rgba(255, 255, 255, 0.14) !important;
	background: rgba(255, 255, 255, 0.065) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 8px 24px rgba(0, 0, 0, 0.16);
	color: var(--ttv-white) !important;
}

.ttv-nav-link .elementor-button.is-current,
.ttv-fallback-nav a.is-current {
	border-color: rgba(0, 246, 224, 0.18) !important;
	background: rgba(0, 246, 224, 0.075) !important;
	box-shadow: inset 0 0 0 1px rgba(0, 246, 224, 0.035);
}

/* Keep the native cursor. Only a borderless light field appears while the
   pointer is actually moving; there is no ring, dot or hover expansion. */
body .ttv-pointer-aura {
	display: block;
	width: 96px;
	height: 96px;
	margin: 0;
	border: 0 !important;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 246, 224, 0.15) 0%, rgba(0, 246, 224, 0.055) 38%, transparent 72%);
	box-shadow: none !important;
	filter: blur(3px);
	opacity: 0 !important;
	transition: opacity 180ms ease !important;
}

.ttv-pointer-moving .ttv-pointer-aura,
.ttv-pointer-moving.ttv-pointer-over-action .ttv-pointer-aura {
	opacity: 0.62 !important;
}

.ttv-pointer-spark {
	display: none !important;
}

/* Slower compact handoff: the brand card pops, the percentage bridges both
   documents, and the page itself opens with opacity only—never translation. */
.ttv-page-transition {
	background: rgba(2, 8, 12, 0.22);
	transition: opacity 280ms ease;
}

.ttv-arrived .ttv-page-transition {
	transition-duration: 300ms;
}

.ttv-transition-brand {
	opacity: 0;
	transform: scale(0.94);
	transition: transform 380ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 220ms ease;
	will-change: transform, opacity;
}

.ttv-loader-prep .ttv-transition-brand {
	opacity: 0 !important;
	transform: scale(0.94) !important;
}

.ttv-transition-pending .ttv-transition-brand,
.ttv-arriving .ttv-transition-brand,
.ttv-leaving .ttv-transition-brand {
	transform: scale(1);
}

.ttv-arrived .ttv-transition-brand {
	opacity: 0;
	transform: scale(1.035);
	transition-duration: 320ms;
}

.ttv-transition-brand > i::after {
	transition: width 110ms linear;
}

.ttv-transition-pending main,
.ttv-arriving main {
	opacity: 0.84;
}

.ttv-page-opening main {
	animation: ttv-page-opening 720ms cubic-bezier(0.2, 0.78, 0.2, 1) both;
}

@keyframes ttv-page-opening {
	from { opacity: 0.84; }
	to { opacity: 1; }
}

@media (max-width: 960px) {
	:root {
		--ttv-gutter: clamp(26px, 5vw, 48px);
		--ttv-section-space: clamp(88px, 12vw, 132px);
	}

	body .ttv-v5-closing.e-con {
		grid-template-columns: 1fr !important;
		row-gap: 72px !important;
	}

	body .ttv-v5-closing-copy.e-con {
		justify-self: stretch !important;
		width: 100% !important;
		max-width: none !important;
	}
}

@media (max-width: 680px) {
	:root {
		--ttv-gutter: 22px;
		--ttv-section-space: 82px;
	}

	body::before {
		height: 104px;
	}

	body .ttv-v5-service-atlas.e-con,
	body .ttv-v5-journey-overview.e-con,
	body .ttv-v5-proof.e-con,
	body .ttv-v5-editorial.e-con,
	body .ttv-v5-origin.e-con,
	body .ttv-v5-range.e-con,
	body .ttv-v5-featured.e-con,
	body .ttv-v5-contact-next.e-con,
	body .ttv-v5-connection.e-con,
	body .ttv-v5-character.e-con,
	body .ttv-v5-loop-statement.e-con,
	body .ttv-v5-closing.e-con,
	body .ttv-v5-projects.e-con,
	body .ttv-v5-principle-mosaic.e-con,
	body .ttv-v5-journey-stage.e-con {
		padding-right: var(--ttv-gutter) !important;
		padding-left: var(--ttv-gutter) !important;
	}

	body .ttv-v5-editorial-card-has-image.e-con {
		min-height: 540px !important;
	}

	body .ttv-v5-card-image,
	body .ttv-v5-card-image.elementor-widget-image,
	body .ttv-v5-card-image > .elementor-widget-container {
		height: 220px !important;
		min-height: 220px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ttv-page-opening main {
		animation: none !important;
		opacity: 1 !important;
	}
}

/* Heading safety: Exo 2 has tall caps and the earlier editorial line heights
   could be clipped by Elementor's widget wrappers at particular widths. */
body .ttv-v5-home-title,
body .ttv-v5-page-title,
body .ttv-v5-section-title,
body .ttv-v5-thesis-title,
body .ttv-v5-character-title,
body .ttv-v5-stage-title,
body .ttv-v5-range-title,
body .ttv-v5-contact-title,
body .ttv-v5-closing-title,
body .ttv-footer-prompt,
body .ttv-v5-home-title > .elementor-widget-container,
body .ttv-v5-page-title > .elementor-widget-container,
body .ttv-v5-section-title > .elementor-widget-container,
body .ttv-v5-thesis-title > .elementor-widget-container,
body .ttv-v5-character-title > .elementor-widget-container,
body .ttv-v5-stage-title > .elementor-widget-container,
body .ttv-v5-range-title > .elementor-widget-container,
body .ttv-v5-contact-title > .elementor-widget-container,
body .ttv-v5-closing-title > .elementor-widget-container,
body .ttv-footer-prompt > .elementor-widget-container,
body .ttv-v5-home-title .elementor-heading-title,
body .ttv-v5-page-title .elementor-heading-title,
body .ttv-v5-section-title .elementor-heading-title,
body .ttv-v5-thesis-title .elementor-heading-title,
body .ttv-v5-character-title .elementor-heading-title,
body .ttv-v5-stage-title .elementor-heading-title,
body .ttv-v5-range-title .elementor-heading-title,
body .ttv-v5-contact-title .elementor-heading-title,
body .ttv-v5-closing-title .elementor-heading-title,
body .ttv-footer-prompt .elementor-heading-title {
	overflow: visible !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}

body .ttv-v5-home-title .elementor-heading-title,
body .ttv-v5-page-title .elementor-heading-title,
body .ttv-v5-thesis-title .elementor-heading-title,
body .ttv-v5-character-title .elementor-heading-title,
body .ttv-v5-stage-title .elementor-heading-title,
body .ttv-v5-contact-title .elementor-heading-title,
body .ttv-v5-closing-title .elementor-heading-title {
	padding: 0.08em 0.025em 0.13em !important;
}

body .ttv-v5-home-title,
body .ttv-v5-thesis-title,
body .ttv-v5-character-title {
	line-height: 0.92 !important;
}

body .ttv-v5-page-title,
body .ttv-v5-stage-title,
body .ttv-v5-contact-title,
body .ttv-v5-closing-title {
	line-height: 0.9 !important;
}

body .ttv-v5-section-title,
body .ttv-v5-range-title,
body .ttv-footer-prompt {
	line-height: 0.97 !important;
}

body .ttv-v5-home-hero-copy.e-con,
body .ttv-v5-page-copy.e-con,
body .ttv-v5-thesis-copy.e-con,
body .ttv-v5-stage-copy.e-con,
body .ttv-v5-featured-copy.e-con,
body .ttv-v5-contact-copy.e-con,
body .ttv-v5-contact-next-copy.e-con,
body .ttv-v5-closing-copy.e-con {
	overflow: visible !important;
}

/* Larger, consistent page imagery. These are desktop-only proportions; the
   established tablet and mobile rules still switch every visual to full width. */
@media (min-width: 961px) {
	body .ttv-v5-page-hero.e-con {
		grid-template-columns: 116px minmax(0, 0.9fr) minmax(440px, 1fr) !important;
	}

	body .ttv-v5-page-visual.e-con {
		min-height: min(74svh, 840px) !important;
	}

	body .ttv-v5-connection.e-con {
		grid-template-columns: minmax(480px, 1.08fr) minmax(0, 0.92fr) !important;
	}

	body .ttv-v5-journey-stage.e-con {
		grid-template-columns: 104px minmax(0, 0.82fr) minmax(440px, 1fr) !important;
	}

	body .ttv-v5-stage-image {
		height: 62svh !important;
		min-height: 520px !important;
	}

	body .ttv-v5-featured.e-con,
	body .ttv-v5-contact-next.e-con {
		grid-template-columns: minmax(480px, 1.08fr) minmax(0, 0.92fr) !important;
	}

	body .ttv-v5-featured-visual,
	body .ttv-v5-contact-next-visual {
		height: min(76svh, 860px) !important;
		min-height: 580px !important;
	}
}

@media (min-width: 961px) and (max-width: 1180px) {
	body .ttv-v5-page-title {
		font-size: clamp(58px, 7.2vw, 92px) !important;
	}

	body .ttv-v5-contact-title,
	body .ttv-v5-stage-title,
	body .ttv-v5-character-title {
		font-size: clamp(58px, 8.2vw, 102px) !important;
	}

	body .ttv-v5-page-hero.e-con,
	body .ttv-v5-journey-stage.e-con {
		grid-template-columns: 82px minmax(0, 0.88fr) minmax(390px, 1fr) !important;
		column-gap: clamp(24px, 3vw, 42px) !important;
	}
}

/* The moving neon stays on a fine inset edge instead of visually cutting
   across the image, which is especially important on narrower frames. */
.ttv-neon-runner-image {
	inset: 4px;
	padding: 1px;
	border-radius: 2px;
	opacity: 0.58;
	filter: drop-shadow(0 0 5px rgba(0, 246, 224, 0.48));
	mix-blend-mode: normal;
}

.ttv-neon-runner-card {
	inset: 2px;
	padding: 1px;
	opacity: 0.68;
}

@media (max-width: 680px) {
	body .ttv-v5-home-title,
	body .ttv-v5-page-title,
	body .ttv-v5-section-title,
	body .ttv-v5-thesis-title,
	body .ttv-v5-character-title,
	body .ttv-v5-stage-title,
	body .ttv-v5-contact-title,
	body .ttv-v5-closing-title {
		line-height: 0.96 !important;
	}

	.ttv-neon-runner-image {
		inset: 3px;
		opacity: 0.48;
	}
}

/* --------------------------------------------------------------------------
   5.6 · Balanced Services page + Control Center bridge
   -------------------------------------------------------------------------- */

body .ttv-v5-service-atlas-page.e-con {
	padding-top: var(--ttv-section-space, 150px) !important;
	padding-bottom: var(--ttv-section-space, 150px) !important;
}

body .ttv-v5-service-atlas-page .ttv-v5-atlas-head.e-con {
	grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.62fr) !important;
	column-gap: clamp(42px, 8vw, 140px) !important;
}

body .ttv-v5-service-atlas-page .ttv-v5-atlas-intro {
	align-self: end;
	max-width: 520px;
	padding: 0 0 10px 26px;
	border-left: 1px solid var(--ttv-teal);
}

body .ttv-v5-service-atlas-page .ttv-v5-spatial-grid.e-con {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	grid-auto-rows: minmax(380px, auto) !important;
	gap: 20px !important;
}

body .ttv-v5-service-atlas-page .ttv-v5-spatial-tile.e-con,
body .ttv-v5-service-atlas-page .ttv-v5-spatial-tile.ttv-v5-tile-wide,
body .ttv-v5-service-atlas-page .ttv-v5-spatial-tile.ttv-v5-tile-tall {
	grid-column: auto !important;
	grid-row: auto !important;
	min-height: 380px !important;
}

body .ttv-v5-service-atlas-page .ttv-v5-spatial-tile.e-con:nth-child(even) {
	background:
		radial-gradient(440px circle at var(--ttv-card-x, 50%) var(--ttv-card-y, 50%), rgba(0, 246, 224, 0.08), transparent 48%),
		linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)),
		var(--ttv-ink-2) !important;
}

body .ttv-v5-service-lenses.e-con {
	display: flex !important;
	flex-direction: column !important;
	gap: clamp(52px, 7vw, 100px) !important;
	padding: var(--ttv-section-space, 150px) var(--ttv-gutter) !important;
	background:
		radial-gradient(780px circle at 88% 8%, rgba(0, 246, 224, 0.075), transparent 64%),
		var(--ttv-ink) !important;
	color: var(--ttv-silver) !important;
}

body .ttv-v5-service-lenses-head.e-con {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: end !important;
	width: auto !important;
}

body .ttv-v5-service-lenses-head .ttv-eyebrow {
	grid-column: 1 / -1 !important;
}

body .ttv-v5-service-lenses-grid.e-con {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 18px !important;
	width: auto !important;
}

body .ttv-v5-service-lenses-grid .ttv-v5-project-door.e-con {
	min-height: min(64svh, 680px) !important;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

body .ttv-v5-service-lenses-grid .ttv-v5-project-door:nth-child(2) {
	margin-top: 46px;
}

body .ttv-v5-service-lenses-grid .ttv-v5-project-door:nth-child(3) {
	margin-top: 92px;
}

body .ttv-v5-service-lenses-grid .ttv-v5-door-title {
	font-size: clamp(28px, 3vw, 48px) !important;
}

body .ttv-v5-service-lenses + .ttv-v5-connection.e-con {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

@media (max-width: 960px) {
	body .ttv-v5-service-atlas-page .ttv-v5-atlas-head.e-con,
	body .ttv-v5-service-lenses-head.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-service-atlas-page .ttv-v5-atlas-intro {
		max-width: 680px;
	}

	body .ttv-v5-service-lenses-grid.e-con {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	body .ttv-v5-service-lenses-grid .ttv-v5-project-door:nth-child(2),
	body .ttv-v5-service-lenses-grid .ttv-v5-project-door:nth-child(3) {
		margin-top: 0;
	}

	body .ttv-v5-service-lenses-grid .ttv-v5-project-door:last-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 680px) {
	body .ttv-v5-service-atlas-page .ttv-v5-spatial-grid.e-con,
	body .ttv-v5-service-lenses-grid.e-con {
		grid-template-columns: 1fr !important;
	}

	body .ttv-v5-service-lenses-grid .ttv-v5-project-door:last-child {
		grid-column: auto;
	}

	body .ttv-v5-service-lenses-grid .ttv-v5-project-door.e-con {
		min-height: 560px !important;
	}
}
