/*
Theme Name:        CGB Digital Talks
Theme URI:         https://www.digitaltalks.it
Author:            Serra Agency
Author URI:        https://serraagency.com
Description:       Tema WordPress custom per Digital Talks — evento esclusivo su Intelligenza Artificiale e business digitale. Design dark, moderno, performante.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.7
Requires PHP:      8.0
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       cgb-digital-talks
Tags:              one-page, event, dark, custom-menu, custom-logo, featured-images, translation-ready
*/

/* ── CSS Custom Properties ─────────────────── */
:root {
	--dt-primary:    #ffffff;
	--dt-accent:     #6C63FF;
	--dt-accent-alt: #00D4AA;
	--dt-heading:    #ffffff;
	--dt-text:       #b0b0c0;
	--dt-bg:         #0a0a0f;
	--dt-bg-alt:     #12121a;
	--dt-bg-card:    #16161f;
	--dt-border:     rgba(255,255,255,0.08);
	--dt-radius:     8px;
	--dt-radius-lg:  16px;
	--dt-font:       'Inter', system-ui, -apple-system, sans-serif;
	--dt-font-mono:  'JetBrains Mono', 'Fira Code', monospace;
	--dt-max-width:  1200px;
	--dt-narrow:     800px;
	--dt-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── Reset & Base ──────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }
body.dt-body {
	font-family: var(--dt-font);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--dt-text);
	background: #030510;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
/* Fixed gradient backdrop — same pattern as mazehq .s-gfx */
.dt-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 120% 100% at 50% 45%, rgba(18, 24, 52, 0.95) 0%, rgba(10, 14, 32, 0.98) 35%, transparent 70%),
		radial-gradient(ellipse at 25% 15%, rgba(90, 160, 255, 0.09) 0%, transparent 50%),
		radial-gradient(ellipse at 75% 85%, rgba(150, 100, 255, 0.07) 0%, transparent 50%),
		radial-gradient(ellipse at 50% 50%, rgba(0, 212, 170, 0.04) 0%, transparent 55%),
		radial-gradient(circle at 50% 50%, #0d1228 0%, #080c1e 40%, #050816 75%, #030510 100%);
}
/* Perspective particle grid — fixed behind content */
.dt-grid-canvas {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
}
/* Landscape particles — fixed behind content */
.dt-landscape-canvas {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
}
/* Tunnel particles — fixed behind content */
.dt-tunnel-canvas {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
	opacity: 0;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--dt-accent); text-decoration: none; transition: color var(--dt-transition); }
a:hover { color: var(--dt-accent-alt); }

/* ── Header (mazehq-style) ─────────────────── */
.dt-header {
	z-index: 100;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	padding-top: 0.75rem;
	padding-inline: 2.5rem;
	padding-bottom: 2.5rem;
	pointer-events: none;
}
/* Phase 1: after scroll > header height → fixed + hidden above */
body.is-scrolled-header-height .dt-header {
	position: fixed;
	transform: translateY(-130%);
	padding-top: 0.625rem;
	padding-bottom: 0;
}
body.is-scrolled-header-height .dt-header .dt-header__underline {
	display: none;
}
/* Phase 2: after scroll > 25vh → enable transition */
body.is-scrolled-vh-25 .dt-header {
	transition: transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
/* Phase 3: after scroll > 75vh → slide header back in */
body.is-scrolled-vh-75 .dt-header {
	transform: translateY(0);
}
body.is-scrolled-vh-75 .dt-header__bg {
	opacity: 1;
	transform: translateY(0);
}
.dt-header__wrap {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	position: relative;
	height: 4rem;
	pointer-events: auto;
	padding: 0 1.5rem;
	transition: padding 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
/* Background pill — always present, transitions from transparent to dark */
.dt-header__wrap::before {
	content: '';
	display: block;
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: 0.375rem;
	background-color: transparent;
	transition: background-color 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
body.is-scrolled-header-height .dt-header__wrap {
	padding-inline: 0.625rem;
}
body.is-scrolled-header-height .dt-header__wrap::before {
	background-color: #191F2D;
}
.dt-header__logo {
	display: flex;
	align-items: center;
	z-index: 2;
	color: #fff;
	text-decoration: none;
}
.dt-header__logo-img {
	height: 38px;
	width: auto;
	max-width: none;
	object-fit: contain;
}
.dt-header__nav {
	display: flex;
	align-items: center;
	justify-content: center;
}
.dt-header__nav-list {
	display: flex;
	align-items: center;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.dt-header__nav-list li a {
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color 0.3s ease;
	position: relative;
}
.dt-header__nav-list li a:hover,
.dt-header__nav-list li.current-menu-item a {
	color: #fff;
}
.dt-header__underline {
	width: 100%;
	height: 1px;
	background: repeating-linear-gradient(
		to right,
		rgba(255,255,255,0.35) 0px,
		rgba(255,255,255,0.35) 4px,
		transparent 4px,
		transparent 8px
	);
}
.dt-header__bg {
	z-index: 98;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: calc(4rem + 5rem);
	background-image: linear-gradient(to bottom, #0F1523 60%, rgba(15,21,35,0) 100%);
	opacity: 0;
	transition: opacity 0.6s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
	pointer-events: none;
}

/* Header hamburger toggle */
.dt-header__toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 4px;
	z-index: 2;
	grid-column: 3;
	justify-self: end;
}
.dt-header__toggle span {
	display: block;
	width: 22px;
	height: 2px;
	background: #fff;
	border-radius: 1px;
	transition: transform 0.3s ease, opacity 0.3s ease;
}
.dt-header__toggle.is-active span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.dt-header__toggle.is-active span:nth-child(2) {
	opacity: 0;
}
.dt-header__toggle.is-active span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* Header CTA button — aurora border (self-contained) */
.dt-header__button {
	display: flex;
	align-items: center;
	justify-self: end;
	z-index: 2;
	grid-column: 3;
}
.dt-header__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 1.5px;
	border-radius: 100px;
	background: conic-gradient(from var(--dt-angle), var(--dt-accent), #ca32df, rgba(40,197,234,0.3), var(--dt-accent));
	animation: dt-border-spin 4s linear infinite;
	text-decoration: none;
	will-change: --dt-angle;
	transition: animation-duration 0.4s ease;
}
.dt-header__cta:hover {
	animation-duration: 1.5s;
}
.dt-header__cta-inner {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.dt-header__cta > * {
	position: relative;
	z-index: 1;
}
.dt-header__cta > span:first-child,
.dt-header__cta > span:last-child {
	display: inline-flex;
	align-items: center;
}
/* Glass fill inside the aurora border */
.dt-header__cta::after {
	content: '';
	position: absolute;
	inset: 1.5px;
	border-radius: calc(100px - 1.5px);
	background: rgba(13, 17, 23, 0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
/* Re-layout: use the padding approach with inner content */
.dt-header__cta {
	position: relative;
	padding: 0.5rem 1.25rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.02em;
}
.dt-header__cta > * {
	position: relative;
	z-index: 1;
}
.dt-header__cta-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--dt-accent);
	box-shadow: 0 0 8px var(--dt-accent);
	animation: dt-pulse 2s ease-in-out infinite;
}

/* Mobile header */
@media (max-width: 768px) {
	.dt-header__toggle {
		display: flex;
	}
	.dt-header__button {
		display: none;
	}
	.dt-header__nav {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		background: rgba(10,10,15,0.97);
		backdrop-filter: blur(20px);
		-webkit-backdrop-filter: blur(20px);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.3s ease;
		z-index: 1;
	}
	.dt-header__nav.is-open {
		opacity: 1;
		pointer-events: auto;
	}
	.dt-header__nav-list {
		flex-direction: column;
		gap: 2rem;
	}
	.dt-header__nav-list li a {
		font-size: 1.5rem;
		color: rgba(255,255,255,0.7);
	}
}

.dt-container {
	max-width: var(--dt-max-width);
	margin: 0 auto;
	padding: 0 1.5rem;
}
.dt-narrow {
	max-width: var(--dt-narrow);
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* ── Floating Hero Logo ────────────────────── */
.dt-hero__logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(1);
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	pointer-events: none;
	opacity: 1;
	will-change: opacity, transform;
}
.dt-hero__logo-img {
	width: auto;
	height: 140px;
	object-fit: contain;
	filter: drop-shadow(0 0 30px rgba(139, 195, 74, 0.15));
}

/* ── Section Base ──────────────────────────── */
.dt-section {
	padding: 6rem 0;
	position: relative;
	z-index: 2;
	background: transparent;
}
.dt-section--alt {
	background: transparent;
}

/* ── Fixed Canvas Background (legacy, unused) ── */

/* ── Over-canvas Sections ─────────────────── */
.dt-section.dt-section--over-canvas {
	position: relative;
	z-index: 2;
	background: rgba(10, 10, 15, 0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
.dt-section.dt-section--over-canvas.dt-section--alt {
	background: rgba(18, 18, 26, 0.94);
}

/* ── Particle Grid Section ────────────────── */
.dt-section--particles {
	position: relative;
	overflow: hidden;
	background: transparent !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}
.dt-section--particles::before {
	display: none;
}
.dt-particle-canvas {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.9;
}
.dt-section--particles > .dt-container {
	position: relative;
	z-index: 2;
}

/* ── Dove Map Section ─────────────────────── */
/* ── Dove Stack (stacking cards) ── */
.dt-dove-stack {
	position: relative;
	padding: 6rem 0 2rem;
	overflow: visible;
}
.dt-dove-stack__canvas {
	position: sticky;
	top: 0;
	height: 100vh;
	width: 100%;
	z-index: 0;
	pointer-events: none;
	margin-bottom: -100vh;
}
.dt-dove-stack__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 2.5rem;
	position: relative;
	z-index: 1;
}
.dt-dove-stack__content {
	padding-bottom: 35vh;
}
.dt-dove-stack__sticky {
	position: sticky;
	top: calc(50vh - 170px);
	max-width: 480px;
}
.dt-dove-stack__cards {
	display: flex;
	flex-direction: column;
	padding-top: 10vh;
}
.dt-dove-stack__card-item {
	position: sticky;
	top: calc(50vh - 170px + var(--card-index) * 2.5rem);
	margin-bottom: 35vh;
	transition: transform 0.3s ease;
	will-change: transform;
}
.dt-dove-stack__card-item:last-child {
	margin-bottom: 35vh;
}
.dt-dove-stack__card {
	border-radius: var(--dt-radius);
	padding: 2.5rem;
	min-height: 340px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: rgba(13, 17, 23, 0.85);
	backdrop-filter: blur(20px) saturate(1.4);
	-webkit-backdrop-filter: blur(20px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05);
	position: relative;
	overflow: hidden;
}
/* Decorative glow circle (top-right) */
.dt-dove-stack__card::before {
	content: '';
	position: absolute;
	top: -40px;
	right: -40px;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.35;
	pointer-events: none;
}
/* Decorative accent line (bottom) */
.dt-dove-stack__card::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 2.5rem;
	right: 2.5rem;
	height: 2px;
	border-radius: 1px;
	opacity: 0.5;
}
/* Card 1 */
.dt-dove-stack__card--1 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-dove-stack__card--1::before { background: #6C63FF; }
.dt-dove-stack__card--1::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
/* Card 2 */
.dt-dove-stack__card--2 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-dove-stack__card--2::before { background: #6C63FF; }
.dt-dove-stack__card--2::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
/* Card 3 */
.dt-dove-stack__card--3 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-dove-stack__card--3::before { background: #6C63FF; }
.dt-dove-stack__card--3::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
/* Dove card inner */
.dt-dove-stack__card-date {
	display: inline-block;
	font-family: var(--dt-font-mono);
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.5);
	margin-bottom: 0.4rem;
}
.dt-dove-stack__card-time {
	display: inline-block;
	font-family: var(--dt-font-mono);
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.55);
	padding-top: 0.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	width: 100%;
	position: relative;
	z-index: 1;
}

@media (max-width: 999px) {
	.dt-dove-stack {
		min-height: auto;
		padding: 3rem 0;
	}
	.dt-dove-stack__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 0 1.25rem;
	}
	.dt-dove-stack__sticky {
		position: relative;
		top: auto;
	}
	.dt-dove-stack__cards {
		padding-top: 0;
	}
	.dt-dove-stack__card-item {
		position: relative;
		top: auto;
		margin-bottom: 1.25rem;
	}
	.dt-dove-stack__card {
		min-height: auto;
		padding: 1.75rem;
	}
}

/* ── Quando Stack (stacking cards — same pattern as dove) ── */
.dt-quando-stack {
	position: relative;
	z-index: 2;
	padding: 6rem 0 2rem;
	background: transparent;
}
.dt-quando-stack__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 2.5rem;
	position: relative;
	z-index: 1;
}
.dt-quando-stack__content {
	padding-bottom: 35vh;
}
.dt-quando-stack__sticky {
	position: sticky;
	top: calc(50vh - 170px);
	max-width: 480px;
}
.dt-quando-stack__cards {
	display: flex;
	flex-direction: column;
	padding-top: 10vh;
}
.dt-quando-stack__card-item {
	position: sticky;
	top: calc(50vh - 170px + var(--card-index) * 2.5rem);
	margin-bottom: 35vh;
	transition: transform 0.3s ease;
	will-change: transform;
}
.dt-quando-stack__card-item:last-child {
	margin-bottom: 35vh;
}

@media (max-width: 999px) {
	.dt-quando-stack {
		min-height: auto;
		padding: 3rem 0;
	}
	.dt-quando-stack__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 0 1.25rem;
	}
	.dt-quando-stack__sticky {
		position: relative;
		top: auto;
	}
	.dt-quando-stack__content {
		padding-bottom: 0;
	}
	.dt-quando-stack__cards {
		padding-top: 0;
	}
	.dt-quando-stack__card-item {
		position: relative;
		top: auto;
		margin-bottom: 1.25rem;
	}
}

/* ── Relatori Section (pocketchange-identical) ── */
.dt-relatori {
	position: relative;
	z-index: 2;
	overflow-x: clip;
}
/* Top + bottom fade: content fades to alpha 0 */
.dt-relatori {
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 15%, black 85%, transparent 100%);
	mask-image: linear-gradient(to bottom, transparent 0%, black 15%, black 85%, transparent 100%);
}

/* Section background — solid base + glow overlay animated by GSAP */
.dt-relatori__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--dt-bg);
}
/* glow overlay created via JS — animated with GSAP scrub */

