/* ==========================================================================
   Divix Studio
   Palette: ink (true black), paper (warm white), signal red, smoke, graphite.
   Type: Archivo (wide, for headlines) + Instrument Sans (body).
   ========================================================================== */

:root {
	--ink: #000000;
	--paper: #EDEBE6;
	--red: #FF241B;
	--smoke: #8E8A85;
	--graphite: #151413;
	--line: rgba(237, 235, 230, .14);
	--display: "Archivo", "Arial Black", system-ui, sans-serif;
	--body: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--wrap: 1320px;
	--gutter: clamp(20px, 4vw, 48px);
	--ease: cubic-bezier(.2, .7, .1, 1);
	--header-h: 86px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--body);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Film grain over everything */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 200;
	pointer-events: none;
	opacity: .06;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0 0 1em; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
::selection { background: var(--red); color: #fff; }

h1, h2, h3, h4 {
	margin: 0;
	font-family: var(--display);
	font-stretch: 125%;
	font-weight: 800;
	line-height: .95;
	letter-spacing: -.01em;
	color: var(--paper);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: 12px; top: -60px;
	z-index: 300;
	padding: 10px 16px;
	border-radius: 6px;
	background: var(--red);
	color: #fff;
	text-decoration: none;
}
.skip-link:focus { top: 12px; }

.dx-wrap { width: min(var(--wrap), 100% - 2 * var(--gutter)); margin-inline: auto; }

/* --------------------------------------------------------------------------
   Buttons & links
   -------------------------------------------------------------------------- */
.dx-btn {
	--bg: var(--red);
	--fg: #fff;
	--bd: var(--red);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 17px 28px;
	border: 1px solid var(--bd);
	border-radius: 999px;
	background: var(--bg);
	color: var(--fg);
	font: 600 15px/1 var(--body);
	text-decoration: none;
	cursor: pointer;
	transition: color .45s var(--ease), border-color .45s var(--ease);
}
.dx-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: var(--paper);
	transform: translateY(101%);
	transition: transform .5s var(--ease);
}
.dx-btn:hover { color: var(--ink); border-color: var(--paper); }
.dx-btn:hover::before { transform: none; }
.dx-btn--ghost { --bg: transparent; --fg: var(--paper); --bd: rgba(237, 235, 230, .35); }
.dx-btn--sm { padding: 13px 20px; font-size: 14px; }

.dx-link {
	color: var(--paper);
	font-weight: 600;
	text-decoration: none;
	background: linear-gradient(var(--red), var(--red)) left bottom / 100% 1.5px no-repeat;
	padding-bottom: 4px;
	transition: color .3s, background-size .45s var(--ease);
}
.dx-link:hover { color: var(--red); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.dx-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	padding: 22px 0;
	border-bottom: 1px solid transparent;
	transition: padding .45s var(--ease), background-color .45s, border-color .45s;
}
.admin-bar .dx-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dx-header { top: 46px; } }

.dx-header.is-scrolled {
	padding: 12px 0;
	background: rgba(0, 0, 0, .78);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom-color: var(--line);
}
.menu-open .dx-header { background: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }

.dx-header__inner { display: flex; align-items: center; gap: clamp(20px, 3vw, 40px); }

.dx-logo { position: relative; z-index: 2; display: flex; align-items: center; margin-right: auto; text-decoration: none; }
.dx-logo img { width: auto; max-height: 42px; }
.dx-logo-white .dx-logo img,
.dx-logo-white .dx-logo__text {
	box-sizing: border-box;
	max-height: 56px;
	padding: 5px;
	border-radius: 10px;
	background: #fff;
	color: var(--ink);
	box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
}
.dx-logo-white .dx-header.is-scrolled .dx-logo img { max-height: 50px; padding: 8px 14px; }
.dx-logo__text { font-family: var(--display); font-stretch: 125%; font-weight: 800; font-size: 22px; }

.dx-menu { display: flex; gap: clamp(18px, 2.4vw, 34px); margin: 0; padding: 0; list-style: none; }
.dx-menu a {
	position: relative;
	padding: 6px 0;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}
.dx-menu a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1.5px;
	background: var(--red);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .45s var(--ease);
}
.dx-menu a:hover::after,
.dx-menu .current-menu-item > a::after,
.dx-menu .current_page_item > a::after { transform: scaleX(1); transform-origin: left; }

