/* Escena panorámica a pantalla completa */

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

:root {
	--font-body: "Outfit", system-ui, -apple-system, sans-serif;
	--font-title: "Michroma", "Outfit", system-ui, sans-serif;
	--title-weight: 400;
	--title-tracking: 0.05em;
	--title-scale-x: 1;
	--title-scale-y: 1;
	--title-desc-gap: clamp(1rem, 2.25vw, 1.625rem);
	--card-action-gap: clamp(0.85rem, 2vw, 1.25rem);
	--logo-inset: clamp(0.75rem, 2vw, 1.25rem);
	--logo-size: clamp(4.2rem, 9.6vw, 6rem);
	--cursor-hotspot: 2 2;
	--cursor-size: 28px;
	--cursor-target: default;
	--cursor-target-orange: pointer;
	--tech-radius: 4px;
	--tech-grid-color: rgba(56, 189, 248, 0.36);
	--tech-grid-fill: rgba(56, 189, 248, 0.04);
	--tech-grid-size: 6px 6px;
}

@media (min-width: 1025px) {
	:root {
		--logo-size: clamp(7rem, 16vw, 10rem);
	}
}

html,
body {
	height: 100%;
	margin: 0;
	overflow: hidden;
}

body {
	font-family: var(--font-body);
	background: #000;
	color: #e2e8f0;
	cursor: var(--cursor-target);
}

/* Loader — chip trazado con láser */

.page-loader {
	position: fixed;
	inset: 0;
	z-index: 20000;
	display: grid;
	place-items: center;
	background:
		radial-gradient(ellipse at 50% 42%, rgba(56, 189, 248, 0.09), transparent 48%),
		radial-gradient(ellipse at 58% 58%, rgba(255, 102, 0, 0.08), transparent 42%),
		rgba(5, 8, 15, 0.8);
	transition: opacity 0.5s ease, visibility 0.5s ease;
}

.page-loader.is-done {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.page-loader__stage {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	padding: 1.5rem;
}

.page-loader__chip {
	width: min(62vw, 220px);
	height: auto;
	overflow: visible;
	filter: drop-shadow(0 0 18px rgba(56, 189, 248, 0.22));
}

.page-loader__path {
	fill: none;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: page-loader-draw 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.page-loader__path--body {
	animation-delay: 0.05s;
}

.page-loader__path--notch {
	animation-delay: 0.35s;
	animation-duration: 0.45s;
}

.page-loader__path--pins {
	animation-delay: 0.55s;
	animation-duration: 0.75s;
}

.page-loader__path--die {
	animation-delay: 1.05s;
	animation-duration: 0.55s;
}

.page-loader__path--trace {
	animation-delay: 1.35s;
	animation-duration: 0.85s;
}

.page-loader__path--pads {
	animation-delay: 1.85s;
	animation-duration: 0.4s;
}

.page-loader__laser-group {
	transform-origin: 0 0;
	animation: page-loader-laser 2.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.page-loader__laser {
	opacity: 0.95;
}

.page-loader__laser-core {
	opacity: 1;
}

.page-loader__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.45rem;
	min-width: min(70vw, 16rem);
}

.page-loader__brand {
	margin: 0;
	font-family: var(--font-title);
	font-size: 0.92rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
}

.page-loader__status {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(148, 163, 184, 0.95);
}

.page-loader__bar {
	position: relative;
	width: 100%;
	height: 2px;
	margin-top: 0.35rem;
	overflow: hidden;
	background: rgba(56, 189, 248, 0.15);
	border-radius: 999px;
}

.page-loader__bar-fill {
	display: block;
	width: 100%;
	height: 100%;
	transform-origin: left center;
	transform: scaleX(0);
	background: linear-gradient(90deg, #38bdf8, #e2e8f0, #ff6600);
	box-shadow: 0 0 10px rgba(56, 189, 248, 0.55);
	animation: page-loader-bar 2.35s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes page-loader-draw {
	to {
		stroke-dashoffset: 0;
	}
}

@keyframes page-loader-bar {
	to {
		transform: scaleX(1);
	}
}

@keyframes page-loader-laser {
	0% {
		opacity: 0;
		transform: translate(54px, 54px);
	}

	4% {
		opacity: 1;
	}

	18% {
		transform: translate(146px, 54px);
	}

	32% {
		transform: translate(146px, 146px);
	}

	46% {
		transform: translate(54px, 146px);
	}

	55% {
		transform: translate(54px, 54px);
	}

	62% {
		transform: translate(36px, 70px);
	}

	68% {
		transform: translate(164px, 70px);
	}

	74% {
		transform: translate(74px, 74px);
	}

	82% {
		transform: translate(126px, 74px);
	}

	90% {
		transform: translate(80px, 110px);
	}

	96% {
		transform: translate(120px, 120px);
		opacity: 1;
	}

	100% {
		transform: translate(100px, 100px);
		opacity: 0;
	}
}

body.is-loading {
	overflow: hidden;
}

body.is-loading .custom-cursor {
	opacity: 0;
}

/* Títulos — Michroma (geométrica ancha / futurista) */

.site-tagline,
.section-preview__title,
.menu-preview__title,
.contact-lightbox__title,
.content-lightbox__title,
.contact-lightbox__subtitle,
.lb-card__title,
.portfolio-card__title {
	font-family: var(--font-title);
	font-weight: var(--title-weight);
	letter-spacing: var(--title-tracking);
}

a,
.site-logo,
.section-hotspot,
.corner-float .whatsapp-float,
.corner-float .portfolio-float,
.whatsapp-float,
.portfolio-float {
	cursor: var(--cursor-target-orange);
}

/* Cursor personalizado — puntero tecnológico (solo desktop con mouse) */

html.custom-cursor-ready,
html.custom-cursor-ready * {
	cursor: none !important;
}

.custom-cursor {
	--cursor-size: 28px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	width: var(--cursor-size);
	height: var(--cursor-size);
	margin: 0;
	padding: 0;
	color: #e8eef5;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55));
	transform: translate3d(-100px, -100px, 0);
	will-change: transform;
}

html.custom-cursor-ready .custom-cursor:not(.is-hidden) {
	opacity: 1;
	visibility: visible;
}

.custom-cursor.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.custom-cursor.is-hot {
	color: #ff6600;
	filter:
		drop-shadow(0 0 6px rgba(255, 102, 0, 0.55))
		drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
}

.custom-cursor.is-hot .custom-cursor__svg {
	animation: custom-cursor-heartbeat 1.4s ease-in-out infinite;
	transform-origin: 4px 2px;
}

.custom-cursor.is-hot .custom-cursor__circuit {
	stroke: #ffb067;
}

.custom-cursor.is-hot .custom-cursor__node--a {
	fill: #ff8533;
}

.custom-cursor.is-hot .custom-cursor__node--b,
.custom-cursor.is-hot .custom-cursor__node--c {
	fill: #ffd0a8;
}

.custom-cursor__svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}

@keyframes custom-cursor-heartbeat {
	0%,
	100% {
		transform: scale(1);
		filter: drop-shadow(0 0 0 rgba(255, 102, 0, 0));
	}

	14% {
		transform: scale(1.12);
		filter: drop-shadow(0 0 6px rgba(255, 102, 0, 0.7));
	}

	28% {
		transform: scale(1);
		filter: drop-shadow(0 0 2px rgba(255, 102, 0, 0.25));
	}

	42% {
		transform: scale(1.08);
		filter: drop-shadow(0 0 5px rgba(255, 133, 51, 0.55));
	}

	56%,
	100% {
		transform: scale(1);
		filter: drop-shadow(0 0 0 rgba(255, 102, 0, 0));
	}
}

@media (hover: none), (pointer: coarse), (max-width: 1024px) {
	.custom-cursor {
		display: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
	}

	html.custom-cursor-ready,
	html.custom-cursor-ready * {
		cursor: auto !important;
	}
}

.pan-scene {
	position: fixed;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #000;
	cursor: var(--cursor-target);
	touch-action: none;
	user-select: none;
}

.pan-scene:active,
.pan-scene.is-dragging {
	cursor: grabbing;
}

.pan-scene--reduced {
	cursor: var(--cursor-target);
}

.pan-stage {
	position: absolute;
	top: 0;
	left: 0;
	width: calc(100% * var(--pan-scale-x, 2.25));
	height: calc(100% * var(--pan-scale-y, 1.9));
	will-change: transform;
}

.pan-layer {
	position: absolute;
	inset: 0;
	display: block;
	opacity: 0;
	transition: opacity 1.4s ease;
	pointer-events: none;
}

.pan-layer.is-active {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.pan-layer {
		transition: none;
	}
}

.site-logo > picture,
.portfolio-card__preview > picture,
.quienes-logo-bg > picture {
	display: contents;
}

.pan-media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
}

.pan-overlay {
	position: fixed;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.5);
	pointer-events: none;
}

/* Logo DSinf — esquina superior izquierda */

.site-logo {
	position: fixed;
	top: var(--logo-inset);
	left: var(--logo-inset);
	z-index: 100;
	display: block;
	line-height: 0;
	filter:
		drop-shadow(0 2px 4px rgba(0, 0, 0, 0.55))
		drop-shadow(0 6px 16px rgba(0, 0, 0, 0.65))
		drop-shadow(0 0 20px rgba(0, 0, 0, 0.35));
	transition: opacity 0.2s ease;
}

.site-logo:hover,
.site-logo:focus-visible {
	opacity: 0.92;
	outline: none;
}

.site-logo img {
	display: block;
	width: var(--logo-size);
	height: auto;
	mix-blend-mode: screen;
	transition: transform 0.2s ease;
}

.site-logo:hover img,
.site-logo:focus-visible img {
	transform: scale(1.03);
}

.site-logo__caption {
	position: absolute;
	top: 50%;
	left: calc(100% + 0.7rem);
	margin: 0;
	padding: 0;
	font-family: var(--font-title);
	font-size: clamp(0.72rem, 1.35vw, 1.05rem);
	font-weight: var(--title-weight);
	letter-spacing: var(--title-tracking);
	line-height: 1.1;
	white-space: nowrap;
	color: #fff;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
	transform: translate3d(-0.9rem, -50%, 0);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.4s ease,
		visibility 0.4s ease,
		transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1),
		color 0.25s ease,
		text-shadow 0.25s ease,
		letter-spacing 0.25s ease;
}