/* Constellation canvas */
.dt-relatori__constellation {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0;
}

/* Sticky wrapper: header + cards pinned together */
.dt-relatori__sticky {
	position: relative;
	z-index: 1;
}

.dt-relatori__header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	gap: 1.8rem;
	margin-bottom: 4.8rem;
	text-align: center;
	padding: 6rem 2rem 0;
}
.dt-relatori__eyebrow {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--dt-accent-alt);
}
.dt-relatori__heading {
	font-size: clamp(2rem, 5vw, 4rem);
	font-weight: 700;
	color: #fff;
	line-height: 1.1;
	letter-spacing: -0.03em;
}
.dt-relatori__desc {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	line-height: 1.5;
	color: rgba(255,255,255,0.55);
	font-weight: 300;
	max-width: 40ch;
}

/* Scroll area — drives the scrub distance */
.dt-relatori__scroll-area {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

/* Cards container — mobile default */
.dt-relatori__cards {
	position: relative;
	aspect-ratio: 27.3 / 36;
}

/* Card (mobile: stacked absolute center) */
.dt-relatori__card {
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	padding: 2.4rem;
	background: conic-gradient(from var(--dt-angle), var(--dt-accent), #ca32df, rgba(40,197,234,0.3), var(--dt-accent));
	animation: dt-border-spin 4s linear infinite;
	will-change: --dt-angle, transform;
	border-radius: 1.2rem;
	width: 60vw;
	aspect-ratio: 27.3 / 36;
	pointer-events: none;
}

/* Card picture — fill inside the aurora border */
.dt-relatori__card-pic {
	position: absolute;
	inset: 2px;
	border-radius: calc(1.2rem - 2px);
	overflow: hidden;
	will-change: transform;
	background: rgba(13, 17, 23, 0.92);
	display: block;
}
.dt-relatori__card-pic img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dt-relatori__card-pic::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,1) 100%);
}
.dt-relatori__card-ph {
	width: 100%;
	height: 100%;
}