.dx-burger {
	position: relative;
	z-index: 2;
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
	width: 46px; height: 46px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	cursor: pointer;
}
.dx-burger span:not(.screen-reader-text) { display: block; width: 18px; height: 1.5px; background: #fff; transition: transform .4s var(--ease); }
.dx-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.75px) rotate(45deg); }
.dx-burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.75px) rotate(-45deg); }

.dx-mobile {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 130px var(--gutter) 40px;
	background: var(--ink);
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path .65s var(--ease), visibility 0s linear .65s;
}
.menu-open { overflow: hidden; }
.menu-open .dx-mobile { clip-path: inset(0); visibility: visible; transition: clip-path .65s var(--ease); }
.dx-mobile .dx-menu { flex-direction: column; gap: 4px; }
.dx-mobile .dx-menu a {
	display: inline-block;
	font-family: var(--display);
	font-stretch: 125%;
	font-weight: 800;
	font-size: clamp(34px, 9vw, 60px);
	line-height: 1.15;
}
.dx-mobile__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; }

@media (max-width: 960px) {
	.dx-nav, .dx-header__cta { display: none; }
	.dx-burger { display: inline-flex; }
	.dx-logo img { max-height: 34px; }
	.dx-logo-white .dx-logo img, .dx-logo-white .dx-header.is-scrolled .dx-logo img { max-height: 46px; padding: 7px 12px; border-radius: 8px; }
}

/* --------------------------------------------------------------------------
   Hero (homepage) — camera viewfinder
   -------------------------------------------------------------------------- */
.dx-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	min-height: 100vh;
	min-height: 100svh;
	padding: 150px 0 clamp(64px, 10vh, 120px);
}
.dx-hero__media { position: absolute; inset: 0; z-index: -2; background: var(--graphite); }
.dx-hero__media video,
.dx-hero__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transform: scale(1.08);
	transition: transform 2.6s var(--ease);
}
.is-loaded .dx-hero__media video,
.is-loaded .dx-hero__media img { transform: scale(1); }

.dx-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(55% 45% at 88% 18%, rgba(255, 36, 27, .22), transparent 70%),
		linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .15) 38%, rgba(0, 0, 0, .92) 100%);
}

.dx-frame { position: absolute; inset: 104px clamp(16px, 3vw, 36px) clamp(16px, 3vw, 36px); pointer-events: none; }
.dx-frame i {
	position: absolute;
	width: 30px; height: 30px;
	border: 0 solid rgba(237, 235, 230, .6);
	opacity: 0;
	transition: opacity .8s ease .2s, transform 1.2s var(--ease) .2s;
}
.dx-frame i:nth-child(1) { top: 0; left: 0; border-top-width: 1.5px; border-left-width: 1.5px; transform: translate(-14px, -14px); }
.dx-frame i:nth-child(2) { top: 0; right: 0; border-top-width: 1.5px; border-right-width: 1.5px; transform: translate(14px, -14px); }
.dx-frame i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1.5px; border-left-width: 1.5px; transform: translate(-14px, 14px); }
.dx-frame i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1.5px; border-right-width: 1.5px; transform: translate(14px, 14px); }
.is-loaded .dx-frame i { opacity: 1; transform: none; }

.dx-rec {
	position: absolute;
	top: 126px;
	right: calc(clamp(16px, 3vw, 36px) + 46px);
	display: flex;
	align-items: center;
	gap: 9px;
	color: rgba(237, 235, 230, .85);
	font: 500 13px/1 var(--body);
	letter-spacing: .06em;
	font-variant-numeric: tabular-nums;
	opacity: 0;
	transition: opacity .8s ease .6s;
}
.is-loaded .dx-rec { opacity: 1; }
.dx-rec__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); animation: dx-blink 1.1s steps(2, start) infinite; }
@keyframes dx-blink { to { visibility: hidden; } }

.dx-hero__inner { position: relative; }
.dx-hero__eyebrow { margin: 0; color: rgba(237, 235, 230, .8); font-size: 16px; font-weight: 500; }
.dx-hero__title { margin: 16px 0 34px; font-size: clamp(44px, 8.4vw, 156px); line-height: .88; letter-spacing: -.02em; }
.dx-hero__foot { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; }
.dx-hero__text { max-width: 470px; margin: 0; color: rgba(237, 235, 230, .82); font-size: 18px; }
.dx-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 600px) {
	.dx-frame { inset: 84px 12px 12px; }
	.dx-rec { top: 100px; right: 26px; font-size: 11px; }
}