.site-logo__caption.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0, -50%, 0);
}

.site-logo__caption.is-dissolving {
	opacity: 1;
	visibility: visible;
	transform: translate3d(0.15rem, -50%, 0);
	color: rgba(56, 189, 248, 0.92);
	text-shadow:
		0 0 6px rgba(56, 189, 248, 0.35),
		0 1px 8px rgba(0, 0, 0, 0.45);
	letter-spacing: 0.08em;
	font-variant-ligatures: none;
	transition: none;
}

.site-logo__caption.is-dissolving.is-fade-out {
	opacity: 0;
	transform: translate3d(0.35rem, -50%, 0);
	transition:
		opacity 0.22s ease,
		transform 0.22s ease,
		visibility 0.22s ease;
}

@media (max-width: 1024px) {
	.site-logo__caption {
		font-size: clamp(0.65rem, 2.4vw, 0.92rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-logo__caption.is-dissolving {
		letter-spacing: var(--title-tracking);
		color: #fff;
		text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
	}
}

/* Iconos de sección — barra superior centrada (quiénes → servicios → portafolio → contacto) */

.section-hotspots {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: clamp(1rem, 3.2vw, 2.75rem);
	padding: clamp(5.25rem, 11vw, 6.75rem) clamp(0.75rem, 2vw, 1.5rem) 0;
	pointer-events: none;
	perspective: 1100px;
	perspective-origin: 50% 35%;
}

.section-connector {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.section-connector.is-visible {
	opacity: 1;
}

.section-connector__path {
	fill: none;
	stroke: rgba(56, 189, 248, 0.78);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 5 6;
	vector-effect: non-scaling-stroke;
}

.section-connector__marker path {
	fill: rgba(56, 189, 248, 0.9);
}

.section-hotspot {
	--tilt-persp: 820px;
	--tilt-rx: 0deg;
	--tilt-ry: 0deg;
	--tilt-tz: 0px;
	position: relative;
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	padding: 0.35rem;
	border: 0;
	background: transparent;
	color: #f8fafc;
	cursor: var(--cursor-target-orange);
	pointer-events: auto;
	transform:
		perspective(var(--tilt-persp))
		translate3d(var(--parallax-x, 0), var(--parallax-y, 0), var(--tilt-tz))
		rotateX(var(--tilt-rx))
		rotateY(var(--tilt-ry));
	transform-style: preserve-3d;
	transition: color 0.2s ease;
	flex: 0 0 auto;
	will-change: transform;
}

.section-hotspot--quienes {
	order: 1;
}

.section-hotspot--servicios {
	order: 2;
}

.section-hotspot--portafolio {
	order: 3;
}

.section-hotspot--contacto {
	order: 4;
}

.section-hotspot:hover,
.section-hotspot:focus-visible {
	color: #ff6600;
	outline: none;
}

.section-hotspot__icon {
	--cube-d: clamp(0.95rem, 2vw, 1.25rem);
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: clamp(4.75rem, 9.5vw, 6.5rem);
	height: clamp(4.75rem, 9.5vw, 6.5rem);
	padding: 0;
	color: #e2e8f0;
	background:
		linear-gradient(145deg, rgba(18, 32, 48, 0.92), rgba(6, 12, 18, 0.88) 55%, rgba(14, 20, 28, 0.9));
	border: 1px solid rgba(56, 189, 248, 0.5);
	border-radius: 10px;
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.12) inset,
		0 8px 22px rgba(0, 0, 0, 0.55),
		0 0 22px rgba(56, 189, 248, 0.18);
	overflow: visible;
	transform: translateZ(calc(var(--cube-d) / 2));
	transform-style: preserve-3d;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.section-hotspot__faces {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	transform-style: preserve-3d;
	pointer-events: none;
	z-index: 0;
}

.section-hotspot__face {
	position: absolute;
	display: block;
	box-sizing: border-box;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

.section-hotspot__face--back {
	inset: 0;
	border-radius: inherit;
	background:
		linear-gradient(160deg, rgba(8, 14, 22, 0.98), rgba(4, 8, 14, 0.95));
	border: 1px solid rgba(56, 189, 248, 0.22);
	transform: translateZ(calc(var(--cube-d) * -1));
	box-shadow: 0 0 18px rgba(0, 0, 0, 0.45) inset;
}

.section-hotspot__face--left {
	top: 0;
	bottom: 0;
	left: 0;
	width: var(--cube-d);
	transform-origin: left center;
	transform: rotateY(-90deg);
	background:
		linear-gradient(90deg, rgba(4, 10, 16, 0.98), rgba(20, 48, 68, 0.88));
	border-top: 1px solid rgba(56, 189, 248, 0.28);
	border-bottom: 1px solid rgba(56, 189, 248, 0.2);
	border-left: 1px solid rgba(56, 189, 248, 0.35);
	box-shadow: inset -6px 0 14px rgba(0, 0, 0, 0.35);
}

.section-hotspot__face--right {
	top: 0;
	bottom: 0;
	right: 0;
	width: var(--cube-d);
	transform-origin: right center;
	transform: rotateY(90deg);
	background:
		linear-gradient(270deg, rgba(10, 12, 16, 0.98), rgba(72, 36, 14, 0.78));
	border-top: 1px solid rgba(255, 102, 0, 0.28);
	border-bottom: 1px solid rgba(255, 102, 0, 0.18);
	border-right: 1px solid rgba(255, 102, 0, 0.4);
	box-shadow: inset 6px 0 14px rgba(0, 0, 0, 0.35);
}

.section-hotspot__face--top {
	left: 0;
	right: 0;
	top: 0;
	height: var(--cube-d);
	transform-origin: top center;
	transform: rotateX(90deg);
	background:
		linear-gradient(180deg, rgba(56, 189, 248, 0.28), rgba(10, 18, 28, 0.92));
	border-left: 1px solid rgba(56, 189, 248, 0.3);
	border-right: 1px solid rgba(56, 189, 248, 0.22);
	border-top: 1px solid rgba(56, 189, 248, 0.45);
	box-shadow: inset 0 -4px 12px rgba(0, 0, 0, 0.28);
}

.section-hotspot__face--bottom {
	left: 0;
	right: 0;
	bottom: 0;
	height: var(--cube-d);
	transform-origin: bottom center;
	transform: rotateX(-90deg);
	background:
		linear-gradient(0deg, rgba(255, 102, 0, 0.22), rgba(6, 10, 16, 0.96));
	border-left: 1px solid rgba(255, 102, 0, 0.22);
	border-right: 1px solid rgba(255, 102, 0, 0.18);
	border-bottom: 1px solid rgba(255, 102, 0, 0.35);
	box-shadow: inset 0 6px 14px rgba(0, 0, 0, 0.4);
}

.section-hotspot__glow {
	position: absolute;
	inset: -4px;
	z-index: 1;
	border-radius: 14px;
	background: radial-gradient(circle at 30% 30%, rgba(56, 189, 248, 0.22), transparent 55%),
		radial-gradient(circle at 70% 70%, rgba(255, 102, 0, 0.18), transparent 50%);
	opacity: 0.85;
	pointer-events: none;
	transform: translateZ(1px);
	animation: wa-pulse 2.8s ease-in-out infinite;
}

.section-hotspot__frame {
	position: absolute;
	inset: 5px;
	z-index: 2;
	pointer-events: none;
	transform: translateZ(2px);
}

.section-hotspot__corner {
	position: absolute;
	width: 10px;
	height: 10px;
	border-color: rgba(56, 189, 248, 0.9);
	border-style: solid;
	border-width: 0;
}

.section-hotspot__corner--tl {
	top: 0;
	left: 0;
	border-top-width: 2px;
	border-left-width: 2px;
}

.section-hotspot__corner--br {
	right: 0;
	bottom: 0;
	border-right-width: 2px;
	border-bottom-width: 2px;
	border-color: rgba(255, 102, 0, 0.9);
}

.section-hotspot__svg {
	position: relative;
	z-index: 3;
	display: block;
	width: 62%;
	height: 62%;
	transform: translateZ(3px);
	filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.45));
}

.section-hotspot:hover .section-hotspot__icon,
.section-hotspot:focus-visible .section-hotspot__icon {
	animation: section-hotspot-cube-heartbeat 1.4s ease-in-out infinite;
	border-color: rgba(56, 189, 248, 0.75);
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.25) inset,
		0 10px 28px rgba(0, 0, 0, 0.55),
		0 0 32px rgba(56, 189, 248, 0.35);
}

@keyframes section-hotspot-cube-heartbeat {
	0%,
	100% {
		transform: translateZ(calc(var(--cube-d) / 2)) scale(1);
	}

	14% {
		transform: translateZ(calc(var(--cube-d) / 2 + 3px)) scale(1.06);
	}

	28% {
		transform: translateZ(calc(var(--cube-d) / 2)) scale(1);
	}

	42% {
		transform: translateZ(calc(var(--cube-d) / 2 + 2px)) scale(1.04);
	}

	56%,
	100% {
		transform: translateZ(calc(var(--cube-d) / 2)) scale(1);
	}
}

.section-hotspot:hover .tech-icon__wave,
.section-hotspot:focus-visible .tech-icon__wave {
	animation: tech-icon-ripple 2.5s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}

.section-hotspot:hover .tech-icon__wave:nth-child(2),
.section-hotspot:focus-visible .tech-icon__wave:nth-child(2) {
	animation-delay: 0.55s;
}

.section-hotspot:hover .tech-icon__wave:nth-child(3),
.section-hotspot:focus-visible .tech-icon__wave:nth-child(3) {
	animation-delay: 1.1s;
}

.section-hotspot:hover .section-hotspot__svg,
.section-hotspot:focus-visible .section-hotspot__svg {
	animation: tech-icon-svg-glow 1.4s ease-in-out infinite;
}

@keyframes tech-icon-svg-glow {
	0%,
	100% {
		filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.45));
	}

	14% {
		filter: drop-shadow(0 0 14px rgba(255, 102, 0, 0.7));
	}

	28% {
		filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.45));
	}

	42% {
		filter: drop-shadow(0 0 11px rgba(255, 102, 0, 0.55));
	}

	56%,
	100% {
		filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.45));
	}
}