/* Card tag */
.dt-relatori__card-tag {
	position: relative;
	z-index: 1;
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: rgba(255,255,255,0.7);
	background: rgba(0,0,0,0.3);
	padding: 0.35rem 0.75rem;
	border-radius: 100px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

/* Card name */
.dt-relatori__card-name {
	position: relative;
	z-index: 1;
	font-size: 1.8rem;
	font-weight: 700;
	color: #fff;
	text-wrap: pretty;
	margin: 0;
	line-height: 1.1;
}

/* ── Tablet (700px+) ── */
@media (min-width: 700px) {
	.dt-relatori__cards {
		aspect-ratio: unset;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 0 0 12vw;
	}
	.dt-relatori__card {
		position: relative;
		inset: auto;
		transform: none;
		width: 40vw;
		margin: 0 0 0 -12vw;
	}
}

/* ── Desktop (1024px+) ── */
@media (min-width: 1024px) {
	.dt-relatori__sticky {
		position: sticky;
		top: 0;
		left: 0;
		height: 100lvh;
		overflow: visible;
	}
	.dt-relatori__header {
		position: relative;
		z-index: 1;
		height: 100svh;
		gap: 3.6rem;
		margin-bottom: 0;
		padding: 0 2rem;
	}
	.dt-relatori__scroll-area {
		height: 500lvh;
	}
	.dt-relatori__cards {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100lvh;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0 0 0 6vw;
		z-index: 2;
		pointer-events: none;
	}
	.dt-relatori__card {
		position: relative;
		inset: auto;
		transform: rotate(0deg) scale(1);
		width: 22vw;
		border-radius: 1.8rem;
		margin: 0 0 0 -6vw;
		pointer-events: auto;
	}
	.dt-relatori__card-pic {
		inset: 2px;
		border-radius: calc(1.8rem - 2px);
	}
}

/* ── XLarge (1200px+) ── */
@media (min-width: 1200px) {
	.dt-relatori__card {
		width: 18vw;
	}
}

/* ── Mobile ── */
@media (max-width: 699px) {
	.dt-relatori__header {
		padding: 3rem 1.25rem 0;
		gap: 1.5rem;
	}
	.dt-relatori__heading {
		font-size: 2rem;
	}
	.dt-relatori__desc {
		font-size: 0.95rem;
	}
	.dt-relatori__card-name {
		font-size: 1.2rem;
	}
	.dt-relatori__card-tag {
		font-size: 0.6rem;
	}
}

/* ── Scroll Reveal Base ───────────────────── */
.dt-reveal {
	will-change: opacity, transform;
}

.dt-section__label {
	font-family: var(--dt-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--dt-accent);
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: 1rem;
	display: block;
}
.dt-section__title {
	font-size: clamp(2rem, 5vw, 4rem);
	font-weight: 800;
	color: var(--dt-heading);
	line-height: 1.1;
	letter-spacing: -0.03em;
	margin-bottom: 1.25rem;
}
.dt-section__subtitle {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	color: var(--dt-text);
	max-width: 600px;
	line-height: 1.7;
}
.dt-section__header {
	text-align: center;
	margin-bottom: 4rem;
}
.dt-section__header .dt-section__subtitle {
	margin: 0 auto;
}

/* ── Hero ──────────────────────────────────── */
.dt-hero {
	min-height: 100vh;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: relative;
	z-index: 1;
	overflow: visible;
	padding: 0;
	background: transparent;
}

/* Layer 2 — Canvas for knowledge graph animation (full viewport) */
.dt-hero__canvas {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	will-change: transform, opacity;
	transform-origin: center center;
}

/* Layer 3 — Cinematic overlay: vignette + gradient for depth (fixed like canvas) */
.dt-hero__overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background:
		/* Cinematic vignette — darker corners */
		radial-gradient(ellipse 85% 80% at 50% 50%, transparent 55%, rgba(3, 5, 16, 0.7) 100%),
		/* Top-bottom gradient for text readability */
		linear-gradient(180deg,
			rgba(5, 8, 22, 0.35) 0%,
			rgba(5, 8, 22, 0.05) 30%,
			rgba(5, 8, 22, 0.05) 55%,
			rgba(5, 8, 22, 0.5) 100%
		);
	pointer-events: none;
}
/* Film grain layer (pure CSS) */
.dt-hero__overlay::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.025;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 200px;
	pointer-events: none;
	z-index: 1;
	animation: dt-grain-shift 0.5s steps(4) infinite;
}
@keyframes dt-grain-shift {
	0%, 100% { transform: translate(0, 0); }
	25%      { transform: translate(-2%, 1%); }
	50%      { transform: translate(1%, -2%); }
	75%      { transform: translate(-1%, 2%); }
}
/* Subtle anamorphic light streak across the hero */
.dt-hero__overlay::after {
	content: '';
	position: absolute;
	top: 42%;
	left: -10%;
	right: -10%;
	height: 2px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(90, 160, 255, 0.04) 20%,
		rgba(150, 100, 255, 0.06) 45%,
		rgba(0, 212, 170, 0.04) 55%,
		rgba(90, 160, 255, 0.03) 80%,
		transparent 100%
	);
	filter: blur(8px);
	pointer-events: none;
	z-index: 2;
	animation: dt-streak-drift 12s ease-in-out infinite alternate;
}
@keyframes dt-streak-drift {
	0%   { top: 38%; opacity: 0.6; }
	100% { top: 52%; opacity: 1; }
}

