html {
	scroll-behavior: smooth;
}

body {
	background-color: #F6F4EA;
	font-family: 'DM Sans', sans-serif;
	font-variant-emoji: text;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: #3DDC97;
	color: #0D0D0D;
}

.elementor section[id] {
	scroll-margin-top: 0;
}

/* Skip link: visible only on keyboard focus */
.ea11y-skip-to-content-backdrop {
	display: none;
}

.ea11y-skip-to-content-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 10000;
	padding: 12px 18px;
	border-radius: 999px;
	background: #0D0D0D;
	color: #F6F4EA;
	font: 500 13px/1 'DM Sans', sans-serif;
	text-decoration: none;
	transform: translateY(-200%);
	transition: transform 200ms ease;
}

.ea11y-skip-to-content-link:focus {
	transform: none;
	outline: 2px solid #3DDC97;
	outline-offset: 3px;
}

/* ---------- Manifesto title marquee ---------- */
[data-id="abb4528"] {
	animation: wc-marquee-440 34s linear infinite;
	will-change: transform;
}

@keyframes wc-marquee-440 {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

/* ---------- Draggable media carousel (driven by script.js) ---------- */
[data-id="33fb103e"] {
	cursor: grab;
	touch-action: pan-y;
	-webkit-user-select: none;
	user-select: none;
}

[data-id="33fb103e"].is-dragging {
	cursor: grabbing;
}

[data-id="5b38c0c7"] {
	will-change: transform;
}

[data-id="5b38c0c7"] img,
[data-id="5b38c0c7"] video {
	-webkit-user-drag: none;
	pointer-events: none;
}

/* ---------- Hero ---------- */
[data-id="14c1e90d"] video {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/* Difference text over the video. Safari (iOS) does not blend static children against a composited <video>,
   so the whole text overlay blends as one composited layer and its children render normally inside it. */
body .elementor .e-13a86774-1efa {
	mix-blend-mode: difference;
	transform: translateZ(0);
}

body .elementor .e-13a86774-1efa .e-6d5f7a27-8c22,
body .elementor .e-13a86774-1efa .e-73de5a6e-4ac9,
body .elementor .e-13a86774-1efa .e-670a6482-26c1 {
	mix-blend-mode: normal;
}

/* ---------- Instagram title: fluid moving gradient (widgets carry no data-id in production, so target the style class) ---------- */
body .elementor .e-1d3e6c7a-5225 {
	background-image:
		radial-gradient(circle at 20% 30%, #3DDC97 0%, transparent 42%),
		radial-gradient(circle at 80% 20%, #7B61FF 0%, transparent 45%),
		radial-gradient(circle at 60% 80%, #FF5FA2 0%, transparent 45%),
		radial-gradient(circle at 10% 90%, #FFB36B 0%, transparent 40%),
		linear-gradient(120deg, #3DDC97, #9BF6D0, #7B61FF, #FF5FA2, #FFB36B, #3DDC97);
	background-size: 220% 220%, 240% 240%, 200% 200%, 260% 260%, 300% 300%;
	background-position: 0% 0%, 100% 0%, 50% 100%, 0% 100%, 0% 50%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
	animation: wc-fluid-440 16s ease-in-out infinite alternate;
}

body .elementor .e-1d3e6c7a-5225 span {
	color: inherit;
	-webkit-text-fill-color: transparent;
}

@keyframes wc-fluid-440 {
	0%   { background-position: 0% 0%, 100% 0%, 50% 100%, 0% 100%, 0% 50%; }
	25%  { background-position: 60% 40%, 40% 60%, 0% 30%, 80% 20%, 50% 30%; }
	50%  { background-position: 100% 100%, 0% 100%, 60% 0%, 100% 0%, 100% 50%; }
	75%  { background-position: 30% 80%, 80% 30%, 100% 60%, 20% 80%, 50% 70%; }
	100% { background-position: 0% 50%, 100% 50%, 30% 20%, 60% 100%, 0% 50%; }
}

/* ---------- Portfolio toggles: difference overlay ---------- */
.wc-pf-head {
	list-style: none;
	position: relative;
}

.wc-pf-head::-webkit-details-marker {
	display: none;
}

.wc-pf-head > [aria-hidden="true"] {
	display: none;
}

.wc-pf-head::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 2;
	background: #FFFFFF;
	mix-blend-mode: difference;
	pointer-events: none;
	transform: scaleY(0);
	transform-origin: 50% 100%;
	transition: transform 500ms cubic-bezier(.7, 0, .2, 1);
}

.wc-pf-head:hover::after,
.wc-pf-head:focus-visible::after,
.wc-pf-item[open] > .wc-pf-head::after {
	transform: scaleY(1);
	transform-origin: 50% 0%;
}

.wc-pf-head:focus-visible {
	outline: none;
}

.wc-pf-arrow {
	display: inline-block;
	transition: transform 400ms cubic-bezier(.2, .7, .2, 1);
}

.wc-pf-item[open] .wc-pf-arrow {
	transform: rotate(45deg);
}

.wc-pf-item[open] .wc-pf-body {
	padding-top: 28px;
	animation: wc-reveal-440 600ms cubic-bezier(.2, .7, .2, 1) both;
}

@keyframes wc-reveal-440 {
	from { opacity: 0; transform: translate3d(0, 24px, 0); }
	to { opacity: 1; transform: none; }
}

/* ---------- FAQ ---------- */
[data-id="31d63794"] summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}

[data-id="31d63794"] summary::-webkit-details-marker {
	display: none;
}

[data-id="31d63794"] summary > [aria-hidden="true"] {
	display: none;
}

[data-id="31d63794"] summary::after {
	content: '+';
	flex: 0 0 auto;
	font-family: 'DM Sans', sans-serif;
	font-size: 34px;
	font-weight: 300;
	line-height: 1;
	color: #0D0D0D;
	transition: transform 350ms cubic-bezier(.2, .7, .2, 1);
}

[data-id="31d63794"] details[open] > summary::after {
	transform: rotate(45deg);
}

[data-id="31d63794"] details[open] > summary + * {
	animation: wc-reveal-440 450ms ease both;
}

/* ---------- Form ---------- */
[data-id="4176483f"] input::placeholder,
[data-id="4176483f"] textarea::placeholder {
	color: #0D0D0D;
	opacity: 0.35;
}

[data-id="4176483f"] input:focus,
[data-id="4176483f"] textarea:focus,
[data-id="4176483f"] select:focus {
	outline: none;
}

[data-id="4176483f"] input:focus-visible,
[data-id="4176483f"] textarea:focus-visible,
[data-id="4176483f"] select:focus-visible,
[data-id="4176483f"] button:focus-visible {
	outline: 2px solid #3DDC97;
	outline-offset: 4px;
}

/* Consent label: the privacy link must read as a link */
[data-id="4176483f"] label a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

[data-id="4176483f"] label a:hover {
	opacity: 0.6;
}

[data-id="64e0bda0"] {
	content-visibility: auto;
	contain-intrinsic-size: auto 700px;
}

/* ---------- Fallback: element custom CSS that Elementor drops when the Pro license is inactive ---------- */
body .elementor .e-19e595d0-73a8 { pointer-events: none; z-index: 999; }
body .elementor .e-2f952e30-c47d { pointer-events: auto; }
body .elementor .e-2c1e9204-97c1 { filter: invert(1); pointer-events: auto; }
body .elementor .e-5a1e364f-1374 { white-space: nowrap; }

body .elementor .e-2fb7127e-3662 { height: 100vh; height: 100svh; }
body .elementor .e-13a86774-1efa { inset: 0; z-index: auto; }
body .elementor .e-7ce7886b-e544 { text-underline-offset: 5px; }

body .elementor .e-74948773-8368,
body .elementor .e-606a3b02-45c8,
body .elementor .e-3b593c5d-c2bd { white-space: nowrap; }
body .elementor .e-2620de0e-f324 { width: max-content; white-space: nowrap; }
body .elementor .e-64bb796f-91a3 { width: max-content; }
body .elementor .e-2613080f-27ae,
body .elementor .e-3769a509-ed4e { max-width: none; aspect-ratio: auto; }

body .elementor .e-69da98e1-ba25 { border-bottom-style: solid; border-bottom-color: rgba(246, 244, 234, 0.2); }
body .elementor .e-4031d361-838f,
body .elementor .e-311a881a-833b { border-bottom-style: solid; border-bottom-color: #0D0D0D; }
body .elementor .e-19733080-6f05,
body .elementor .e-6ce92a2-bac1,
body .elementor .e-3cef5be3-c51f,
body .elementor .e-74f618e9-8479,
body .elementor .e-780c04df-3503,
body .elementor .e-600179ea-8a1d,
body .elementor .e-7df94161-c11a,
body .elementor .e-22e19a09-9d77 { border-top-style: solid; border-top-color: #0D0D0D; }

body .elementor .e-507d6e7a-503e { justify-self: center; }
body .elementor .e-1a752494-d73e { white-space: nowrap; }

@media (min-width: 768px) {
	body .elementor .e-618bec88-20aa { gap: 34px 36px; }
}

@media (hover: none) {
	.wc-pf-head:hover::after { transform: scaleY(0); }
	.wc-pf-item[open] > .wc-pf-head::after { transform: scaleY(1); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	[data-id="abb4528"],
	body .elementor .e-1d3e6c7a-5225 { animation: none; }
	.wc-pf-item[open] .wc-pf-body { animation: none; }
	.wc-pf-head::after { transition: none; }
}