.section-hotspot__label {
	max-width: 8.5rem;
	font-size: clamp(11px, 0.78rem, 13px);
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: none;
	text-align: center;
	line-height: 1.25;
	color: rgba(255, 255, 255, 0.9);
	opacity: 0.92;
	visibility: visible;
	transform: translateZ(10px);
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.55);
	transition: color 0.2s ease, opacity 0.2s ease;
}

.section-hotspot:hover .section-hotspot__label,
.section-hotspot:focus-visible .section-hotspot__label {
	color: #fff;
	opacity: 1;
}

/* Menú tiro al blanco — oculto */

.site-menu {
	display: none;
}

.site-menu__trigger {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
	padding: 0.35rem;
	border: 0;
	background: transparent;
	color: #f8fafc;
	cursor: pointer;
	transform: translate(var(--parallax-x, 0), var(--parallax-y, 0));
	transition: color 0.2s ease, filter 0.2s ease;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.45));
}

.site-menu__trigger:hover,
.site-menu__trigger:focus-visible,
.site-menu.is-open .site-menu__trigger {
	color: #38bdf8;
	outline: none;
}

.site-menu__target {
	display: block;
	width: clamp(2.25rem, 5vw, 2.75rem);
	height: clamp(2.25rem, 5vw, 2.75rem);
	pointer-events: none;
}

.site-menu__target svg {
	display: block;
	width: 100%;
	height: 100%;
}

.site-menu__label {
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: lowercase;
	line-height: 1;
	opacity: 0.88;
	pointer-events: none;
}

.site-menu__panel {
	position: absolute;
	top: 0;
	right: calc(100% + 0.65rem);
	left: auto;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.35rem;
	padding: 0.35rem;
	min-width: 9.5rem;
	border-radius: 10px;
	background: transparent;
	border: 0;
	box-shadow: none;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateX(8px) scale(0.97);
	transition:
		opacity 0.22s ease,
		transform 0.22s ease,
		visibility 0.22s ease;
}

.site-menu__panel::before {
	content: "";
	position: absolute;
	top: 0;
	right: -0.75rem;
	width: 0.75rem;
	height: 100%;
	pointer-events: auto;
}

.site-menu:hover .site-menu__panel,
.site-menu:focus-within .site-menu__panel,
.site-menu.is-open .site-menu__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(0, 0) scale(1);
}

.site-menu__item {
	display: block;
	padding: 0.55rem 0.75rem;
	border-radius: 7px;
	background: rgba(15, 23, 42, 0.5);
	color: #e2e8f0;
	text-decoration: none;
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.site-menu__item:hover,
.site-menu__item:focus-visible,
.site-menu__item.is-selected {
	background: rgba(56, 189, 248, 0.5);
	color: #fff;
	outline: none;
}

/* Vista previa central — menú (legacy) e iconos de sección */

.site-center {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 50;
	transform: translate3d(-50%, -50%, 0);
	transform-style: preserve-3d;
	width: min(92vw, 42rem);
	text-align: center;
	pointer-events: none;
	display: grid;
	place-items: center;
	perspective: 1000px;
}

.section-preview {
	grid-area: 1 / 1;
	width: 100%;
	position: relative;
	padding: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
}

.site-tagline {
	position: fixed;
	left: 50vw;
	top: 50vh;
	z-index: 51;
	width: min(92vw, 42rem);
	max-width: min(92vw, 42rem);
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	transform:
		translate3d(-50%, -50%, 0)
		scale(var(--title-scale-x), var(--title-scale-y));
	text-align: center;
	font-size: clamp(1.2rem, 2.75vw, 1.55rem);
	line-height: 1.05;
	color: #fff;
	text-shadow: 0 3px 18px rgba(0, 0, 0, 0.6);
	opacity: 1;
	visibility: visible;
	pointer-events: none;
	will-change: transform;
	transition:
		opacity 0.5s ease,
		visibility 0.5s ease;
}

.site-tagline.is-hidden {
	opacity: 0;
	visibility: hidden;
}

.site-tagline.has-cta {
	pointer-events: auto;
}

.site-tagline__stage {
	position: relative;
	display: grid;
	justify-items: center;
	align-items: center;
	width: 100%;
	min-height: 4.5rem;
}

.site-tagline__panel {
	grid-area: 1 / 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 0;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 0, 0) skewX(0deg);
	filter: none;
	pointer-events: none;
}

.site-tagline__panel.is-active {
	opacity: 1;
	visibility: visible;
}

.site-tagline__line {
	display: block;
	line-height: 1.15;
}

.site-tagline__line + .site-tagline__line {
	margin-top: 0.55em;
}

.site-tagline__panel--cta {
	gap: 1.45rem;
}

.site-tagline__cta-copy {
	display: block;
	line-height: 1.2;
}

.site-tagline__cta {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem 1.45rem;
	border: 1px solid rgba(56, 189, 248, 0.55);
	border-radius: 4px;
	background: rgba(6, 12, 18, 0.72);
	color: #fff;
	font-family: var(--font-title);
	font-size: 0.74rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: var(--cursor-target-orange);
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.15) inset,
		0 0 16px rgba(56, 189, 248, 0.18);
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease;
	pointer-events: none;
}

.site-tagline__panel--cta.is-active .site-tagline__cta {
	pointer-events: auto;
}

.site-tagline__cta:hover,
.site-tagline__cta:focus-visible {
	border-color: rgba(255, 102, 0, 0.85);
	background: rgba(255, 102, 0, 0.2);
	color: #fff;
	outline: none;
	transform: translateY(-1px);
}

.site-tagline__panel--logo {
	position: relative;
	min-height: 15rem;
	isolation: isolate;
}

.site-tagline__logo {
	position: relative;
	z-index: 2;
	display: block;
	width: clamp(13rem, 36vw, 18rem);
	height: auto;
	filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.45));
	pointer-events: none;
	user-select: none;
	transform-origin: center center;
}

.site-tagline__vortex {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 1;
	width: clamp(13rem, 36vw, 18rem);
	height: clamp(13rem, 36vw, 18rem);
	margin: 0;
	transform: translate(-50%, -50%);
	pointer-events: none;
	opacity: 0;
}

.site-tagline__vortex-ring {
	position: absolute;
	inset: 8%;
	border: 1.5px solid rgba(56, 189, 248, 0.55);
	border-radius: 50%;
	border-top-color: rgba(255, 102, 0, 0.85);
	border-bottom-color: rgba(56, 189, 248, 0.25);
	box-shadow:
		0 0 12px rgba(56, 189, 248, 0.35),
		inset 0 0 10px rgba(255, 102, 0, 0.15);
	opacity: 0;
}

.site-tagline__vortex-ring--2 {
	inset: 18%;
	border-width: 1.25px;
	border-top-color: rgba(56, 189, 248, 0.9);
	border-left-color: rgba(255, 102, 0, 0.55);
}

.site-tagline__vortex-ring--3 {
	inset: 30%;
	border-width: 1px;
	border-top-color: rgba(255, 255, 255, 0.75);
	border-right-color: rgba(255, 102, 0, 0.7);
}

.site-tagline__vortex-spark {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 4px;
	height: 4px;
	margin: -2px 0 0 -2px;
	border-radius: 50%;
	background: #38bdf8;
	box-shadow: 0 0 8px rgba(56, 189, 248, 0.95);
	opacity: 0;
}

.site-tagline__vortex-spark--2,
.site-tagline__vortex-spark--4 {
	background: #ff6600;
	box-shadow: 0 0 8px rgba(255, 102, 0, 0.95);
}