/* Layer 4 — Hero content */
.dt-hero__content {
	position: relative;
	z-index: 3;
	max-width: 860px;
}
/* Content children — visible with soft entrance */
.dt-hero__eyebrow,
.dt-hero__title,
.dt-hero__sub,
.dt-hero__actions {
	opacity: 1;
	transform: translateY(0);
	will-change: opacity, transform;
	animation: dt-hero-content-in 1.5s ease-out both;
}
.dt-hero__title  { animation-delay: 0.15s; }
.dt-hero__sub    { animation-delay: 0.3s; }
.dt-hero__actions { animation-delay: 0.45s; }
@keyframes dt-hero-content-in {
	from { opacity: 0; transform: translateY(30px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Eyebrow label */
.dt-hero__eyebrow {
	font-family: var(--dt-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	color: rgba(150, 180, 255, 0.7);
	text-transform: uppercase;
	letter-spacing: 3px;
	margin-bottom: 1.75rem;
	display: block;
}
.dt-hero__eyebrow-sep {
	display: inline-block;
	margin: 0 0.6rem;
	opacity: 0.35;
}

/* Headline */
.dt-hero__title {
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	font-weight: 800;
	color: #ffffff;
	line-height: 1.08;
	letter-spacing: -0.03em;
	margin-bottom: 1.5rem;
}
.dt-hero__title em {
	font-style: normal;
	background: linear-gradient(135deg, #5AA0FF 0%, #9664FF 50%, #00D4AA 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Subheadline */
.dt-hero__sub {
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	color: rgba(220, 220, 235, 0.95);
	max-width: 700px;
	margin: 0 auto 2.5rem;
	line-height: 1.5;
	font-weight: 400;
}

/* CTA actions */
.dt-hero__actions {
	display: flex;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

/* Scroll indicator — below logos, mazehq style */
.dt-hero__scroll {
	position: absolute;
	bottom: 1.5rem;
	left: 0;
	right: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	opacity: 1;
	animation: dt-hero-content-in 1.5s ease-out 0.8s both;
}
.dt-hero__scroll-text {
	font-family: var(--dt-font-mono);
	font-size: 0.6rem;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: rgba(255, 255, 255, 0.35);
	margin-bottom: 0.75rem;
}
.dt-hero__scroll-line-full {
	width: 100%;
	height: 1px;
	background: repeating-linear-gradient(
		to right,
		rgba(255,255,255,0.3) 0px,
		rgba(255,255,255,0.3) 4px,
		transparent 4px,
		transparent 8px
	);
}
.dt-hero__scroll-line {
	width: 1px;
	height: 32px;
	background: linear-gradient(180deg, rgba(90, 160, 255, 0.5) 0%, transparent 100%);
	animation: dt-scroll-pulse 2.5s ease-in-out infinite;
}
@keyframes dt-scroll-pulse {
	0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
	50% { opacity: 1; transform: scaleY(1); }
}

/* AI Reasoning reveal text */
.dt-hero__reveal {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.92);
	z-index: 4;
	text-align: center;
	opacity: 0;
	pointer-events: none;
	will-change: opacity, transform;
}
.dt-hero__reveal-text {
	font-family: var(--dt-font);
	font-size: clamp(2rem, 5vw, 3.8rem);
	font-weight: 800;
	color: #ffffff;
	letter-spacing: -1px;
	line-height: 1.15;
	text-shadow: 0 0 30px rgba(90, 160, 255, 0.4), 0 0 60px rgba(150, 100, 255, 0.2);
}
.dt-hero__reveal-text em {
	font-style: normal;
	background: linear-gradient(135deg, #5AA0FF 0%, #9664FF 50%, #00D4AA 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* AI Reasoning phrases container */
.dt-hero__reasoning-phrases {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 5;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
.dt-reasoning-phrase {
	position: absolute;
	font-family: var(--dt-font-mono);
	font-size: clamp(1.1rem, 2.2vw, 1.6rem);
	font-weight: 600;
	color: rgba(200, 215, 255, 0.92);
	letter-spacing: 0.5px;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	text-shadow: 0 0 20px rgba(90, 160, 255, 0.45), 0 0 40px rgba(150, 100, 255, 0.2);
	transform: translate(var(--rx, 0), var(--ry, 0));
}

/* ── AI Reasoning Panel ──────────────────────── */
.dt-reasoning-panel {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) scale(0.92);
	z-index: 6;
	width: min(560px, 90vw);
	max-height: 420px;
	background: rgba(10, 12, 28, 0.82);
	backdrop-filter: blur(24px) saturate(1.4);
	-webkit-backdrop-filter: blur(24px) saturate(1.4);
	border: 1px solid rgba(90, 160, 255, 0.18);
	border-radius: 16px;
	box-shadow:
		0 0 40px rgba(90, 160, 255, 0.08),
		0 0 80px rgba(150, 100, 255, 0.04),
		inset 0 1px 0 rgba(255, 255, 255, 0.05);
	opacity: 0;
	pointer-events: none;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

/* Header */
.dt-reasoning-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	border-bottom: 1px solid rgba(90, 160, 255, 0.1);
	background: rgba(90, 160, 255, 0.03);
}
.dt-reasoning-panel__status {
	display: flex;
	align-items: center;
	gap: 10px;
}
.dt-reasoning-panel__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #5AA0FF;
	box-shadow: 0 0 8px #5AA0FF, 0 0 16px rgba(90, 160, 255, 0.4);
	animation: dt-dot-pulse 1.8s ease-in-out infinite;
}
@keyframes dt-dot-pulse {
	0%, 100% { opacity: 1; box-shadow: 0 0 8px #5AA0FF, 0 0 16px rgba(90, 160, 255, 0.4); }
	50% { opacity: 0.5; box-shadow: 0 0 4px #5AA0FF, 0 0 8px rgba(90, 160, 255, 0.2); }
}
.dt-reasoning-panel__title {
	font-family: var(--dt-font-mono);
	font-size: 0.82rem;
	font-weight: 600;
	color: rgba(200, 215, 255, 0.9);
	letter-spacing: 0.8px;
	text-transform: uppercase;
}
.dt-reasoning-panel__meta {
	display: flex;
	align-items: center;
	gap: 12px;
}
.dt-reasoning-panel__model {
	font-family: var(--dt-font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	color: rgba(0, 212, 170, 0.8);
	background: rgba(0, 212, 170, 0.08);
	padding: 3px 10px;
	border-radius: 20px;
	border: 1px solid rgba(0, 212, 170, 0.15);
	letter-spacing: 0.3px;
}
.dt-reasoning-panel__tokens {
	font-family: var(--dt-font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	color: rgba(180, 190, 220, 0.6);
	letter-spacing: 0.3px;
}

/* Body */
.dt-reasoning-panel__body {
	flex: 1;
	padding: 16px 20px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 0;
	scrollbar-width: thin;
	scrollbar-color: rgba(90, 160, 255, 0.15) transparent;
}
.dt-reasoning-panel__body::-webkit-scrollbar {
	width: 4px;
}
.dt-reasoning-panel__body::-webkit-scrollbar-track {
	background: transparent;
}
.dt-reasoning-panel__body::-webkit-scrollbar-thumb {
	background: rgba(90, 160, 255, 0.2);
	border-radius: 4px;
}

/* Reasoning step */
.dt-reasoning-step {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 8px 0;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.dt-reasoning-step.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.dt-reasoning-step__icon {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	font-size: 0.7rem;
	margin-top: 1px;
}
.dt-reasoning-step__icon--thinking {
	background: rgba(90, 160, 255, 0.12);
	color: #5AA0FF;
	animation: dt-icon-spin 1.2s linear infinite;
}
.dt-reasoning-step__icon--done {
	background: rgba(0, 212, 170, 0.12);
	color: #00D4AA;
	animation: none;
}
@keyframes dt-icon-spin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}
.dt-reasoning-step__text {
	font-family: var(--dt-font-mono);
	font-size: 0.8rem;
	font-weight: 400;
	line-height: 1.6;
	color: rgba(200, 215, 255, 0.85);
	letter-spacing: 0.2px;
}
.dt-reasoning-step__cursor {
	display: inline-block;
	width: 7px;
	height: 15px;
	background: #5AA0FF;
	margin-left: 2px;
	vertical-align: text-bottom;
	animation: dt-cursor-blink 0.8s step-end infinite;
}
@keyframes dt-cursor-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0; }
}

/* Sub-result nuggets */
.dt-reasoning-step__nugget {
	display: inline-block;
	font-family: var(--dt-font-mono);
	font-size: 0.7rem;
	color: rgba(150, 100, 255, 0.9);
	background: rgba(150, 100, 255, 0.08);
	border: 1px solid rgba(150, 100, 255, 0.15);
	padding: 2px 8px;
	border-radius: 4px;
	margin: 4px 4px 0 0;
}

/* Footer */
.dt-reasoning-panel__footer {
	padding: 12px 20px;
	border-top: 1px solid rgba(90, 160, 255, 0.1);
	display: flex;
	align-items: center;
	gap: 14px;
}
.dt-reasoning-panel__progress {
	flex: 1;
	height: 3px;
	background: rgba(90, 160, 255, 0.08);
	border-radius: 3px;
	overflow: hidden;
}
.dt-reasoning-panel__progress-bar {
	height: 100%;
	width: 0%;
	background: linear-gradient(90deg, #5AA0FF, #9664FF, #00D4AA);
	border-radius: 3px;
	transition: width 0.4s ease;
	box-shadow: 0 0 8px rgba(90, 160, 255, 0.3);
}
.dt-reasoning-panel__footer-text {
	font-family: var(--dt-font-mono);
	font-size: 0.7rem;
	color: rgba(180, 190, 220, 0.5);
	white-space: nowrap;
	letter-spacing: 0.2px;
}

/* Mobile adjustments */
@media (max-width: 599px) {
	.dt-reasoning-panel {
		width: 94vw;
		max-height: 360px;
		border-radius: 12px;
	}
	.dt-reasoning-panel__header {
		padding: 10px 14px;
	}
	.dt-reasoning-panel__body {
		padding: 12px 14px;
	}
	.dt-reasoning-step__text {
		font-size: 0.72rem;
	}
	.dt-reasoning-panel__meta {
		gap: 8px;
	}
}

/* ── Buttons ───────────────────────────────── */
.dt-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 2rem;
	font-family: var(--dt-font);
	font-weight: 600;
	font-size: 0.95rem;
	border-radius: var(--dt-radius);
	cursor: pointer;
	transition: all var(--dt-transition);
	border: none;
	text-decoration: none;
}
.dt-btn--primary {
	background: var(--dt-accent);
	color: #fff;
}
.dt-btn--primary:hover {
	background: var(--dt-accent-alt);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(108, 99, 255, 0.3);
}
.dt-btn--outline {
	background: transparent;
	color: var(--dt-heading);
	border: 1px solid var(--dt-border);
}
.dt-btn--outline:hover {
	border-color: var(--dt-accent);
	color: var(--dt-accent);
}

/* ── Stats Row ─────────────────────────────── */
.dt-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1.5rem;
	padding: 3rem 0;
}
.dt-stat {
	text-align: center;
	padding: 2rem 1.5rem;
	background: var(--dt-bg-card);
	border: 1px solid var(--dt-border);
	border-radius: var(--dt-radius-lg);
}
.dt-stat__number {
	font-size: 2.5rem;
	font-weight: 800;
	color: var(--dt-heading);
	font-family: var(--dt-font-mono);
	line-height: 1;
	margin-bottom: 0.5rem;
}
.dt-stat__label {
	font-size: 0.85rem;
	color: var(--dt-text);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* ── Speaker Grid ──────────────────────────── */
.dt-speakers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5rem;
}
.dt-speaker {
	background: var(--dt-bg-card);
	border: 1px solid var(--dt-border);
	border-radius: var(--dt-radius-lg);
	padding: 2rem;
	text-align: center;
	transition: all var(--dt-transition);
	position: relative;
	z-index: 1;
}
.dt-speaker:hover {
	border-color: rgba(108, 99, 255, 0.3);
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(0,0,0,0.3);
	z-index: 10;
}
.dt-speaker__avatar {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 1.25rem;
	border: 2px solid var(--dt-border);
}
.dt-speaker__avatar-placeholder {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	margin: 0 auto 1.25rem;
	background: linear-gradient(135deg, var(--dt-accent), var(--dt-accent-alt));
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	font-weight: 700;
	color: #fff;
}
.dt-speaker__name {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--dt-heading);
	margin-bottom: 0.35rem;
}
.dt-speaker__role {
	font-size: 0.8rem;
	color: var(--dt-text);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1.5;
}

/* ── Program / Timeline ────────────────────── */
.dt-program {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.dt-program-day {
	background: var(--dt-bg-card);
	border: 1px solid var(--dt-border);
	border-radius: var(--dt-radius-lg);
	overflow: hidden;
}
.dt-program-day__header {
	padding: 1.5rem 2rem;
	background: rgba(108, 99, 255, 0.05);
	border-bottom: 1px solid var(--dt-border);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}
.dt-program-day__date {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--dt-heading);
}
.dt-program-day__location {
	font-size: 0.85rem;
	color: var(--dt-accent);
	font-weight: 500;
}
.dt-program-day__body {
	padding: 0;
}
.dt-program-item {
	display: flex;
	gap: 1.5rem;
	padding: 1.25rem 2rem;
	border-bottom: 1px solid var(--dt-border);
	align-items: flex-start;
	transition: background var(--dt-transition);
}
.dt-program-item:last-child { border-bottom: none; }
.dt-program-item:hover { background: rgba(255,255,255,0.02); }
.dt-program-item__time {
	font-family: var(--dt-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--dt-accent);
	min-width: 65px;
	padding-top: 0.15rem;
}
.dt-program-item__content {
	flex: 1;
}
.dt-program-item__title {
	font-weight: 600;
	color: var(--dt-heading);
	margin-bottom: 0.25rem;
}
.dt-program-item__desc {
	font-size: 0.9rem;
	color: var(--dt-text);
}

/* ── Location Cards ────────────────────────── */
.dt-locations {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.5rem;
}
.dt-location {
	background: var(--dt-bg-card);
	border: 1px solid var(--dt-border);
	border-radius: var(--dt-radius-lg);
	overflow: hidden;
	transition: all var(--dt-transition);
}
.dt-location:hover {
	border-color: rgba(108, 99, 255, 0.3);
}
.dt-location__img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	background: var(--dt-bg-alt);
}
.dt-location__body {
	padding: 1.5rem;
}
.dt-location__name {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--dt-heading);
	margin-bottom: 0.35rem;
}
.dt-location__address {
	font-size: 0.9rem;
	color: var(--dt-text);
}
.dt-location__date {
	font-family: var(--dt-font-mono);
	font-size: 0.8rem;
	color: var(--dt-accent);
	margin-top: 0.75rem;
	font-weight: 600;
}

/* ── FAQ Accordion ─────────────────────────── */
.dt-faq { max-width: 760px; margin: 0 auto; }
.dt-faq-item {
	border-bottom: 1px solid var(--dt-border);
}
.dt-faq-item__question {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.25rem 0;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--dt-font);
	font-size: 1rem;
	font-weight: 600;
	color: var(--dt-heading);
	text-align: left;
	transition: color var(--dt-transition);
}
.dt-faq-item__question:hover { color: var(--dt-accent); }
.dt-faq-item__icon {
	font-size: 1.25rem;
	transition: transform var(--dt-transition);
	color: var(--dt-accent);
	flex-shrink: 0;
	margin-left: 1rem;
}
.dt-faq-item--open .dt-faq-item__icon { transform: rotate(45deg); }
.dt-faq-item__answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease, padding 0.4s ease;
}
.dt-faq-item--open .dt-faq-item__answer {
	max-height: 300px;
	padding-bottom: 1.25rem;
}
.dt-faq-item__answer p {
	font-size: 0.95rem;
	color: var(--dt-text);
	line-height: 1.7;
}

/* ── Partners ──────────────────────────────── */
.dt-partners {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 3rem;
}
.dt-partners img {
	height: 40px;
	opacity: 0.5;
	filter: grayscale(1) brightness(2);
	transition: all var(--dt-transition);
}
.dt-partners img:hover {
	opacity: 1;
	filter: none;
}

/* ── CTA Section ───────────────────────────── */
.dt-cta {
	text-align: center;
	padding: 6rem 0;
	position: relative;
	z-index: 2;
	background: var(--dt-bg);
}
.dt-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center, rgba(108, 99, 255, 0.06) 0%, transparent 70%);
}
.dt-cta::after {
	display: none;
}
.dt-cta__content { position: relative; z-index: 2; }
.dt-cta__title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	color: var(--dt-heading);
	margin-bottom: 1rem;
	letter-spacing: -0.5px;
}
.dt-cta__text {
	font-size: 1.1rem;
	color: var(--dt-text);
	max-width: 500px;
	margin: 0 auto 2rem;
}