/* Line-by-line headline reveal (hero + inner page titles) */
.dx-line { display: block; overflow: hidden; padding-bottom: .16em; margin-bottom: -.16em; }
.dx-line > span { display: block; }
.js .dx-line > span {
	transform: translateY(112%);
	transition: transform 1.15s var(--ease);
	transition-delay: calc(var(--i, 0) * 130ms + 250ms);
}
.js.is-loaded .dx-line > span,
.is-loaded .dx-line > span { transform: none; }

.js .dx-fade {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .9s var(--ease), transform .9s var(--ease);
	transition-delay: calc(var(--d, 0) * 1ms);
}
.is-loaded .dx-fade { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.dx-section { padding: clamp(90px, 13vw, 170px) 0; border-top: 1px solid var(--line); }

.dx-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 32px;
	margin-bottom: clamp(40px, 6vw, 76px);
}
.dx-h2 { font-size: clamp(40px, 6.4vw, 100px); }

.js [data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* Statement — lights up word by word as you scroll */
.dx-statement { border-top: 0; }
.dx-statement p {
	max-width: 1120px;
	margin: 0;
	font-family: var(--display);
	font-stretch: 100%;
	font-weight: 600;
	font-size: clamp(28px, 4.3vw, 64px);
	line-height: 1.12;
	letter-spacing: -.02em;
}
.js .dx-word { opacity: .16; transition: opacity .35s ease; }
.js .dx-word.is-lit { opacity: 1; }

/* Services list */
.dx-services { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.dx-service { border-bottom: 1px solid var(--line); }
.dx-service a {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	align-items: center;
	gap: 14px 48px;
	padding: clamp(26px, 3.2vw, 40px) 0;
	text-decoration: none;
}
.dx-service a::before {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 1px;
	background: var(--red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .7s var(--ease);
}
.dx-service h3 { font-size: clamp(28px, 3.8vw, 56px); transition: transform .55s var(--ease), color .3s; }
.dx-service p { max-width: 46ch; margin: 0; color: var(--smoke); transition: color .3s; }
.dx-service a:hover::before, .dx-service a:focus-visible::before { transform: scaleX(1); }
.dx-service a:hover h3 { color: var(--red); transform: translateX(14px); }
.dx-service a:hover p { color: var(--paper); }
@media (max-width: 760px) { .dx-service a { grid-template-columns: 1fr; } }

/* Work grid */
.dx-work { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(16px, 2vw, 26px); }
.dx-card { display: flex; flex-direction: column; grid-column: span 5; text-decoration: none; }
.dx-work .dx-card:nth-child(3n+1) { grid-column: span 7; grid-row: span 2; }
.dx-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 11;
	border-radius: 14px;
	background: var(--graphite);
}
.dx-work .dx-card:nth-child(3n+1) .dx-card__media { flex: 1; aspect-ratio: auto; min-height: 340px; }
.dx-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.dx-card:hover .dx-card__media img { transform: scale(1.05); }
.dx-card__ph {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(110% 90% at 100% 0%, rgba(255, 36, 27, .55), transparent 55%),
		linear-gradient(160deg, #24211f, #000 75%);
	transition: transform 1.2s var(--ease);
}
.dx-card:nth-child(3n+2) .dx-card__ph { background: radial-gradient(90% 80% at 0% 100%, rgba(255, 36, 27, .45), transparent 60%), linear-gradient(200deg, #1c1a19, #000 70%); }
.dx-card:nth-child(3n+3) .dx-card__ph { background: radial-gradient(70% 70% at 50% 50%, rgba(255, 36, 27, .35), transparent 65%), linear-gradient(180deg, #191817, #050505); }
.dx-card:hover .dx-card__ph { transform: scale(1.05); }
.dx-card__meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding-top: 16px; }
.dx-card__meta h3 { font-size: clamp(20px, 1.9vw, 27px); font-stretch: 110%; line-height: 1.1; }
.dx-card__meta p { margin: 0; color: var(--smoke); font-size: 14px; }
@media (max-width: 760px) {
	.dx-work .dx-card, .dx-work .dx-card:nth-child(3n+1) { grid-column: 1 / -1; grid-row: auto; }
	.dx-work .dx-card:nth-child(3n+1) .dx-card__media { flex: none; aspect-ratio: 4 / 3; min-height: 0; }
}

/* Process — red line draws as you scroll */
.dx-process {
	--p: 0;
	position: relative;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 28px;
	margin: 0;
	padding: 44px 0 0;
	list-style: none;
}
.dx-process::before, .dx-process::after { content: ""; position: absolute; top: 0; left: 0; height: 1px; }
.dx-process::before { right: 0; background: var(--line); }
.dx-process::after { height: 2px; margin-top: -.5px; width: calc(var(--p) * 100%); background: var(--red); }
.dx-step__n { display: block; margin-bottom: 22px; color: var(--red); font-family: var(--display); font-stretch: 125%; font-weight: 800; font-size: 15px; }
.dx-step h3 { margin-bottom: 10px; font-size: clamp(22px, 2vw, 28px); }
.dx-step p { margin: 0; color: var(--smoke); font-size: 15px; }
@media (max-width: 900px) { .dx-process { grid-template-columns: 1fr 1fr; row-gap: 48px; } }
@media (max-width: 560px) { .dx-process { grid-template-columns: 1fr; } }

/* Closing CTA */
.dx-cta { position: relative; overflow: hidden; padding: clamp(110px, 16vw, 220px) 0; border-top: 1px solid var(--line); }
.dx-cta::before {
	content: "";
	position: absolute;
	right: -10%; bottom: -40%;
	width: 70vw; height: 70vw;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(255, 36, 27, .28), transparent);
	pointer-events: none;
}
.dx-cta h2 { position: relative; max-width: 13ch; font-size: clamp(48px, 8.6vw, 156px); line-height: .9; }
.dx-cta__row { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 40px; margin-top: 52px; }
.dx-cta__mail {
	font-family: var(--display);
	font-stretch: 110%;
	font-weight: 700;
	font-size: clamp(22px, 2.6vw, 36px);
	text-decoration: none;
	background: linear-gradient(var(--red), var(--red)) left bottom / 100% 2px no-repeat;
	padding-bottom: 6px;
	transition: color .3s;
}
.dx-cta__mail:hover { color: var(--red); }

/* --------------------------------------------------------------------------
   Inner pages
   -------------------------------------------------------------------------- */
.dx-pagehero {
	position: relative;
	overflow: hidden;
	padding: clamp(160px, 20vw, 240px) 0 clamp(60px, 8vw, 100px);
	border-bottom: 1px solid var(--line);
}
.dx-pagehero::before {
	content: "";
	position: absolute;
	top: -30%; right: -15%;
	width: 60vw; height: 60vw;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(255, 36, 27, .22), transparent);
	pointer-events: none;
}
.dx-pagehero .dx-wrap { position: relative; }
.dx-pagehero__title { max-width: 15ch; font-size: clamp(44px, 8vw, 132px); line-height: .9; letter-spacing: -.02em; }
.dx-pagehero p { max-width: 560px; margin: 28px 0 0; color: rgba(237, 235, 230, .78); font-size: 19px; }

.dx-listing { padding: clamp(60px, 8vw, 110px) 0; }

.dx-prose { max-width: 720px; margin-inline: auto; padding: clamp(60px, 8vw, 110px) 0; font-size: 18px; line-height: 1.75; }
.dx-prose > *:first-child { margin-top: 0; }
.dx-prose h2 { margin: 1.8em 0 .6em; font-size: clamp(28px, 3vw, 42px); line-height: 1.05; }
.dx-prose h3 { margin: 1.6em 0 .5em; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; }
.dx-prose a { color: var(--paper); text-decoration-color: var(--red); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.dx-prose a:hover { color: var(--red); }
.dx-prose img { border-radius: 12px; }
.dx-prose blockquote { margin: 2em 0; padding-left: 24px; border-left: 2px solid var(--red); font-size: 1.2em; }
.dx-prose ul, .dx-prose ol { padding-left: 1.2em; }

.dx-feature { margin: clamp(40px, 6vw, 70px) 0 0; overflow: hidden; border-radius: 16px; }
.dx-feature img { width: 100%; }
.dx-back { padding-bottom: clamp(60px, 8vw, 100px); text-align: center; }

.dx-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 44px 28px; }
.dx-post a { display: block; text-decoration: none; }
.dx-post .dx-card__media { margin-bottom: 18px; }
.dx-post time { color: var(--smoke); font-size: 14px; }
.dx-post h2 { margin: 8px 0 10px; font-size: clamp(22px, 2vw, 28px); font-stretch: 110%; line-height: 1.1; transition: color .3s; }
.dx-post p { margin: 0; color: var(--smoke); }
.dx-post a:hover h2 { color: var(--red); }

.dx-postnav { display: flex; justify-content: space-between; gap: 20px; padding-bottom: clamp(60px, 8vw, 100px); }
.dx-postnav a { text-decoration: none; color: var(--smoke); }
.dx-postnav a:hover { color: var(--red); }

.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 60px; }
.nav-links .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.nav-links .page-numbers.current, .nav-links .page-numbers:hover { border-color: var(--red); color: var(--red); }

.dx-empty { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; color: var(--smoke); font-size: 19px; }
.dx-empty p { margin: 0; flex-basis: 100%; }

/* --------------------------------------------------------------------------
   Contact form [divix_contact_form]
   -------------------------------------------------------------------------- */
.dx-form { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 28px; max-width: 780px; }
.dx-field { display: flex; flex-direction: column; gap: 6px; }
.dx-field--full { grid-column: 1 / -1; }
.dx-field label { color: var(--smoke); font-size: 14px; }
.dx-field input, .dx-field select, .dx-field textarea {
	width: 100%;
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid rgba(237, 235, 230, .3);
	border-radius: 0;
	background: transparent;
	color: var(--paper);
	font: inherit;
	font-size: 17px;
	transition: border-color .3s;
}
.dx-field select option { background: var(--ink); }
.dx-field input:focus, .dx-field select:focus, .dx-field textarea:focus { outline: none; border-bottom-color: var(--red); }
.dx-field textarea { resize: vertical; min-height: 140px; }
.dx-hp { position: absolute; left: -9999px; }
.dx-notice { grid-column: 1 / -1; margin: 0; padding: 14px 18px; border: 1px solid; border-radius: 10px; }
.dx-notice--ok { border-color: rgba(120, 220, 140, .5); color: #b9f0c4; }
.dx-notice--err { border-color: var(--red); color: #ffb3ad; }
@media (max-width: 600px) { .dx-form { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.dx-footer { padding: clamp(70px, 9vw, 110px) 0 32px; border-top: 1px solid var(--line); }
.dx-footer__grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 40px; }
.dx-footer__brand p { max-width: 32ch; margin-top: 20px; color: var(--smoke); }
.dx-footer h2 { margin-bottom: 18px; color: var(--smoke); font-family: var(--body); font-stretch: 100%; font-size: 14px; font-weight: 600; letter-spacing: 0; }
.dx-footer__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.dx-footer a { text-decoration: none; transition: color .3s; }
.dx-footer a:hover { color: var(--red); }
.dx-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 72px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--smoke); font-size: 14px; }
.dx-footer__bottom p { margin: 0; }
@media (max-width: 860px) { .dx-footer__grid { grid-template-columns: 1fr 1fr; } .dx-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 480px) { .dx-footer__grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Cursor label over portfolio work (fine pointers only)
   -------------------------------------------------------------------------- */
.dx-cursor { position: fixed; left: 0; top: 0; z-index: 150; width: 0; height: 0; pointer-events: none; }
.dx-cursor span {
	position: absolute;
	left: -46px; top: -46px;
	display: grid;
	place-items: center;
	width: 92px; height: 92px;
	border-radius: 50%;
	background: var(--red);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	transform: scale(0);
	transition: transform .4s var(--ease);
}
.dx-cursor.is-on span { transform: scale(1); }
@media (pointer: coarse) { .dx-cursor { display: none; } }

/* --------------------------------------------------------------------------
   Elementor pages: let Elementor own the layout
   -------------------------------------------------------------------------- */
.dx-main--builder { min-height: 60vh; }
.elementor-page .dx-main--builder > .elementor { overflow: hidden; }

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		transition-delay: 0s !important;
	}
	.js [data-reveal], .js .dx-line > span, .js .dx-fade { opacity: 1; transform: none; }
	.js .dx-word { opacity: 1; }
	.dx-hero__media video, .dx-hero__media img { transform: none; }
}