.site-tagline__vortex-core {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 10px;
	height: 10px;
	margin: -5px 0 0 -5px;
	border-radius: 50%;
	background: radial-gradient(circle, #fff 0%, #38bdf8 45%, transparent 70%);
	box-shadow:
		0 0 16px rgba(56, 189, 248, 0.9),
		0 0 28px rgba(255, 102, 0, 0.45);
	opacity: 0;
}

.site-tagline.is-morphing .site-tagline__panel.is-active {
	animation: tagline-distort 0.72s steps(2, end) forwards;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active {
	animation: tagline-tornado-panel 0.78s cubic-bezier(0.35, 0.05, 0.25, 1) forwards;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__logo {
	animation: tagline-tornado-logo 0.78s cubic-bezier(0.3, 0.05, 0.2, 1) forwards;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex {
	opacity: 1;
	animation: tagline-tornado-vortex 0.78s cubic-bezier(0.3, 0.05, 0.2, 1) forwards;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--1 {
	animation: tagline-tornado-ring 0.78s linear forwards;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--2 {
	animation: tagline-tornado-ring 0.78s linear reverse forwards;
	animation-delay: 0.02s;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--3 {
	animation: tagline-tornado-ring 0.62s linear forwards;
	animation-delay: 0.04s;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--1 {
	animation: tagline-tornado-spark 0.78s linear forwards;
	--spark-angle: 20deg;
	--spark-radius: 48px;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--2 {
	animation: tagline-tornado-spark 0.78s linear reverse forwards;
	--spark-angle: 110deg;
	--spark-radius: 62px;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--3 {
	animation: tagline-tornado-spark 0.7s linear forwards;
	--spark-angle: 200deg;
	--spark-radius: 40px;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--4 {
	animation: tagline-tornado-spark 0.7s linear reverse forwards;
	--spark-angle: 300deg;
	--spark-radius: 70px;
}

.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-core {
	animation: tagline-tornado-core 0.78s ease-in forwards;
}

.site-tagline.is-settling .site-tagline__panel.is-active {
	animation: tagline-settle 0.72s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes tagline-distort {
	0% {
		opacity: 1;
		transform: translate3d(0, 0, 0) skewX(0deg) scale(1, 1);
		filter: blur(0) contrast(1);
		letter-spacing: var(--title-tracking);
		text-shadow: 0 3px 18px rgba(0, 0, 0, 0.6);
	}

	12% {
		opacity: 0.9;
		transform: translate3d(-6px, 1px, 0) skewX(-8deg) scale(1.04, 0.92);
		filter: blur(0.4px) contrast(1.35);
		text-shadow:
			-3px 0 #38bdf8,
			3px 0 #ff6600,
			0 3px 18px rgba(0, 0, 0, 0.6);
	}

	28% {
		opacity: 0.75;
		transform: translate3d(8px, -2px, 0) skewX(10deg) scale(0.9, 1.12);
		filter: blur(1.2px) contrast(1.6);
		letter-spacing: 0.22em;
		text-shadow:
			4px 0 #38bdf8,
			-4px 0 #ff6600,
			0 0 18px rgba(56, 189, 248, 0.55);
	}

	46% {
		opacity: 0.35;
		transform: translate3d(-10px, 3px, 0) skewX(-14deg) scale(1.18, 0.78);
		filter: blur(2.4px) contrast(1.8) saturate(1.4);
		letter-spacing: 0.32em;
		text-shadow:
			-6px 0 rgba(56, 189, 248, 0.85),
			6px 0 rgba(255, 102, 0, 0.85);
	}

	64% {
		opacity: 0.15;
		transform: translate3d(14px, -4px, 0) skewX(16deg) scale(0.82, 1.25);
		filter: blur(3.5px) contrast(2);
		letter-spacing: 0.4em;
	}

	82% {
		opacity: 0;
		transform: translate3d(-8px, 0, 0) skewX(-6deg) scale(1.1, 0.85);
		filter: blur(4px);
	}

	100% {
		opacity: 0;
		transform: translate3d(0, 0, 0) skewX(0deg) scale(1, 1);
		filter: blur(5px);
	}
}

@keyframes tagline-tornado-panel {
	0% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
		filter: blur(0);
	}

	35% {
		opacity: 1;
		transform: translate3d(0, 4px, 0) scale(1.02);
		filter: blur(0.3px);
	}

	70% {
		opacity: 0.75;
		transform: translate3d(0, 10px, 0) scale(0.9, 1.15);
		filter: blur(1.2px);
	}

	100% {
		opacity: 0;
		transform: translate3d(0, 18px, 0) scale(0.2, 1.6);
		filter: blur(3px);
	}
}

@keyframes tagline-tornado-logo {
	0% {
		opacity: 1;
		transform: rotate(0deg) scale(1, 1) skewX(0deg);
		filter: drop-shadow(0 4px 18px rgba(0, 0, 0, 0.45)) blur(0) brightness(1);
	}

	18% {
		opacity: 1;
		transform: rotate(90deg) scale(1.08, 0.92) skewX(-6deg);
		filter: drop-shadow(0 0 14px rgba(56, 189, 248, 0.55)) blur(0.4px) brightness(1.15);
	}

	36% {
		opacity: 0.9;
		transform: rotate(240deg) scale(0.78, 1.25) skewX(8deg);
		filter: drop-shadow(0 0 18px rgba(255, 102, 0, 0.55)) blur(1px) brightness(1.25) saturate(1.3);
	}

	55% {
		opacity: 0.55;
		transform: rotate(480deg) scale(0.42, 1.55) skewX(-10deg);
		filter: drop-shadow(0 0 22px rgba(56, 189, 248, 0.7)) blur(2px) brightness(1.4);
	}

	75% {
		opacity: 0.22;
		transform: rotate(780deg) scale(0.18, 1.9) skewX(12deg);
		filter: drop-shadow(0 0 28px rgba(255, 102, 0, 0.8)) blur(3.5px) brightness(1.6);
	}

	100% {
		opacity: 0;
		transform: rotate(1080deg) scale(0.04, 2.4) skewX(0deg);
		filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9)) blur(5px) brightness(2);
	}
}

@keyframes tagline-tornado-vortex {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.7, 0.7);
	}

	15% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1.05, 1.05);
	}

	55% {
		opacity: 1;
		transform: translate(-50%, -42%) scale(0.7, 1.35);
	}

	100% {
		opacity: 0;
		transform: translate(-50%, -28%) scale(0.12, 2.1);
	}
}

@keyframes tagline-tornado-ring {
	0% {
		opacity: 0;
		transform: rotate(0deg) scale(1, 1);
	}

	12% {
		opacity: 0.95;
	}

	50% {
		opacity: 0.85;
		transform: rotate(540deg) scale(0.72, 1.25);
	}

	100% {
		opacity: 0;
		transform: rotate(1080deg) scale(0.08, 2.2);
	}
}

@keyframes tagline-tornado-spark {
	0% {
		opacity: 0;
		transform: rotate(var(--spark-angle)) translateY(calc(-1 * var(--spark-radius))) scale(0.6);
	}

	15% {
		opacity: 1;
	}

	60% {
		opacity: 0.85;
		transform: rotate(calc(var(--spark-angle) + 420deg)) translateY(calc(-0.45 * var(--spark-radius))) scale(0.9);
	}

	100% {
		opacity: 0;
		transform: rotate(calc(var(--spark-angle) + 900deg)) translateY(-4px) scale(0.2);
	}
}

@keyframes tagline-tornado-core {
	0% {
		opacity: 0;
		transform: scale(0.4);
	}

	25% {
		opacity: 1;
		transform: scale(1.2);
	}

	70% {
		opacity: 1;
		transform: scale(0.7);
		box-shadow:
			0 0 22px rgba(56, 189, 248, 1),
			0 0 40px rgba(255, 102, 0, 0.7);
	}

	100% {
		opacity: 0;
		transform: scale(0.15);
	}
}

@keyframes tagline-settle {
	0% {
		opacity: 0;
		transform: translate3d(0, 6px, 0) skewX(4deg) scale(1.05, 0.94);
		filter: blur(2px);
		text-shadow:
			-2px 0 #38bdf8,
			2px 0 #ff6600,
			0 3px 18px rgba(0, 0, 0, 0.6);
	}

	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0) skewX(0deg) scale(1, 1);
		filter: blur(0);
		text-shadow: 0 3px 18px rgba(0, 0, 0, 0.6);
	}
}

.menu-preview {
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 50;
	text-align: center;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, -50%);
	width: min(92vw, 36rem);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.menu-preview.is-visible,
.section-preview.is-visible {
	visibility: visible;
}

.menu-preview__title {
	margin: 0 0 0.65rem;
	font-size: clamp(1.1rem, 3.15vw, 2rem);
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: center top;
	color: #fff;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
}

.section-preview__title {
	margin: 0;
	font-size: clamp(1.45rem, 4.2vw, 2.35rem);
	line-height: 1.02;
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: center center;
	color: #fff;
	text-shadow: 0 3px 18px rgba(0, 0, 0, 0.6);
}

.menu-preview__title .brand-ds,
.section-preview__title .brand-ds {
	color: #ff6600;
}

.menu-preview__text {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(0.95rem, 2vw, 1.05rem);
	font-weight: 400;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
}

.menu-preview.effect-fade.is-visible {
	animation: preview-fade-in 1.15s ease forwards;
}

.section-preview.effect-fade.is-visible {
	animation: section-preview-fade-in 1.15s ease forwards;
}

.menu-preview.effect-slide-up.is-visible {
	animation: preview-slide-up 1.15s ease forwards;
}

.section-preview.effect-slide-up.is-visible {
	animation: section-preview-slide-up 1.15s ease forwards;
}

.menu-preview.effect-slide-down.is-visible {
	animation: preview-slide-down 1.15s ease forwards;
}

.section-preview.effect-slide-down.is-visible {
	animation: section-preview-slide-down 1.15s ease forwards;
}

.menu-preview.effect-slide-left.is-visible {
	animation: preview-slide-left 1.15s ease forwards;
}

.section-preview.effect-slide-left.is-visible {
	animation: section-preview-slide-left 1.15s ease forwards;
}

.menu-preview.effect-slide-right.is-visible {
	animation: preview-slide-right 1.15s ease forwards;
}

.section-preview.effect-slide-right.is-visible {
	animation: section-preview-slide-right 1.15s ease forwards;
}

.menu-preview.effect-zoom-in.is-visible {
	animation: preview-zoom-in 1.15s ease forwards;
}

.section-preview.effect-zoom-in.is-visible {
	animation: section-preview-zoom-in 1.15s ease forwards;
}

.menu-preview.effect-zoom-out.is-visible {
	animation: preview-zoom-out 1.15s ease forwards;
}

.section-preview.effect-zoom-out.is-visible {
	animation: section-preview-zoom-out 1.15s ease forwards;
}

.menu-preview.effect-flip.is-visible {
	animation: preview-flip 1.25s ease forwards;
}

.section-preview.effect-flip.is-visible {
	animation: section-preview-flip 1.25s ease forwards;
}

@keyframes preview-fade-in {
	from {
		opacity: 0;
		transform: translate(-50%, -50%);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

@keyframes preview-slide-up {
	from {
		opacity: 0;
		transform: translate(-50%, calc(-50% + 2.5rem));
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

@keyframes preview-slide-down {
	from {
		opacity: 0;
		transform: translate(-50%, calc(-50% - 2.5rem));
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

@keyframes preview-slide-left {
	from {
		opacity: 0;
		transform: translate(calc(-50% + 3rem), -50%);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

@keyframes preview-slide-right {
	from {
		opacity: 0;
		transform: translate(calc(-50% - 3rem), -50%);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

@keyframes preview-zoom-in {
	from {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.75);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}

@keyframes preview-zoom-out {
	from {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.25);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}
}

@keyframes preview-flip {
	from {
		opacity: 0;
		transform: translate(-50%, -50%) perspective(600px) rotateX(-18deg);
	}
	to {
		opacity: 1;
		transform: translate(-50%, -50%) perspective(600px) rotateX(0);
	}
}

@keyframes section-preview-fade-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes section-preview-slide-up {
	from {
		opacity: 0;
		transform: translateY(1.5rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes section-preview-slide-down {
	from {
		opacity: 0;
		transform: translateY(-1.5rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes section-preview-slide-left {
	from {
		opacity: 0;
		transform: translateX(2rem);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes section-preview-slide-right {
	from {
		opacity: 0;
		transform: translateX(-2rem);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes section-preview-zoom-in {
	from {
		opacity: 0;
		transform: scale(0.75);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes section-preview-zoom-out {
	from {
		opacity: 0;
		transform: scale(1.25);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes section-preview-flip {
	from {
		opacity: 0;
		transform: perspective(600px) rotateX(-18deg);
	}
	to {
		opacity: 1;
		transform: perspective(600px) rotateX(0);
	}
}

/* Footer — sobre el fondo panorámico */

.footer-copyright {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: transparent;
	padding: 2px 0 3px;
	pointer-events: auto;
}

.footer-content {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0 0.75rem;
	font-size: 10px;
	line-height: 1.3;
	color: #fff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
	transition: color 0.35s ease, text-shadow 0.35s ease;
}

/* Esquinas inferiores — WhatsApp y portafolio */

.corner-float {
	position: fixed;
	z-index: 100;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	pointer-events: none;
}

.corner-float--whatsapp {
	bottom: clamp(2.15rem, 6.5vh, 2.85rem);
	left: var(--logo-inset);
}

.corner-float__label {
	max-width: 5.75rem;
	pointer-events: none;
}

/* Efectos hover compartidos — latido y ondas */

.tech-icon__waves {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	border-radius: inherit;
	transform: translateZ(1px);
}

.tech-icon__wave {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border: 1.5px solid rgba(56, 189, 248, 0.55);
	opacity: 0;
	transform: scale(1);
	box-shadow:
		0 0 10px rgba(56, 189, 248, 0.2),
		inset 0 0 6px rgba(56, 189, 248, 0.08);
}

@keyframes tech-icon-heartbeat {
	0%,
	100% {
		transform: translateZ(24px) scale(1);
	}

	14% {
		transform: translateZ(28px) scale(1.1);
	}

	28% {
		transform: translateZ(24px) scale(1);
	}

	42% {
		transform: translateZ(26px) scale(1.07);
	}

	56%,
	100% {
		transform: translateZ(24px) scale(1);
	}
}

@keyframes tech-icon-ripple {
	0% {
		transform: scale(1);
		opacity: 0.75;
		border-color: rgba(56, 189, 248, 0.65);
		box-shadow:
			0 0 12px rgba(56, 189, 248, 0.35),
			inset 0 0 8px rgba(56, 189, 248, 0.12);
	}

	70% {
		opacity: 0.12;
		border-color: rgba(255, 102, 0, 0.2);
	}

	100% {
		transform: scale(2.15);
		opacity: 0;
		border-color: rgba(255, 102, 0, 0);
		box-shadow:
			0 0 28px rgba(255, 102, 0, 0),
			inset 0 0 20px rgba(255, 102, 0, 0);
	}
}

/* Botón WhatsApp */

.whatsapp-float {
	--wa-size: clamp(3.85rem, 9vw, 4.65rem);
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--wa-size);
	height: var(--wa-size);
	pointer-events: auto;
	text-decoration: none;
	color: #e2e8f0;
	background: rgba(6, 12, 18, 0.72);
	border: 1px solid rgba(56, 189, 248, 0.45);
	border-radius: 50%;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.12) inset,
		0 4px 18px rgba(0, 0, 0, 0.45),
		0 0 22px rgba(37, 211, 102, 0.18);
	overflow: visible;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.whatsapp-float:hover,
.whatsapp-float:focus-visible {
	animation: tech-icon-heartbeat 1.4s ease-in-out infinite;
	border-color: rgba(37, 211, 102, 0.75);
	box-shadow:
		0 0 0 1px rgba(56, 189, 248, 0.35) inset,
		0 6px 24px rgba(0, 0, 0, 0.5),
		0 0 32px rgba(37, 211, 102, 0.35);
	outline: none;
}

.whatsapp-float:hover .tech-icon__wave,
.whatsapp-float:focus-visible .tech-icon__wave {
	animation: tech-icon-ripple 2.5s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}

.whatsapp-float:hover .tech-icon__wave:nth-child(2),
.whatsapp-float:focus-visible .tech-icon__wave:nth-child(2) {
	animation-delay: 0.55s;
}

.whatsapp-float:hover .tech-icon__wave:nth-child(3),
.whatsapp-float:focus-visible .tech-icon__wave:nth-child(3) {
	animation-delay: 1.1s;
}

.whatsapp-float__glow {
	position: absolute;
	inset: -4px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, rgba(56, 189, 248, 0.22), transparent 55%),
		radial-gradient(circle at 70% 70%, rgba(255, 102, 0, 0.18), transparent 50%);
	opacity: 0.85;
	pointer-events: none;
	animation: wa-pulse 2.8s ease-in-out infinite;
}

.whatsapp-float__frame {
	display: none;
}

.whatsapp-float__corner {
	position: absolute;
	width: 10px;
	height: 10px;
	border-color: rgba(56, 189, 248, 0.9);
	border-style: solid;
	border-width: 0;
}

.whatsapp-float__corner--tl {
	top: 0;
	left: 0;
	border-top-width: 2px;
	border-left-width: 2px;
}

.whatsapp-float__corner--br {
	right: 0;
	bottom: 0;
	border-right-width: 2px;
	border-bottom-width: 2px;
	border-color: rgba(255, 102, 0, 0.9);
}

.whatsapp-float__icon {
	position: relative;
	z-index: 1;
	width: 66%;
	height: 66%;
	filter: drop-shadow(0 0 6px rgba(37, 211, 102, 0.45));
}

.whatsapp-float:hover .whatsapp-float__icon,
.whatsapp-float:focus-visible .whatsapp-float__icon {
	animation: tech-icon-svg-glow 1.4s ease-in-out infinite;
}

@keyframes wa-pulse {
	0%,
	100% {
		opacity: 0.65;
		transform: scale(1);
	}
	50% {
		opacity: 1;
		transform: scale(1.04);
	}
}

/* Botón portafolio */

.portfolio-float {
	--portfolio-size: clamp(3.15rem, 7.5vw, 3.85rem);
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--portfolio-size);
	height: var(--portfolio-size);
	padding: 0;
	pointer-events: auto;
	text-decoration: none;
	color: #e2e8f0;
	background: rgba(6, 12, 18, 0.72);
	border: 1px solid rgba(56, 189, 248, 0.45);
	border-radius: 14px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.12) inset,
		0 4px 18px rgba(0, 0, 0, 0.45),
		0 0 22px rgba(56, 189, 248, 0.18);
	overflow: visible;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.portfolio-float:hover,
.portfolio-float:focus-visible {
	animation: tech-icon-heartbeat 1.4s ease-in-out infinite;
	border-color: rgba(56, 189, 248, 0.75);
	box-shadow:
		0 0 0 1px rgba(255, 102, 0, 0.25) inset,
		0 6px 24px rgba(0, 0, 0, 0.5),
		0 0 32px rgba(56, 189, 248, 0.35);
	outline: none;
}

.portfolio-float:hover .tech-icon__wave,
.portfolio-float:focus-visible .tech-icon__wave {
	animation: tech-icon-ripple 2.5s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}

.portfolio-float:hover .tech-icon__wave:nth-child(2),
.portfolio-float:focus-visible .tech-icon__wave:nth-child(2) {
	animation-delay: 0.55s;
}

.portfolio-float:hover .tech-icon__wave:nth-child(3),
.portfolio-float:focus-visible .tech-icon__wave:nth-child(3) {
	animation-delay: 1.1s;
}

.portfolio-float__glow {
	position: absolute;
	inset: -4px;
	border-radius: 18px;
	background: radial-gradient(circle at 70% 30%, rgba(56, 189, 248, 0.22), transparent 55%),
		radial-gradient(circle at 30% 70%, rgba(255, 102, 0, 0.18), transparent 50%);
	opacity: 0.85;
	pointer-events: none;
	animation: wa-pulse 2.8s ease-in-out infinite;
}

.portfolio-float__frame {
	position: absolute;
	inset: 5px;
	pointer-events: none;
}

.portfolio-float__corner {
	position: absolute;
	width: 10px;
	height: 10px;
	border-color: rgba(56, 189, 248, 0.9);
	border-style: solid;
	border-width: 0;
}

.portfolio-float__corner--tr {
	top: 0;
	right: 0;
	border-top-width: 2px;
	border-right-width: 2px;
}

.portfolio-float__corner--bl {
	left: 0;
	bottom: 0;
	border-left-width: 2px;
	border-bottom-width: 2px;
	border-color: rgba(255, 102, 0, 0.9);
}

.portfolio-float__icon {
	position: relative;
	z-index: 1;
	width: 62%;
	height: 62%;
	filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.45));
}

.portfolio-float:hover .portfolio-float__icon,
.portfolio-float:focus-visible .portfolio-float__icon {
	animation: tech-icon-svg-glow 1.4s ease-in-out infinite;
}

/* Portafolio — pestañas + grilla 3 columnas */

.portfolio-grid {
	position: relative;
	margin-top: 0.35rem;
	width: 100%;
}

.portfolio-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0 0 1.1rem;
	padding: 0.2rem;
	border: 1px solid rgba(56, 189, 248, 0.22);
	border-radius: 8px;
	background: rgba(8, 14, 22, 0.45);
}

.portfolio-tabs__tab {
	appearance: none;
	flex: 1 1 auto;
	min-width: max-content;
	margin: 0;
	padding: 0.55rem 0.95rem;
	border: 1px solid transparent;
	border-radius: var(--tech-radius);
	background: transparent;
	color: rgba(226, 232, 240, 0.78);
	font-family: var(--font-title);
	font-size: 0.68rem;
	font-weight: var(--title-weight);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: inherit;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.portfolio-tabs__tab:hover,
.portfolio-tabs__tab:focus-visible {
	color: #fff;
	border-color: rgba(56, 189, 248, 0.4);
	outline: none;
}

.portfolio-tabs__tab.is-active {
	color: #fff;
	border-color: rgba(255, 102, 0, 0.55);
	background: rgba(255, 102, 0, 0.12);
	box-shadow: 0 0 18px rgba(255, 102, 0, 0.12);
}

.portfolio-tabs__panel {
	display: none;
}

.portfolio-tabs__panel.is-active {
	display: block;
}

.content-lightbox .portfolio-grid__list,
.portfolio-grid__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(0.85rem, 1.8vw, 1.25rem);
	align-items: stretch;
	width: 100%;
}

.portfolio-grid__list > .portfolio-card {
	min-width: 0;
	width: 100%;
}

.portfolio-grid__hint {
	margin: 0.75rem 0 0;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-align: center;
	color: rgba(148, 163, 184, 0.85);
}

@media (max-width: 900px) {
	.content-lightbox .portfolio-grid__list,
	.portfolio-grid__list {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.portfolio-tabs__tab {
		flex: 1 1 100%;
		text-align: center;
	}
}

.portfolio-card {
	height: 100%;
}

.portfolio-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	border: 1px solid rgba(56, 189, 248, 0.28);
	border-radius: var(--tech-radius);
	background: rgba(8, 14, 22, 0.55);
	overflow: hidden;
	touch-action: manipulation;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.portfolio-card__link:hover,
.portfolio-card__link:focus-visible {
	border-color: rgba(255, 102, 0, 0.65);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45), 0 0 24px rgba(56, 189, 248, 0.12);
	transform: translateY(-2px);
	outline: none;
}

.portfolio-card__link--static {
	cursor: default;
}

.portfolio-card__preview {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #0f172a;
}

.portfolio-card__preview::after {
	content: "";
	position: absolute;
	inset: 0;
	border-bottom: 1px solid rgba(56, 189, 248, 0.2);
	pointer-events: none;
}

.portfolio-card__preview img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.portfolio-card__link:hover .portfolio-card__preview img,
.portfolio-card__link:focus-visible .portfolio-card__preview img {
	transform: scale(1.03);
}

.portfolio-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.45rem;
	padding: 1rem 1rem 1.1rem;
	text-align: left;
}

.portfolio-card__title {
	margin: 0;
	font-size: 0.78rem;
	line-height: 1.22;
	text-transform: uppercase;
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: left top;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.portfolio-card__text {
	margin: 0;
	flex: 1;
	font-size: 0.86rem;
	font-weight: 300;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.portfolio-card__domain {
	display: inline-flex;
	align-items: center;
	margin-top: 0.15rem;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #ff6600;
}

.footer-content a {
	text-decoration: none;
	color: inherit;
}

.footer-content a:hover {
	text-decoration: underline;
}

.footer-separator {
	color: #fff;
}

.brand-ds {
	color: #ff6600 !important;
}

.brand-inf {
	color: #fff;
	transition: color 0.35s ease;
}

.footer-copyright--on-dark .footer-content,
.footer-copyright--on-dark .footer-content a,
.footer-copyright--on-dark .brand-inf,
.footer-copyright--on-dark .footer-separator,
.footer-copyright--on-light .footer-content,
.footer-copyright--on-light .footer-content a,
.footer-copyright--on-light .brand-inf,
.footer-copyright--on-light .footer-separator {
	color: #fff;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

/* Lightbox de contacto */

body.lightbox-open {
	overflow: hidden;
	overscroll-behavior: none;
}

body.lightbox-open #pan-scene {
	pointer-events: none;
	touch-action: none;
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.contact-lightbox,
.content-lightbox {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(0.75rem, 2vw, 1.5rem);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.contact-lightbox.is-open,
.content-lightbox.is-open {
	opacity: 1;
	visibility: visible;
	overflow: hidden;
	touch-action: none;
}

.contact-lightbox__backdrop,
.content-lightbox__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: transparent;
}

.contact-lightbox__dialog,
.content-lightbox__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(96vw, 920px);
	height: min(92dvh, 620px);
	max-height: min(92dvh, 620px);
	min-height: 0;
	overflow: hidden;
	pointer-events: auto;
	isolation: isolate;
	border-radius: 4px;
	background: transparent;
	box-shadow:
		0 0 28px rgba(56, 189, 248, 0.14),
		0 0 40px rgba(0, 0, 0, 0.45),
		0 18px 50px rgba(0, 0, 0, 0.35);
}

.contact-lightbox.is-open .contact-lightbox__dialog,
.contact-lightbox.is-open .content-lightbox__dialog,
.content-lightbox.is-open .content-lightbox__dialog {
	overflow: visible;
}

.content-lightbox__dialog--wide {
	width: min(98vw, 1040px);
	height: min(94dvh, 720px);
	max-height: min(94dvh, 720px);
}

.content-lightbox__frame {
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
	overflow: visible;
	border: 0;
	border-radius: 4px;
	background: transparent;
	box-shadow: none;
	transform-origin: center center;
}

.content-lightbox__draw {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
	pointer-events: none;
}

.content-lightbox__draw-path {
	fill: none;
	stroke: rgba(56, 189, 248, 0.78);
	stroke-width: 1.35;
	stroke-linecap: square;
	stroke-linejoin: miter;
	vector-effect: non-scaling-stroke;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.35));
}

.content-lightbox.is-open .content-lightbox__draw-path.is-drawing {
	animation: lightbox-border-draw 0.9s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.content-lightbox.is-open .content-lightbox__draw-path.is-drawn {
	stroke-dashoffset: 0;
	animation: none;
}

@keyframes lightbox-border-draw {
	to {
		stroke-dashoffset: 0;
	}
}

.content-lightbox__frame-corner {
	position: absolute;
	width: min(40%, 12rem);
	height: min(40%, 10rem);
	background-color: rgba(56, 189, 248, 0.04);
	background-image:
		linear-gradient(rgba(56, 189, 248, 0.36) 0.5px, transparent 0.5px),
		linear-gradient(90deg, rgba(56, 189, 248, 0.36) 0.5px, transparent 0.5px);
	background-size: 6px 6px;
	pointer-events: none;
}

.content-lightbox__frame-corner--tr {
	top: 0;
	right: 0;
	-webkit-mask-image: radial-gradient(circle at 100% 0%, #000 0%, transparent 72%);
	mask-image: radial-gradient(circle at 100% 0%, #000 0%, transparent 72%);
}

.content-lightbox__frame-corner--bl {
	bottom: 0;
	left: 0;
	-webkit-mask-image: radial-gradient(circle at 0% 100%, #000 0%, transparent 72%);
	mask-image: radial-gradient(circle at 0% 100%, #000 0%, transparent 72%);
}

/* Esquinas con cuadrícula (mismo efecto del lightbox) en cuadros y botones */

.tech-corners,
.lb-card,
.lb-card__link,
.portfolio-card__link,
.portfolio-tabs__tab,
.contact-lightbox__submit,
.contact-lightbox__field input,
.contact-lightbox__field textarea,
.servicios-back {
	position: relative;
	overflow: hidden;
	border-radius: var(--tech-radius);
}

.tech-corners::before,
.lb-card::before,
.lb-card__link::before,
.portfolio-card__link::before,
.portfolio-tabs__tab::before,
.contact-lightbox__submit::before,
.servicios-back::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	background-color: var(--tech-grid-fill);
	background-image:
		linear-gradient(var(--tech-grid-color) 0.5px, transparent 0.5px),
		linear-gradient(90deg, var(--tech-grid-color) 0.5px, transparent 0.5px);
	background-size: var(--tech-grid-size);
	pointer-events: none;
	-webkit-mask-image:
		radial-gradient(circle at 100% 0%, #000 0%, transparent 48%),
		radial-gradient(circle at 0% 100%, #000 0%, transparent 48%);
	-webkit-mask-composite: source-over;
	mask-image:
		radial-gradient(circle at 100% 0%, #000 0%, transparent 48%),
		radial-gradient(circle at 0% 100%, #000 0%, transparent 48%);
	mask-composite: add;
}

.lb-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 1rem 0.85rem 1.1rem;
	border: 1px solid rgba(56, 189, 248, 0.28);
	background: rgba(8, 14, 22, 0.45);
	text-align: center;
}

.lb-card > * {
	position: relative;
	z-index: 2;
}

.contact-lightbox__close,
.content-lightbox__close {
	position: absolute;
	top: clamp(2.25rem, 5vw, 3.25rem);
	right: clamp(2.25rem, 5vw, 3.25rem);
	z-index: 4;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
}

.contact-lightbox__close-border,
.content-lightbox__close-border {
	display: none;
}

.content-lightbox__close-ring {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(56, 189, 248, 0.45);
	border-radius: var(--tech-radius);
	box-shadow: 0 0 10px rgba(56, 189, 248, 0.2);
	pointer-events: none;
}

.content-lightbox__close:hover .content-lightbox__close-ring,
.content-lightbox__close:focus-visible .content-lightbox__close-ring {
	border-color: rgba(255, 102, 0, 0.75);
	box-shadow: 0 0 12px rgba(255, 102, 0, 0.3);
}

.contact-lightbox__close-icon,
.content-lightbox__close-icon {
	position: relative;
	z-index: 1;
	font-size: 1.35rem;
	line-height: 1;
	text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}

.contact-lightbox__close:hover .contact-lightbox__close-icon,
.contact-lightbox__close:focus-visible .contact-lightbox__close-icon,
.content-lightbox__close:hover .content-lightbox__close-icon,
.content-lightbox__close:focus-visible .content-lightbox__close-icon {
	color: #ff6600;
	outline: none;
}

.contact-lightbox__inner,
.content-lightbox__inner {
	position: absolute;
	inset: 9px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	padding: 0;
	background: rgba(0, 0, 0, 0.58);
	border-radius: 3px;
	box-shadow:
		inset 0 0 0 1px rgba(56, 189, 248, 0.22),
		inset 0 0 24px rgba(56, 189, 248, 0.05);
	color: #f8fafc;
	font-family: var(--font-body);
	font-weight: 400;
}

.content-lightbox__scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	touch-action: pan-y;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, 0.82) transparent;
	padding: clamp(3.75rem, 8vw, 5.5rem) clamp(2.6rem, 6.3vw, 4.35rem) clamp(3rem, 6vw, 4.5rem) clamp(3.25rem, 7vw, 5rem);
}

.content-lightbox__scroll.is-scrollable {
	overflow-y: scroll;
}

.content-lightbox__scroll::-webkit-scrollbar {
	width: 4px;
}

.content-lightbox__scroll::-webkit-scrollbar-track {
	background: transparent;
}

.content-lightbox__scroll::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.82);
	border-radius: 999px;
}

.content-lightbox__scroll::-webkit-scrollbar-thumb:hover {
	background: rgba(255, 102, 0, 0.9);
}

.content-lightbox__dialog--wide .content-lightbox__inner {
	max-height: none;
}

.contact-lightbox__header,
.content-lightbox__header {
	text-align: center;
	margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.content-lightbox__header--left,
.content-lightbox__body--left {
	text-align: left;
}

.content-lightbox__header--split {
	display: grid;
	grid-template-columns: min(42%, 300px) 1fr;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	align-items: center;
	text-align: left;
}

.content-lightbox__header-main {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.content-lightbox__header--split .content-lightbox__text--intro {
	max-width: none;
	margin: 0;
}

.content-lightbox__header--split .content-lightbox__title,
.content-lightbox__header--left .content-lightbox__title {
	transform-origin: left top;
}

.content-lightbox__figure {
	margin: 0;
	border: 1px solid rgba(56, 189, 248, 0.28);
	border-radius: 6px;
	overflow: hidden;
	background: rgba(8, 14, 22, 0.55);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.content-lightbox__figure img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: middle;
}

.contact-lightbox__eyebrow,
.content-lightbox__eyebrow {
	margin: 0 0 0.5rem;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.contact-lightbox__title,
.content-lightbox__title {
	margin: 0;
	font-size: clamp(0.92rem, 1.95vw, 1.22rem);
	line-height: 1.2;
	text-transform: uppercase;
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: center top;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
}

/* Separación título → descripción */
.content-lightbox__header-main > .content-lightbox__title,
.content-lightbox__header > .content-lightbox__title,
.content-lightbox__header--left > .content-lightbox__title,
.contact-lightbox__title,
.content-lightbox__title--detail {
	padding-bottom: var(--title-desc-gap);
}

.content-lightbox__header--left {
	margin-bottom: 0;
}

.content-lightbox__text--intro {
	max-width: 52rem;
	margin: 0 auto;
}

.contact-lightbox__text,
.content-lightbox__text {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	font-weight: 300;
	line-height: 1.65;
	letter-spacing: 0.01em;
	color: rgba(255, 255, 255, 0.95);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.content-lightbox__body--left .content-lightbox__text:last-child {
	margin-bottom: 0;
}

.lb-cards {
	display: grid;
	gap: clamp(1rem, 2.5vw, 1.75rem);
}

.lb-cards--3 {
	grid-template-columns: repeat(3, 1fr);
}

.lb-cards--4 {
	grid-template-columns: repeat(4, 1fr);
}

.lb-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-bottom: 0.65rem;
	color: #fff;
}

.lb-card__icon svg {
	width: 100%;
	height: 100%;
}

.lb-card__icon--accent {
	color: #ff6600;
}

.lb-card__title {
	margin: 0 0 0.55rem;
	font-size: 0.72rem;
	line-height: 1.22;
	text-transform: uppercase;
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: center top;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.lb-card__text {
	margin: 0 0 var(--card-action-gap);
	flex: 1 1 auto;
	font-size: 0.88rem;
	font-weight: 300;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.92);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.lb-card__link {
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 0;
	padding: 0.5rem 0.9rem;
	border: 1px solid rgba(56, 189, 248, 0.45);
	border-radius: var(--tech-radius);
	background: rgba(56, 189, 248, 0.08);
	font-family: inherit;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ff6600;
	text-shadow: none;
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.lb-card__link:hover,
.lb-card__link:focus-visible {
	color: #fff;
	border-color: rgba(255, 102, 0, 0.75);
	background: rgba(255, 102, 0, 0.18);
	outline: none;
}

.content-lightbox__inner--servicios {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
}

.content-lightbox__inner--servicios > .servicios-panel:not([hidden]) {
	flex: 1 1 auto;
	min-height: 0;
}

.servicios-panel {
	flex: 1 1 auto;
	min-height: 0;
	touch-action: pan-y;
}

.servicios-panel[hidden] {
	display: none !important;
}

.servicios-panel--list.content-lightbox__scroll {
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.servicios-panel--list .lb-cards {
	padding-bottom: 1.25rem;
}

.servicios-panel--detail {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	overflow: hidden;
	padding: clamp(3.75rem, 8vw, 5.5rem) clamp(2.6rem, 6.3vw, 4.35rem) clamp(3rem, 6vw, 4.5rem) clamp(3.25rem, 7vw, 5rem);
	text-align: left;
}

.servicios-panel--detail .content-lightbox__scroll {
	padding: 0;
	padding-right: 0.35rem;
}

.servicios-back {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
	padding: 0;
	border: 0;
	background: transparent;
	font-family: var(--font-body);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.88);
	cursor: pointer;
	transition: color 0.2s ease;
}

.servicios-back:hover,
.servicios-back:focus-visible {
	color: #ff6600;
	outline: none;
}

.servicios-back__icon {
	font-size: 1rem;
	line-height: 1;
}

.content-lightbox__title--detail {
	text-align: left;
	margin-bottom: 0;
	padding-bottom: var(--title-desc-gap);
	transform-origin: left top;
}

.content-lightbox__text--left {
	text-align: left;
	margin-bottom: 1rem;
}

.servicios-detail__scroll {
	flex: 1 1 auto;
	min-height: 0;
	max-height: none;
}

.servicios-detail__list {
	margin: 0;
	padding-left: 1.15rem;
	font-size: 0.95rem;
	font-weight: 300;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.95);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.servicios-detail__list li + li {
	margin-top: 0.65rem;
}

.contact-lightbox__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 4vw, 2.75rem);
	align-items: start;
}

.contact-lightbox__subtitle {
	margin: 0 0 0.75rem;
	font-size: 0.82rem;
	line-height: 1.1;
	text-transform: uppercase;
	transform: scale(var(--title-scale-x), var(--title-scale-y));
	transform-origin: left top;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.contact-lightbox__list {
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.contact-lightbox__list li {
	position: relative;
	padding-left: 1.65rem;
	margin-bottom: 0.55rem;
	font-size: 0.92rem;
	font-weight: 400;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.95);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.contact-lightbox__list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0.05rem;
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: #ff6600;
	color: #fff;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1.15rem;
	text-align: center;
}

.contact-lightbox__channels p {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.35rem 0;
	font-size: 0.92rem;
}

.contact-lightbox__channels a {
	color: #fff;
	text-decoration: none;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.contact-lightbox__channels a:hover {
	text-decoration: underline;
}

.contact-lightbox__icon {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.75);
}

.contact-lightbox__form {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.contact-lightbox__field--honeypot {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.contact-lightbox__field--checkbox {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 0.1rem;
	font-size: 0.86rem;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.9);
	cursor: pointer;
	user-select: none;
}

.contact-lightbox__field--checkbox input[type='checkbox'] {
	width: 1rem;
	height: 1rem;
	margin: 0;
	accent-color: #ff6600;
	cursor: pointer;
	flex-shrink: 0;
}

.contact-lightbox__field--checkbox span {
	line-height: 1.3;
}

.contact-lightbox__form-status {
	margin: 0;
	min-height: 1.35rem;
	padding: 0.55rem 0.7rem;
	border-radius: 4px;
	font-size: 0.84rem;
	font-weight: 600;
	line-height: 1.4;
	opacity: 0;
	transition: opacity 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.contact-lightbox__form-status.is-visible {
	opacity: 1;
}

.contact-lightbox__form-status.is-success {
	color: #e0f7ff;
	background: rgba(56, 189, 248, 0.16);
	border: 1px solid rgba(56, 189, 248, 0.45);
}

.contact-lightbox__form-status.is-error {
	color: #ffe8d6;
	background: rgba(255, 102, 0, 0.14);
	border: 1px solid rgba(255, 102, 0, 0.5);
}

.svg-defs {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden;
}

.field-frame {
	position: relative;
	display: block;
	width: 100%;
	border: 1px solid rgba(56, 189, 248, 0.32);
	border-radius: 4px;
	background: rgba(8, 16, 32, 0.45);
	box-shadow: inset 0 0 14px rgba(56, 189, 248, 0.05);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.field-frame:focus-within {
	border-color: rgba(255, 102, 0, 0.55);
	box-shadow:
		inset 0 0 14px rgba(255, 102, 0, 0.06),
		0 0 12px rgba(255, 102, 0, 0.12);
}

.field-frame__border {
	display: none;
}

.field-frame__path {
	display: none;
}

.field-frame--textarea {
	min-height: 7.5rem;
}

.contact-lightbox__field input,
.contact-lightbox__field textarea {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 0;
	border-radius: var(--tech-radius);
	background: rgba(0, 0, 0, 0.25);
	color: #fff;
	font-family: var(--font-body);
	font-size: 0.9rem;
	font-weight: 400;
}

.contact-lightbox__field .field-frame input,
.contact-lightbox__field .field-frame textarea {
	position: relative;
	z-index: 0;
	display: block;
}

.contact-lightbox__field input::placeholder,
.contact-lightbox__field textarea::placeholder {
	color: rgba(255, 255, 255, 0.55);
}

.contact-lightbox__field textarea {
	resize: vertical;
	min-height: 7.5rem;
}

.contact-lightbox__submit {
	margin-top: 0.25rem;
	padding: 0.85rem 1rem;
	border: 0;
	border-radius: var(--tech-radius);
	background: rgba(255, 102, 0, 0.85);
	color: #fff;
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.15s ease;
}

.contact-lightbox__submit:hover {
	background: #ff6600;
}

.contact-lightbox__submit:focus-visible {
	outline: 2px solid #38bdf8;
	outline-offset: 3px;
	background: #ff6600;
}

.contact-lightbox__field input:focus-visible,
.contact-lightbox__field textarea:focus-visible {
	outline: 2px solid #38bdf8;
	outline-offset: 2px;
}

/* Click — cruz fina (línea H + línea V) + destello suave */

.click-fx {
	position: fixed;
	z-index: 180;
	width: 0;
	height: 0;
	pointer-events: none;
}

.click-fx__gleam {
	position: absolute;
	left: 0;
	top: 0;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(255, 255, 255, 0.42) 0%,
		rgba(56, 189, 248, 0.18) 35%,
		rgba(255, 102, 0, 0.08) 55%,
		transparent 70%
	);
	opacity: 0;
	animation: click-fx-gleam 0.48s ease-out forwards;
}

.click-fx__cross {
	position: absolute;
	left: 0;
	top: 0;
	width: 40px;
	height: 40px;
	margin: -20px 0 0 -20px;
	opacity: 0;
	animation: click-fx-cross 0.5s ease-out forwards;
}

.click-fx__line {
	position: absolute;
	display: block;
	background: rgba(232, 238, 245, 0.9);
	box-shadow: 0 0 3px rgba(56, 189, 248, 0.25);
}

.click-fx__line--h {
	left: 0;
	top: 50%;
	width: 100%;
	height: 1px;
	transform: translateY(-50%);
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(232, 238, 245, 0.75) 18%,
		rgba(255, 255, 255, 0.95) 50%,
		rgba(232, 238, 245, 0.75) 82%,
		transparent 100%
	);
}

.click-fx__line--v {
	left: 50%;
	top: 0;
	width: 1px;
	height: 100%;
	transform: translateX(-50%);
	background: linear-gradient(
		180deg,
		transparent 0%,
		rgba(232, 238, 245, 0.75) 18%,
		rgba(255, 255, 255, 0.95) 50%,
		rgba(232, 238, 245, 0.75) 82%,
		transparent 100%
	);
}

@keyframes click-fx-gleam {
	0% {
		transform: scale(0.35);
		opacity: 0;
	}

	22% {
		transform: scale(1);
		opacity: 0.7;
	}

	100% {
		transform: scale(1.55);
		opacity: 0;
	}
}

@keyframes click-fx-cross {
	0% {
		transform: scale(0.85);
		opacity: 0;
	}

	18% {
		opacity: 0.95;
	}

	100% {
		transform: scale(1.08);
		opacity: 0;
	}
}

/* Highlight sweep — barrido suave de luz sobre toda la página */

.highlight-sweep {
	position: fixed;
	inset: 0;
	z-index: 9000;
	pointer-events: none;
	overflow: hidden;
	opacity: 0;
	mix-blend-mode: soft-light;
}

.highlight-sweep.is-active {
	opacity: 1;
}

.highlight-sweep__beam {
	position: absolute;
	top: -35%;
	left: 0;
	width: min(75vw, 580px);
	height: 170%;
	transform: translate3d(-140%, 0, 0) rotate(14deg);
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(56, 189, 248, 0.06) 24%,
		rgba(255, 255, 255, 0.18) 48%,
		rgba(255, 102, 0, 0.07) 72%,
		transparent 100%
	);
	filter: blur(22px);
	will-change: transform, opacity;
}

.highlight-sweep.is-active .highlight-sweep__beam {
	animation: highlight-sweep-move 3s cubic-bezier(0.4, 0.05, 0.2, 1) forwards;
}

@keyframes highlight-sweep-move {
	0% {
		transform: translate3d(-140%, 0, 0) rotate(14deg);
		opacity: 0;
	}

	14% {
		opacity: 0.85;
	}

	86% {
		opacity: 0.85;
	}

	100% {
		transform: translate3d(290%, 0, 0) rotate(14deg);
		opacity: 0;
	}
}

/* Lightbox Nosotros — logo 3D + contenido centrado */

.content-lightbox__inner--quienes {
	overflow: hidden;
}

.quienes-logo-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: grid;
	place-items: center;
	pointer-events: none;
	perspective: 900px;
	perspective-origin: 50% 50%;
	overflow: hidden;
}

.quienes-logo-bg__img {
	width: min(58%, 280px);
	height: auto;
	opacity: 0.2;
	transform-style: preserve-3d;
	will-change: transform;
	animation: quienes-logo-y-spin 14s linear infinite;
	filter: drop-shadow(0 0 18px rgba(56, 189, 248, 0.25));
}

@keyframes quienes-logo-y-spin {
	from {
		transform: rotateY(0deg);
	}

	to {
		transform: rotateY(360deg);
	}
}

.content-lightbox__scroll--quienes {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	height: 100%;
	min-height: 100%;
	box-sizing: border-box;
}

.content-lightbox__header--quienes {
	text-align: center;
	margin-bottom: 0;
	width: min(100%, 36rem);
}

.content-lightbox__header--quienes .content-lightbox__title {
	transform-origin: center top;
	padding-bottom: var(--title-desc-gap);
}

.content-lightbox__body--quienes {
	text-align: center;
	width: min(100%, 36rem);
}

.content-lightbox__body--quienes .content-lightbox__text:last-child {
	margin-bottom: 0;
}

.content-lightbox__text--focus {
	margin-top: 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(56, 189, 248, 0.22);
	color: rgba(226, 232, 240, 0.95);
}

@media (max-width: 768px) {
	.pan-scene {
		cursor: var(--cursor-target);
	}

	.contact-lightbox,
	.content-lightbox {
		align-items: stretch;
		justify-content: flex-start;
		height: 100dvh;
		max-height: 100dvh;
		padding: 0.5rem;
		box-sizing: border-box;
	}

	.contact-lightbox__dialog,
	.content-lightbox__dialog {
		width: 100%;
		height: calc(100dvh - 1rem);
		max-height: calc(100dvh - 1rem);
		min-height: 0;
		flex: 1 1 auto;
		align-self: stretch;
	}

	.content-lightbox__dialog--wide {
		max-height: calc(100dvh - 1rem);
		height: calc(100dvh - 1rem);
	}

	.contact-lightbox__inner,
	.content-lightbox__inner,
	.content-lightbox__inner--servicios {
		min-height: 0;
	}

	.content-lightbox__scroll,
	.servicios-panel--detail {
		padding: clamp(2.75rem, 11vw, 3.25rem) clamp(0.95rem, 4vw, 1.35rem) clamp(1.25rem, 4vw, 1.75rem) clamp(1.15rem, 4.5vw, 1.5rem);
	}

	.servicios-panel--detail .content-lightbox__scroll {
		padding: 0;
		padding-right: 0.35rem;
	}

	.contact-lightbox__close,
	.content-lightbox__close {
		top: 0.85rem;
		right: 0.85rem;
	}

	.content-lightbox__scroll::-webkit-scrollbar {
		width: 5px;
	}

	.contact-lightbox__grid {
		grid-template-columns: 1fr;
	}

	.lb-cards--3,
	.lb-cards--4 {
		grid-template-columns: 1fr;
	}

	.portfolio-grid__hint {
		font-size: 0.65rem;
	}

	.section-hotspots {
		flex-wrap: nowrap;
		justify-content: center;
		align-items: flex-start;
		gap: clamp(0.35rem, 1.6vw, 0.65rem);
		padding: clamp(4.25rem, 11.5vw, 5.25rem) clamp(0.35rem, 1.5vw, 0.75rem) 0;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.section-hotspot {
		flex: 0 1 auto;
		min-width: 0;
		padding: 0.2rem;
		gap: 0.12rem;
		transform: none;
	}

	.section-hotspot__icon {
		width: clamp(2.35rem, 14.5vw, 2.85rem);
		height: clamp(2.35rem, 14.5vw, 2.85rem);
		border-radius: 10px;
		--cube-d: 0;
		transform: none;
	}

	.section-hotspot__faces {
		display: none;
	}

	.section-hotspot__glow {
		border-radius: 14px;
	}

	.section-hotspot__corner {
		width: 7px;
		height: 7px;
	}

	.section-hotspot__frame {
		inset: 4px;
	}

	.section-hotspot__label {
		max-width: 4.75rem;
		font-size: clamp(11px, 2.6vw, 12px);
		letter-spacing: 0.02em;
		line-height: 1.2;
	}

	.corner-float__label {
		max-width: 4.5rem;
	}

	.content-lightbox__header--split {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.highlight-sweep,
	.highlight-sweep.is-active .highlight-sweep__beam {
		display: none;
		animation: none;
	}

	.custom-cursor.is-hot .custom-cursor__svg {
		animation: none;
	}

	.content-lightbox__draw-path,
	.content-lightbox.is-open .content-lightbox__draw-path.is-drawing {
		animation: none;
		stroke-dashoffset: 0;
	}

	.whatsapp-float__glow,
	.portfolio-float__glow,
	.section-hotspot__glow {
		animation: none;
	}

	.section-hotspot:hover .section-hotspot__icon,
	.section-hotspot:focus-visible .section-hotspot__icon,
	.whatsapp-float:hover,
	.whatsapp-float:focus-visible,
	.portfolio-float:hover,
	.portfolio-float:focus-visible {
		animation: none;
		transform: scale(1.04);
	}

	.section-hotspot:hover .tech-icon__wave,
	.section-hotspot:focus-visible .tech-icon__wave,
	.whatsapp-float:hover .tech-icon__wave,
	.whatsapp-float:focus-visible .tech-icon__wave,
	.portfolio-float:hover .tech-icon__wave,
	.portfolio-float:focus-visible .tech-icon__wave {
		animation: none;
		opacity: 0;
	}

	.section-hotspot:hover .section-hotspot__svg,
	.section-hotspot:focus-visible .section-hotspot__svg,
	.whatsapp-float:hover .whatsapp-float__icon,
	.whatsapp-float:focus-visible .whatsapp-float__icon,
	.portfolio-float:hover .portfolio-float__icon,
	.portfolio-float:focus-visible .portfolio-float__icon {
		animation: none;
	}

	.quienes-logo-bg__img {
		animation: none;
		transform: rotateY(25deg);
	}

	.page-loader__path,
	.page-loader__laser-group,
	.page-loader__bar-fill {
		animation: none;
	}

	.page-loader__path {
		stroke-dashoffset: 0;
	}

	.page-loader__bar-fill {
		transform: scaleX(1);
	}

	.page-loader__laser-group {
		opacity: 0;
	}

	.site-menu__trigger {
		transform: none;
	}

	.site-menu__panel {
		transition: none;
	}

	.menu-preview.is-visible,
	.site-tagline {
		transition: none;
	}

	.site-tagline.is-morphing .site-tagline__panel.is-active,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__logo,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--1,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--2,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-ring--3,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--1,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--2,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--3,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-spark--4,
	.site-tagline.is-whirling .site-tagline__panel--logo.is-active .site-tagline__vortex-core,
	.site-tagline.is-settling .site-tagline__panel.is-active {
		animation: none;
	}

	.section-preview.is-visible {
		animation: preview-fade-in 0.5s ease forwards;
	}

	.contact-lightbox__border-path,
	.content-lightbox__border-path,
	.field-frame__path {
		animation: none;
	}

	.content-lightbox.is-open .content-lightbox__frame,
	.contact-lightbox.is-open .content-lightbox__frame,
	.content-lightbox.is-open .content-lightbox__frame::before,
	.contact-lightbox.is-open .content-lightbox__frame::before,
	.content-lightbox.is-open .content-lightbox__frame::after,
	.contact-lightbox.is-open .content-lightbox__frame::after {
		animation: none;
	}

	.content-lightbox.is-open .content-lightbox__frame,
	.contact-lightbox.is-open .content-lightbox__frame {
		transform: none;
		border-color: rgba(56, 189, 248, 0.55);
		box-shadow:
			0 0 0 1px rgba(255, 102, 0, 0.18),
			0 0 22px rgba(56, 189, 248, 0.22);
	}

	.section-hotspot__svg {
		filter: none;
	}

	.section-hotspot {
		transform: none;
	}

	.section-hotspot {
		--tilt-rx: 0deg !important;
		--tilt-ry: 0deg !important;
		--tilt-tz: 0px !important;
	}
}