/* ── Footer ────────────────────────────────── */
.dt-footer {
	border-top: 1px solid var(--dt-border);
	padding: 3rem 0 2rem;
	background: var(--dt-bg);
	position: relative;
	z-index: 2;
}
.dt-footer--hex {
	background: transparent;
	border-top: none;
	padding: 0 2.5rem 1.5rem;
}
/* Bar: matches header sticky style */
.dt-footer__bar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6rem;
	padding: 1.25rem 1.5rem;
	background: rgba(25, 31, 45, 0.55);
	backdrop-filter: blur(16px) saturate(1.4);
	-webkit-backdrop-filter: blur(16px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 0.75rem;
}
.dt-footer__legal {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.dt-footer__legal a {
	font-size: 0.8rem;
	font-weight: 500;
	color: rgba(255,255,255,0.55);
	text-decoration: none;
	transition: color 0.25s ease;
}
.dt-footer__legal a:hover {
	color: #fff;
}
.dt-footer__copy {
	font-size: 0.8rem;
	color: rgba(255,255,255,0.45);
	text-align: center;
	white-space: nowrap;
}
.dt-footer__copy a {
	color: rgba(255,255,255,0.55);
	text-decoration: none;
}
.dt-footer__copy a:hover {
	color: var(--dt-accent);
}
.dt-footer__credit {
	font-size: 0.75rem;
	color: rgba(255,255,255,0.35);
	text-align: center;
}
.dt-footer__credit a {
	color: rgba(255,255,255,0.5);
	text-decoration: none;
	transition: color 0.25s ease;
}
.dt-footer__credit a:hover {
	color: var(--dt-accent);
}
.dt-footer__social {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem;
}
.dt-footer__social a {
	color: rgba(255,255,255,0.45);
	transition: color 0.25s ease, transform 0.25s ease;
	display: flex;
	align-items: center;
}
.dt-footer__social a:hover {
	color: var(--dt-accent);
	transform: translateY(-1px);
}
.dt-footer__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.5rem;
}
.dt-footer__links {
	display: flex;
	gap: 1.5rem;
	list-style: none;
}
.dt-footer__links a {
	font-size: 0.85rem;
	color: var(--dt-text);
}
.dt-footer__links a:hover { color: var(--dt-accent); }

/* ── Footer Particle Background ─────────────── */
.dt-footer-hex {
	position: relative;
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
	background: #000;
}
.dt-footer-hex__canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	display: block;
	pointer-events: auto;
	z-index: 0;
}
/* Subtle vignette — much lighter than before */
.dt-footer-hex__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(ellipse 90% 85% at 50% 60%, transparent 60%, rgba(10, 10, 15, 0.25) 100%);
}

/* Fade contatti section to black at the bottom */
#contatti {
	position: relative;
	padding-bottom: 21rem;
}
#contatti::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 50%;
	background: linear-gradient(to bottom, transparent 0%, #000 100%);
	z-index: 1;
	pointer-events: none;
}
.dt-footer-hex__gradient-top {
	display: none;
}
.dt-footer-hex .dt-footer--hex {
	position: relative;
	z-index: 3;
}

/* ── General Page/Post ─────────────────────── */
.dt-page { padding: 8rem 0 4rem; }
.dt-page__header { text-align: center; margin-bottom: 3rem; }
.dt-page__title {
	font-size: 2.5rem;
	font-weight: 800;
	color: var(--dt-heading);
	letter-spacing: -1px;
}
.dt-page__body.entry-content {
	font-size: 1.05rem;
	line-height: 1.8;
}
.dt-page__body h2, .dt-page__body h3 {
	color: var(--dt-heading);
	margin: 2rem 0 1rem;
}
.dt-page__body p { margin-bottom: 1.25rem; }
.dt-page__body blockquote {
	border-left: 3px solid var(--dt-accent);
	padding: 1rem 1.5rem;
	margin: 1.5rem 0;
	background: var(--dt-bg-alt);
	border-radius: 0 var(--dt-radius) var(--dt-radius) 0;
}
.dt-page__body a { color: var(--dt-accent); }
.dt-page__body a:hover { text-decoration: underline; }

/* ── 404 ───────────────────────────────────── */
.dt-404 { padding: 10rem 0; text-align: center; }
.dt-404__code {
	font-size: 6rem;
	font-weight: 800;
	font-family: var(--dt-font-mono);
	background: linear-gradient(135deg, var(--dt-accent), var(--dt-accent-alt));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.dt-404__title { font-size: 1.5rem; font-weight: 700; color: var(--dt-heading); margin-top: 0.5rem; }
.dt-404__text { color: var(--dt-text); margin: 0.75rem 0 2rem; }

/* ── Archive / Blog ────────────────────────── */
.dt-archive { padding: 8rem 0 4rem; }
.dt-archive__header { text-align: center; margin-bottom: 3rem; }
.dt-archive__title { font-size: 2rem; font-weight: 800; color: var(--dt-heading); }
.dt-list { display: flex; flex-direction: column; gap: 0; }
.dt-list-item {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--dt-border);
}
.dt-list-item__meta {
	font-size: 0.8rem;
	color: var(--dt-text);
	display: flex;
	gap: 0.75rem;
	margin-bottom: 0.35rem;
	font-family: var(--dt-font-mono);
}
.dt-list-item__cat {
	color: var(--dt-accent);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.dt-list-item__title {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--dt-heading);
}
.dt-list-item__title a { color: inherit; }
.dt-list-item__title a:hover { color: var(--dt-accent); }
.dt-list-item__excerpt {
	margin-top: 0.35rem;
	font-size: 0.95rem;
	color: var(--dt-text);
}

/* ── Single Post ───────────────────────────── */
.dt-single { padding: 8rem 0 4rem; }
.dt-single__header { text-align: center; margin-bottom: 2rem; }
.dt-single__cat {
	display: inline-block;
	font-family: var(--dt-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--dt-accent);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 0.75rem;
}
.dt-single__title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	color: var(--dt-heading);
	line-height: 1.15;
	letter-spacing: -0.5px;
}
.dt-single__meta {
	font-size: 0.85rem;
	color: var(--dt-text);
	margin-top: 1rem;
	display: flex;
	justify-content: center;
	gap: 1.25rem;
}
.dt-single__hero { margin-bottom: 2rem; border-radius: var(--dt-radius-lg); overflow: hidden; }
.dt-single__body.entry-content { font-size: 1.05rem; line-height: 1.85; }
.dt-single__body h2, .dt-single__body h3 { color: var(--dt-heading); margin: 2rem 0 1rem; }
.dt-single__body p { margin-bottom: 1.25rem; }
.dt-single__body blockquote {
	border-left: 3px solid var(--dt-accent);
	padding: 1rem 1.5rem;
	background: var(--dt-bg-alt);
	margin: 1.5rem 0;
	border-radius: 0 var(--dt-radius) var(--dt-radius) 0;
}
.dt-single__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 2.5rem;
	justify-content: center;
}
.dt-tag {
	font-family: var(--dt-font-mono);
	background: var(--dt-bg-alt);
	border: 1px solid var(--dt-border);
	padding: 0.25rem 0.65rem;
	border-radius: 100px;
	font-size: 0.75rem;
	color: var(--dt-text);
}
.dt-tag:hover { border-color: var(--dt-accent); color: var(--dt-accent); }

/* ── Hero Client Logos (mazehq-style, full-width) ── */
.dt-hero__clients {
	position: absolute;
	bottom: 5rem;
	left: 0;
	right: 0;
	z-index: 10;
	pointer-events: none;
}
.dt-hero__clients-list {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0 3rem;
}
.dt-hero__client {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
}
.dt-hero__client-logo {
	height: 48px;
	width: auto;
	max-width: 260px;
	object-fit: contain;
	opacity: 0.55;
	filter: brightness(0) invert(1);
	transition: opacity 0.3s ease;
}
.dt-hero__client-logo:hover {
	opacity: 0.85;
}
/* Cross-shaped dividers between logos */
.dt-hero__client-divider {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 20px;
	flex-shrink: 0;
}
.dt-hero__client-divider::before {
	content: '';
	position: absolute;
	width: 40px;
	height: 1px;
	background: repeating-linear-gradient(
		to right,
		rgba(255,255,255,0.4) 0px,
		rgba(255,255,255,0.4) 3px,
		transparent 3px,
		transparent 6px
	);
}
.dt-hero__client-divider span {
	display: block;
	width: 5px;
	height: 5px;
	border: 1px solid rgba(255,255,255,0.45);
	transform: rotate(45deg);
	position: relative;
	z-index: 1;
}

/* ── About / Story Sections (mazehq story-style) ── */
.dt-about {
	position: relative;
	z-index: 2;
	background: transparent;
}
.dt-story {
	width: 100%;
	min-height: 100vh;
	padding: 20vh 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
.dt-story__item {
	max-width: 62rem;
	width: 100%;
}
.dt-story__item--centered {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.dt-story__title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	line-height: 1.15;
	color: #fff;
	font-weight: 600;
	letter-spacing: -0.03em;
	margin-bottom: 1.25rem;
	text-wrap: balance;
}
.dt-story__text {
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	line-height: 1.6;
	color: rgba(242, 244, 245, 0.6);
	font-weight: 400;
	max-width: 36rem;
	margin-bottom: 3rem;
}
.dt-story__items {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.dt-story__items--columns {
	flex-direction: row;
	gap: 1rem;
}

/* ── Come Stack (stacking cards à la MindMarket) ── */
.dt-come-stack {
	position: relative;
	padding: 6rem 0 2rem;
}
.dt-come-stack__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 2.5rem;
}
.dt-come-stack__content {
	padding-bottom: 35vh;
}
.dt-come-stack__sticky {
	position: sticky;
	top: calc(50vh - 170px);
	max-width: 480px;
}
.dt-come-stack__title {
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 600;
	line-height: 1.1;
	margin-bottom: 1.5rem;
	color: #fff;
	letter-spacing: -0.03em;
}
.dt-come-stack__text {
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.65;
	text-wrap: balance;
	max-width: 26rem;
}
.dt-come-stack__cards {
	display: flex;
	flex-direction: column;
	padding-top: 10vh;
}
.dt-come-stack__card-item {
	position: sticky;
	top: calc(50vh - 170px + var(--card-index) * 2.5rem);
	margin-bottom: 35vh;
	transition: transform 0.3s ease;
	will-change: transform;
}
.dt-come-stack__card-item:last-child {
	margin-bottom: 35vh;
}
.dt-come-stack__card {
	border-radius: var(--dt-radius);
	padding: 2.5rem;
	min-height: 340px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: rgba(13, 17, 23, 0.85);
	backdrop-filter: blur(20px) saturate(1.4);
	-webkit-backdrop-filter: blur(20px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05);
	position: relative;
	overflow: hidden;
}
/* Decorative glow circle (top-right) */
.dt-come-stack__card::before {
	content: '';
	position: absolute;
	top: -40px;
	right: -40px;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.35;
	pointer-events: none;
}
/* Decorative accent line (bottom) */
.dt-come-stack__card::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 2.5rem;
	right: 2.5rem;
	height: 2px;
	border-radius: 1px;
	opacity: 0.5;
}
.dt-come-stack__card--1 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-come-stack__card--1::before { background: #6C63FF; }
.dt-come-stack__card--1::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
.dt-come-stack__card--2 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-come-stack__card--2::before { background: #6C63FF; }
.dt-come-stack__card--2::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
.dt-come-stack__card--3 {
	background: rgba(13, 17, 23, 0.85);
	border-color: rgba(255, 255, 255, 0.08);
}
.dt-come-stack__card--3::before { background: #6C63FF; }
.dt-come-stack__card--3::after  { background: linear-gradient(90deg, transparent, #6C63FF, transparent); }
/* Graphic element: numbered badge */
.dt-come-stack__badge {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	align-self: flex-start;
	width: fit-content;
	min-width: 52px;
	height: 52px;
	padding: 0 1rem;
	border-radius: var(--dt-radius);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	margin-bottom: 1.5rem;
	position: relative;
	z-index: 1;
	white-space: nowrap;
	background: rgba(108, 99, 255, 0.2);
	color: #a9a3ff;
	border: 1px solid rgba(108, 99, 255, 0.35);
}
.dt-come-stack__card-title {
	font-size: clamp(1.5rem, 2vw, 1.75rem);
	font-weight: 600;
	color: #fff;
	margin-bottom: 1rem;
	letter-spacing: -0.02em;
	position: relative;
	z-index: 1;
}
.dt-come-stack__card-text {
	font-size: clamp(1.05rem, 1.3vw, 1.15rem);
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.65;
	position: relative;
	z-index: 1;
}

/* ── Chi Stats (inside stacking card) ── */
.dt-chi-stats {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	position: relative;
	z-index: 1;
}
.dt-chi-stats__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}
.dt-chi-stats__number {
	font-size: clamp(2.5rem, 4vw, 3.5rem);
	font-weight: 800;
	color: #fff;
	line-height: 1;
	letter-spacing: -0.03em;
}
.dt-chi-stats__label {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.5);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-top: 0.35rem;
}
.dt-chi-stats__divider {
	width: 1px;
	height: 3rem;
	background: rgba(255, 255, 255, 0.12);
	flex-shrink: 0;
}
.dt-chi-cta {
	margin-top: 1.5rem;
	position: relative;
	z-index: 1;
}

/* ── Glass Cards (mazehq c-ui-box) ─────────── */
.dt-glass-card {
	background-color: rgba(242, 244, 245, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.625rem;
	padding: 1.5rem;
	transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.dt-glass-card:hover {
	background-color: rgba(242, 244, 245, 0.12);
	border-color: rgba(108, 99, 255, 0.2);
	box-shadow: 0 0 30px rgba(108, 99, 255, 0.08), 0 8px 32px rgba(0, 0, 0, 0.2);
}
.dt-glass-card__row {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.dt-glass-card__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
}
.dt-glass-card__number {
	font-size: 3.5rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -2px;
	background: linear-gradient(135deg, #5AA0FF 0%, #9664FF 40%, #00D4AA 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.dt-glass-card__label {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 2px;
	color: #fff;
	margin-top: 0.35rem;
}
.dt-glass-card__divider {
	position: relative;
	width: 20px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.dt-glass-card__divider::before {
	content: '';
	position: absolute;
	width: 20px;
	height: 1px;
	background: repeating-linear-gradient(
		to right,
		rgba(255,255,255,0.35) 0px,
		rgba(255,255,255,0.35) 3px,
		transparent 3px,
		transparent 6px
	);
}
.dt-glass-card__divider::after {
	content: '';
	width: 5px;
	height: 5px;
	border: 1px solid rgba(255,255,255,0.3);
	transform: rotate(45deg);
	position: relative;
	z-index: 1;
}
.dt-glass-card--accent {
	border: 1px solid rgba(0, 231, 251, 0.15);
}
.dt-glass-card--accent.dt-glass-card--centered {
	text-align: center;
}

/* ── CTA Aurora Button ──────────────────────── */
@property --dt-angle {
	syntax: '<angle>';
	initial-value: 0deg;
	inherits: false;
}
@keyframes dt-border-spin {
	to { --dt-angle: 360deg; }
}
@keyframes dt-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: 0.5; transform: scale(0.7); }
}
.dt-cta-particle {
	position: relative;
	display: inline-flex;
	margin-top: 3.5rem;
	padding: 1.5px;
	border-radius: 0.625rem;
	background: conic-gradient(from var(--dt-angle), var(--dt-accent), #ca32df, rgba(40,197,234,0.3), var(--dt-accent));
	animation: dt-border-spin 4s linear infinite;
	transition: transform 0.25s cubic-bezier(.2,.8,.2,1);
	will-change: --dt-angle, transform;
}
/* Glow behind the button */
.dt-cta-particle::before {
	content: '';
	position: absolute;
	inset: -4px;
	border-radius: inherit;
	background: conic-gradient(from var(--dt-angle), var(--dt-accent), #ca32df, rgba(40,197,234,0.3), var(--dt-accent));
	filter: blur(18px);
	opacity: 0.35;
	z-index: -1;
	animation: dt-border-spin 4s linear infinite;
	transition: opacity 0.4s ease, filter 0.4s ease;
	will-change: --dt-angle;
}
.dt-cta-particle:hover::before {
	opacity: 0.65;
	filter: blur(28px);
}
.dt-cta-particle__link {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	padding: 1rem 2.5rem;
	border-radius: calc(0.625rem - 1.5px);
	background: rgba(13, 17, 23, 0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.3s ease;
}
.dt-cta-particle:hover .dt-cta-particle__link {
	background: rgba(13, 17, 23, 0.78);
}
.dt-cta-particle__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--dt-accent);
	box-shadow: 0 0 8px var(--dt-accent);
	animation: dt-pulse 2s ease-in-out infinite;
}
.dt-glass-card__badge {
	display: inline-block;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--dt-accent);
	margin-bottom: 0.75rem;
}
.dt-glass-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.5rem;
	background: linear-gradient(135deg, rgba(108, 99, 255, 0.15), rgba(0, 212, 170, 0.1));
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}
.dt-glass-card__heading {
	font-size: 1.125rem;
	font-weight: 600;
	color: #fff;
	margin-bottom: 0.5rem;
}
.dt-glass-card__copy {
	font-size: 0.9rem;
	line-height: 1.5;
	color: #fff;
}
.dt-glass-card--location {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.dt-glass-card__tag {
	display: inline-block;
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--dt-accent-alt);
	margin-bottom: 0.75rem;
}
.dt-glass-card__time {
	font-size: 0.8125rem;
	color: rgba(255,255,255,0.4);
	margin-top: auto;
	padding-top: 0.75rem;
	font-family: var(--dt-font-mono);
}

/* ── fadeUp scroll animation (mazehq pattern) ── */
.dt-fadeUp {
	opacity: 0;
	scale: 0.96;
	translate: 0 2rem;
	transition: none;
}
.dt-fadeUp.is-visible {
	opacity: 1;
	scale: 1;
	translate: 0 0;
	transition:
		opacity 600ms cubic-bezier(0.23, 1, 0.32, 1) 80ms,
		scale 700ms cubic-bezier(0.23, 1, 0.32, 1) 80ms,
		translate 700ms cubic-bezier(0.23, 1, 0.32, 1) 80ms;
	transform-origin: top;
}

/* ── Responsive ────────────────────────────── */
@media (max-width: 768px) {
	.dt-hero {
		min-height: 100svh;
		padding: 5rem 1.25rem 2rem;
		flex-direction: column;
		justify-content: center;
		gap: 0;
	}
	.dt-hero__content {
		width: 100%;
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.dt-hero__title {
		letter-spacing: -0.5px;
		font-size: clamp(2.6rem, 10vw, 3.8rem);
		text-align: center;
	}
	.dt-hero__sub {
		text-align: center;
		font-size: clamp(1.05rem, 4vw, 1.3rem);
		max-width: 90%;
	}
	.dt-hero__logo-img { height: 80px; }
	.dt-hero__scroll { display: none; }
	.dt-hero__clients {
		position: relative;
		bottom: auto;
		left: auto;
		right: auto;
		width: 100%;
		padding: 2rem 0 0;
		pointer-events: auto;
	}
	.dt-hero__clients-list {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem 1rem;
		justify-items: center;
		align-items: center;
		padding: 0 1.5rem;
	}
	.dt-hero__client {
		flex: none;
		padding: 0;
		display: flex;
		justify-content: center;
	}
	.dt-hero__client-divider { display: none; }
	.dt-hero__client-logo {
		height: 24px;
		max-width: 120px;
	}
	.dt-hero__eyebrow { font-size: 0.6rem; letter-spacing: 1.5px; margin-bottom: 1rem; }

	/* Sections */
	.dt-section { padding: 3.5rem 0; }
	.dt-section__header { margin-bottom: 2rem; }
	.dt-section__title { font-size: clamp(1.75rem, 5vw, 2.5rem); }
	.dt-section__subtitle { font-size: 0.95rem; }

	/* Story */
	.dt-story {
		padding: 8vh 1.25rem;
		min-height: auto;
	}
	.dt-story__items--columns {
		flex-direction: column;
	}

	/* Come Stack — mobile: single column, no sticky */
	.dt-come-stack {
		min-height: auto;
		padding: 3rem 0;
	}
	.dt-come-stack__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 0 1.25rem;
	}
	.dt-come-stack__sticky {
		position: relative;
		top: auto;
	}
	.dt-come-stack__cards {
		padding-top: 0;
	}
	.dt-come-stack__card-item {
		position: relative;
		top: auto;
		margin-bottom: 1.25rem;
	}
	.dt-come-stack__card {
		min-height: auto;
		padding: 1.75rem;
	}
	.dt-come-stack__card-icon {
		font-size: 2rem;
		margin-bottom: 1rem;
	}
	.dt-come-stack__card-title {
		font-size: 1.15rem;
	}

	/* Glass cards */
	.dt-glass-card__row {
		flex-direction: column;
		gap: 0.75rem;
	}
	.dt-glass-card__number { font-size: 2.25rem; }
	.dt-glass-card__copy { font-size: 0.85rem; }
	.dt-glass-card__heading { font-size: 1rem; }
	.dt-glass-card { padding: 1.25rem; }

	/* Program */
	.dt-program-item { flex-direction: column; gap: 0.5rem; }
	.dt-programma__grid { grid-template-columns: 1fr; }
	.dt-programma__day { padding: 1.5rem; }
	.dt-programma__day-date { font-size: 1.2rem; }
	.dt-programma__slot-title { font-size: 0.95rem; }

	/* FAQ */
	.dt-faq__item summary { font-size: 0.95rem; padding: 1rem 0; }
	.dt-faq__answer p { font-size: 0.875rem; }

	/* Contact form */
	.dt-contact__row { grid-template-columns: 1fr; }
	.dt-contact__field input,
	.dt-contact__field textarea {
		padding: 1rem;
		font-size: 1rem;
	}
	.dt-contact__field label { font-size: 0.8rem; }

	/* Buttons & misc */
	.dt-btn { padding: 0.9rem 1.75rem; font-size: 0.9rem; width: 100%; justify-content: center; }
	.dt-footer__inner { flex-direction: column; text-align: center; }
	.dt-footer--hex { padding: 0 1rem 1rem; }
	.dt-footer__bar {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 0.75rem;
		padding: 1rem;
	}
	.dt-footer__legal { justify-content: center; flex-wrap: wrap; gap: 0.75rem; }
	.dt-footer__social { justify-content: center; }
	.dt-footer-hex { min-height: 40vh; }
	.dt-progress { display: none; }

	/* CTA particle button */
	.dt-cta-particle { margin-top: 1.5rem; }
	.dt-cta-particle__link { padding: 0.85rem 2rem; font-size: 0.9rem; }

	/* ── Relatori 2026: stacked vertical on mobile ── */
	.dt-relatori {
		-webkit-mask-image: none;
		mask-image: none;
		overflow: visible;
	}
	.dt-relatori__sticky {
		position: relative;
		height: auto;
		overflow: visible;
	}
	.dt-relatori__scroll-area {
		display: none;
	}
	.dt-relatori__header {
		height: auto;
		margin-bottom: 2rem;
	}
	.dt-relatori__cards {
		position: relative;
		aspect-ratio: unset;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1.5rem;
		padding: 0 1.25rem;
	}
	.dt-relatori__card {
		position: relative;
		inset: auto;
		transform: none;
		width: 75vw;
		max-width: 300px;
		pointer-events: auto;
		animation: none;
	}

	/* ── FAQ & Contatti: ensure visible when GSAP fails ── */
	#faq .dt-fadeUp,
	#contatti .dt-fadeUp,
	#faq .dt-faq__item {
		opacity: 1 !important;
		transform: none !important;
	}
	#faq, #contatti {
		overflow: visible;
	}
}

/* ── Section Progress Bar (mazehq s-progress) ── */
.dt-progress {
	z-index: 99;
	display: flex;
	align-items: center;
	position: fixed;
	top: calc(4rem + 1.25rem + 0.75rem);
	left: 0;
	gap: 1.125rem;
	height: 0.6875rem;
	padding-inline: 3rem;
	width: 100%;
	opacity: 0;
	transition: opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
	pointer-events: none;
	transform: translateY(-130%);
}
body.is-scrolled-vh-75 .dt-progress {
	transform: translateY(0);
	transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.dt-progress.is-active {
	opacity: 1;
}
.dt-progress__segment {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-grow: 1;
	flex-basis: 0;
	height: 0.6875rem;
}
.dt-progress__number {
	font-family: var(--dt-font);
	font-weight: 300;
	font-size: 0.75rem;
	line-height: 1;
	letter-spacing: 0.08em;
	color: rgba(214, 216, 216, 0.5);
	opacity: 0.6;
	transition: opacity 0.3s ease;
	flex-shrink: 0;
}
.dt-progress__progress {
	display: flex;
	align-items: center;
	flex-grow: 1;
	position: relative;
}
.dt-progress__line {
	height: 1px;
	width: 100%;
	background-size: 0.1875rem 0.0625rem;
	background-image: repeating-linear-gradient(
		to right,
		rgba(242, 244, 245, 0.75) 0 0.0625rem,
		transparent 0.0625rem 0.1875rem
	);
}
.dt-progress__dot {
	position: absolute;
	width: 0.6875rem;
	height: 0.6875rem;
	left: 0;
}
.dt-progress__dot::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background-image: linear-gradient(to right, #00E7FB, #E628FF);
	scale: 0;
	transition: scale 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}
/* Active segment dot + number */
.dt-progress[data-current='1'] .dt-progress__segment--1 .dt-progress__dot::before { scale: 1; }
.dt-progress[data-current='1'] .dt-progress__segment--1 .dt-progress__number { opacity: 1; }
.dt-progress[data-current='2'] .dt-progress__segment--2 .dt-progress__dot::before { scale: 1; }
.dt-progress[data-current='2'] .dt-progress__segment--2 .dt-progress__number { opacity: 1; }
.dt-progress[data-current='3'] .dt-progress__segment--3 .dt-progress__dot::before { scale: 1; }
.dt-progress[data-current='3'] .dt-progress__segment--3 .dt-progress__number { opacity: 1; }
.dt-progress[data-current='4'] .dt-progress__segment--4 .dt-progress__dot::before { scale: 1; }
.dt-progress[data-current='4'] .dt-progress__segment--4 .dt-progress__number { opacity: 1; }

/* ── Programma Section ─────────────────────── */
.dt-programma__grid {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 3rem;
	max-width: 42rem;
	margin-left: auto;
	margin-right: auto;
}
.dt-programma__day {
	position: relative;
	background: rgba(242, 244, 245, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.05);
	border-radius: 0.625rem;
	backdrop-filter: blur(0.25rem);
	-webkit-backdrop-filter: blur(0.25rem);
	padding: 2rem 2rem 2rem 2.5rem;
	transition: background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
	overflow: hidden;
}
.dt-programma__day:hover {
	background: rgba(242, 244, 245, 0.06);
	border-color: rgba(108, 99, 255, 0.12);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
}
.dt-programma__day::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 3px;
	height: 100%;
	background: linear-gradient(180deg, var(--dt-accent) 0%, var(--dt-accent-alt) 100%);
	border-radius: 3px 0 0 3px;
}
.dt-programma__day-label {
	font-size: 0.75rem;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--dt-accent-alt);
	margin-bottom: 0.5rem;
}
.dt-programma__day-date {
	font-size: 1.5rem;
	font-weight: 600;
	color: #fff;
	margin-bottom: 1.5rem;
	letter-spacing: -0.02em;
}
.dt-programma__slot {
	padding: 1rem 0;
	border-top: 1px dashed rgba(255, 255, 255, 0.08);
}
.dt-programma__slot-time {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--dt-accent);
	margin-bottom: 0.25rem;
	font-family: var(--dt-font-mono);
}
.dt-programma__slot-title {
	font-size: 1rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.4;
}
.dt-programma__slot-speaker {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.45);
	margin-top: 0.25rem;
}

/* ── Scroll animations ─────────────────────── */
.dt-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.dt-reveal--visible {
	opacity: 1;
	transform: translateY(0);
}

/* ── Gallery — Immersive Masonry ───────────── */
.dt-gallery__masonry {
	columns: 3;
	column-gap: 1rem;
}
.dt-gallery__item {
	break-inside: avoid;
	margin-bottom: 1rem;
	perspective: 600px;
	cursor: pointer;
	position: relative;
}
.dt-gallery__item-inner {
	position: relative;
	z-index: 1;
	border-radius: var(--dt-radius-lg);
	padding: 3px;
	background: conic-gradient(from var(--dt-angle), var(--dt-accent), #ca32df, rgba(40,197,234,0.3), var(--dt-accent));
	animation: dt-border-spin 4s linear infinite;
	will-change: --dt-angle;
	box-shadow: 0 4px 20px rgba(0,0,0,0.3);
	transition: animation-duration 0.4s ease;
}
/* Remove old aurora from parent */
.dt-gallery__item:hover .dt-gallery__item-inner {
	animation-duration: 1.5s;
	box-shadow: 0 8px 32px rgba(108, 99, 255, 0.25), 0 4px 20px rgba(0,0,0,0.4);
}
.dt-gallery__item--wide {
	column-span: all;
}
.dt-gallery__item--wide .dt-gallery__item-inner {
	max-height: 420px;
}
.dt-gallery__item img {
	width: 100%;
	height: auto;
	display: block;
}
/* Clip wrapper — clips parallaxed image inside aurora frame */
.dt-gallery__img-clip {
	position: relative;
	z-index: 1;
	border-radius: calc(var(--dt-radius-lg) - 3px);
	overflow: hidden;
}
/* Hover overlay */
.dt-gallery__item-overlay {
	position: absolute;
	inset: 3px;
	border-radius: calc(var(--dt-radius-lg) - 3px);
	background: linear-gradient(180deg, transparent 30%, rgba(5, 8, 22, 0.7) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.35s ease;
	z-index: 2;
}
.dt-gallery__item:hover .dt-gallery__item-overlay {
	opacity: 1;
}
.dt-gallery__item-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(108, 99, 255, 0.25);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(108, 99, 255, 0.4);
	color: #fff;
	transform: scale(0.7);
	transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1);
}
.dt-gallery__item:hover .dt-gallery__item-icon {
	transform: scale(1);
}

/* ── Lightbox ── */
.dt-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
	visibility: hidden;
}
.dt-lightbox.is-active {
	pointer-events: auto;
	visibility: visible;
}
.dt-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(5, 8, 22, 0.92);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.dt-lightbox__stage {
	position: relative;
	z-index: 2;
	max-width: 85vw;
	max-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.dt-lightbox__img {
	max-width: 100%;
	max-height: 85vh;
	border-radius: var(--dt-radius-lg);
	box-shadow: 0 20px 80px rgba(0,0,0,0.6);
	object-fit: contain;
}
.dt-lightbox__close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	z-index: 3;
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.12);
	color: #fff;
	font-size: 2rem;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s ease, transform 0.3s ease;
	line-height: 1;
}
.dt-lightbox__close:hover {
	background: rgba(108, 99, 255, 0.3);
	transform: rotate(90deg);
}
.dt-lightbox__prev,
.dt-lightbox__next {
	position: absolute;
	top: 50%;
	z-index: 3;
	transform: translateY(-50%);
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.1);
	color: #fff;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s ease;
}
.dt-lightbox__prev { left: 1.5rem; }
.dt-lightbox__next { right: 1.5rem; }
.dt-lightbox__prev:hover,
.dt-lightbox__next:hover {
	background: rgba(108, 99, 255, 0.3);
}
.dt-lightbox__counter {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	font-size: 0.85rem;
	color: rgba(255,255,255,0.5);
	font-family: var(--dt-font-mono);
	letter-spacing: 0.1em;
}

/* Responsive */
@media (max-width: 768px) {
	.dt-gallery__masonry { columns: 2; }
}
@media (max-width: 480px) {
	.dt-gallery__masonry { columns: 1; }
	.dt-gallery__item--wide { column-span: none; }
	.dt-lightbox__prev { left: 0.75rem; }
	.dt-lightbox__next { right: 0.75rem; }
}

/* ── FAQ (details/summary) ─────────────────── */
.dt-faq {
	max-width: 760px;
	margin: 0 auto;
}
.dt-faq__item {
	border-bottom: 1px solid var(--dt-border);
	position: relative;
	transition: border-color 0.3s ease;
}
.dt-faq__item[open] {
	border-color: rgba(108, 99, 255, 0.15);
}
/* Accent bar on open */
.dt-faq__item::before {
	content: '';
	position: absolute;
	top: 0;
	left: -1.5rem;
	width: 2px;
	height: 0;
	background: linear-gradient(180deg, var(--dt-accent), var(--dt-accent-alt));
	border-radius: 1px;
	transition: height 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}
.dt-faq__item[open]::before {
	height: 100%;
}
.dt-faq__item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.25rem 0;
	cursor: pointer;
	font-family: var(--dt-font);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--dt-heading);
	list-style: none;
	transition: color var(--dt-transition);
}
.dt-faq__item summary::-webkit-details-marker { display: none; }
/* Chevron circle */
.dt-faq__item summary::after {
	content: '';
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(108, 99, 255, 0.15), rgba(0, 212, 170, 0.1));
	flex-shrink: 0;
	margin-left: 1rem;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.3s ease, background 0.3s ease;
	/* CSS-only chevron arrow */
	border-left: 2px solid var(--dt-accent);
	border-bottom: 2px solid var(--dt-accent);
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 0;
	background: none;
	transform: rotate(-45deg);
	margin-top: -2px;
}
.dt-faq__item[open] summary::after {
	transform: rotate(135deg);
	margin-top: 2px;
}
.dt-faq__item summary .dt-faq__chevron {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(108, 99, 255, 0.15), rgba(0, 212, 170, 0.1));
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-left: 1rem;
	transition: transform 0.3s ease, background 0.3s ease;
}
.dt-faq__item[open] summary .dt-faq__chevron {
	transform: rotate(180deg);
	background: linear-gradient(135deg, rgba(108, 99, 255, 0.25), rgba(0, 212, 170, 0.2));
}
.dt-faq__item summary:hover { color: var(--dt-accent); }
.dt-faq__answer {
	padding-bottom: 1.25rem;
}
.dt-faq__answer p {
	font-size: 0.95rem;
	color: var(--dt-text);
	line-height: 1.7;
}

/* ── Contact Form ──────────────────────────── */
.dt-contact {
	max-width: 760px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}
.dt-contact__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
	margin-bottom: 1.5rem;
}
.dt-contact__field {
	display: flex;
	flex-direction: column;
}
.dt-contact__field--full {
	margin-bottom: 1.5rem;
}
.dt-contact__field label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--dt-heading);
	margin-bottom: 0.5rem;
	letter-spacing: 0.02em;
}
.dt-contact__field input,
.dt-contact__field textarea {
	background: rgba(255,255,255,0.04);
	border: 1px solid var(--dt-border);
	border-radius: var(--dt-radius);
	padding: 0.85rem 1rem;
	font-family: var(--dt-font);
	font-size: 0.95rem;
	color: var(--dt-heading);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.dt-contact__field input:focus,
.dt-contact__field textarea:focus {
	outline: none;
	border-color: var(--dt-accent);
	box-shadow: 0 0 0 3px rgba(108, 99, 255, 0.15);
}
.dt-contact__field textarea {
	resize: vertical;
	min-height: 120px;
}
@media (max-width: 640px) {
	.dt-contact__row { grid-template-columns: 1fr; }
}

/* ── Section particle canvas ───────────────── */
.dt-section-particles {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0;
}
.dt-section { position: relative; overflow: hidden; }

/* ── Scroll reveal (GSAP-driven) ───────────── */
.dt-fadeUp {
	opacity: 0;
	transform: translateY(40px);
}
.dt-fadeUp--visible {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.7s cubic-bezier(0.23, 1, 0.32, 1),
	            transform 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
