/* Syne ExtraBold, 10% narrower (OFL font, modified for this theme) */
@font-face { font-family: "Syne Narrow"; src: url("../fonts/syne-narrow-800.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
/* ==========================================================================
   Dance Music Therapy
   ========================================================================== */
:root {
	--bg: #0f0f0f;
	--panel: #0a0a0a;
	--ink: #ffffff;
	--muted: #a8a8a8;
	--line: #ffffff;
	--accent-warm: rgb(var(--fx-rgb-warm, 255,122,47));
	--accent-cool: rgb(var(--fx-rgb-cool, 47,168,255));
	--f-display: "Inter Tight", "Helvetica Neue", Arial, sans-serif;
	--f-nav: "Jost", "Futura", "Century Gothic", sans-serif;
	--gutter: clamp(20px, 5vw, 132px);
	--maxw: 1600px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--f-body, var(--f-display));
	font-size: var(--bsize, 17px);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.dmt-skip:focus { position: fixed !important; top: 10px; left: 10px; width: auto; height: auto; clip: auto; z-index: 1000; background: #fff; color: #000; padding: 10px 16px; }

/* ---------- Grain (sits over everything, never blocks clicks) ---------- */
.dmt-grain {
	position: fixed; inset: -10%;
	width: 120%; height: 120%;
	pointer-events: none; z-index: 999;
	opacity: .16;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.4 -.2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: dmt-grain 1s steps(6) infinite;
	mix-blend-mode: overlay;
}
@keyframes dmt-grain {
	0% { transform: translate(0, 0); }
	20% { transform: translate(-6%, 4%); }
	40% { transform: translate(5%, -7%); }
	60% { transform: translate(-3%, 8%); }
	80% { transform: translate(8%, 2%); }
	100% { transform: translate(-5%, -4%); }
}

/* Stronger grain + CRT scanlines on inner pages (homepage does this in WebGL) */
.dmt-crt-subtle .dmt-grain { opacity: .2; }
.dmt-crt-strong .dmt-grain { opacity: .26; }
.dmt-scan { display: none; position: fixed; inset: 0; pointer-events: none; z-index: 998; }
.dmt-crt-subtle .dmt-scan, .dmt-crt-strong .dmt-scan, .dmt-scan-off {
	display: block;
	background:
		repeating-linear-gradient(to bottom, rgba(0,0,0,.22) 0 1px, transparent 1px 3px),
		radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.45) 100%);
	opacity: .55;
}
.dmt-crt-strong .dmt-scan { opacity: .85; }
@keyframes dmt-flicker { 0%, 100% { opacity: 1; } 50% { opacity: .9; } 51% { opacity: 1; } 75% { opacity: .95; } }
/* The homepage canvas already draws scanlines + grain, so keep the overlays light there */
.dmt-home .dmt-scan { display: none; }
.dmt-home .dmt-grain { opacity: .1; }

/* ---------- Faint brain backdrop on inner pages ---------- */
.dmt-backdrop {
	/* Lives outside the page wrapper so page-load animations can never move it. */
	position: fixed; inset: 0; z-index: 0; pointer-events: none;
	background: var(--bg);
}
.dmt-backdrop::before {
	content: ''; position: absolute; inset: 0;
	background: var(--pattern) no-repeat 50% 18% / max(170vmax, 1800px) auto;
	opacity: calc(.011 * var(--fx-backdrop, 1));
}
#dmt-screen { isolation: isolate; z-index: 1; }
body:not(.dmt-home) #dmt-screen { background: transparent; }

/* ---------- Header + nav ---------- */
.dmt-header {
	position: relative; z-index: 20;
	display: flex; flex-direction: column; align-items: center;
	padding: 14px var(--gutter) 0;
}
.dmt-home .dmt-header { position: absolute; top: 0; left: 0; right: 0; padding-top: 44px; }
.dmt-header__logo { display: block; width: 104px; margin-bottom: 18px; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.dmt-header__logo .dmt-logo { transition: filter .35s ease; }
.dmt-header__logo { transition: transform .7s cubic-bezier(.65,0,.35,1); }
.dmt-header__logo:hover, .dmt-header__logo:focus-visible { transform: rotate(180deg); }
.dmt-header__logo:hover .dmt-logo { filter: brightness(0) invert(1) drop-shadow(-2px 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .8)) drop-shadow(2px 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .8)) drop-shadow(0 0 10px rgba(var(--fx-rgb-warm, 255,128,32), .25)); }
.dmt-nav { display: flex; align-items: center; gap: 28px; }
.dmt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: clamp(22px, 3.4vw, 50px); }
.dmt-nav a, .dmt-nav__cart {
	font-family: var(--f-nav); font-weight: 600; font-size: var(--nsize, 15px);
	letter-spacing: .02em; text-transform: uppercase; text-decoration: none;
	position: relative;
}
.dmt-nav__list a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: currentColor;
	transform: scaleX(0); transform-origin: right; transition: transform .3s ease;
}
.dmt-nav__list a:hover::after,
.dmt-nav__list .current-menu-item a::after,
.dmt-nav__list .current_page_item a::after { transform: scaleX(1); transform-origin: left; }

/* ---------- Layout ---------- */
.dmt-main { position: relative; z-index: 1; }
.dmt-panel {
	position: relative;
	max-width: var(--maxw);
	margin: clamp(60px, 9vw, 130px) auto 0;
	margin-left: 0;
	padding: clamp(24px, 5vw, 90px); /* same on every side */
	background: var(--panel);
	min-height: 50vh;
}
@media (min-width: 1800px) { .dmt-panel { margin-left: auto; } }

.dmt-h1, .dmt-h2, .dmt-event__title, .dmt-card__title, .dmt-event__date, .dmt-btn, .dmt-badge, .dmt-tabs a, .dmt-search__input, .dmt-select select, .dmt-event__lineup, .dmt-event__venue, .dmt-artist, .dmt-loader__count, .dmt-video-item__title {
	font-family: var(--f-display); font-stretch: var(--hs, 100%);
}
.dmt-h1, .dmt-h2, .dmt-event__title, .dmt-card__title {
	font-weight: var(--hw, 900); text-transform: uppercase;
	letter-spacing: calc(-.045em * var(--tk, 1)); line-height: .92;
}
.dmt-h1 { font-size: calc(clamp(30px, 3vw, 46px) * var(--hscale, .85)); margin: 0 0 clamp(26px, 3vw, 50px); }
.dmt-h2 { font-size: calc(clamp(22px, 2vw, 32px) * var(--hscale, .85)); margin: 0 0 24px; }
.dmt-section { margin-top: 70px; }
.dmt-section:first-child { margin-top: 0; }
.dmt-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.dmt-link { font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.dmt-kicker { font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 0 0 12px; }
.dmt-intro { max-width: 760px; font-family: var(--f-body); font-size: clamp(16px, 1.2vw, 19px); color: #dcdcdc; margin: -30px 0 60px; }
.dmt-empty { font-weight: 800; text-transform: uppercase; color: var(--muted); padding: 40px 0; }
.dmt-back { display: inline-block; margin-bottom: 30px; font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; text-decoration: none; color: var(--muted); }
.dmt-back:hover { color: var(--ink); }
.dmt-upper { text-transform: uppercase; font-weight: 800; }
.dmt-content { color: #dcdcdc; max-width: 70ch; font-family: var(--f-body); }
.dmt-content a { color: var(--ink); }

/* ---------- Buttons ---------- */
.dmt-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 8px 22px;
	background: var(--ink); color: #000; border: 2px solid var(--ink);
	font-family: var(--f-display); font-weight: var(--hw, 900); font-size: 14px; letter-spacing: .02em; text-transform: uppercase;
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: background .2s, color .2s, box-shadow .2s;
}
.dmt-btn:hover { background: transparent; color: var(--ink); box-shadow: -3px 0 0 var(--accent-warm), 3px 0 0 var(--accent-cool); }

.dmt-btn.is-disabled { background: transparent; color: var(--muted); border-color: #444; cursor: default; box-shadow: none; }
.dmt-btn--small { min-height: 42px; padding: 6px 18px; font-size: 16px; }
.dmt-actions { margin: 30px 0; display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Event filters ---------- */
.dmt-filters { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding-bottom: 24px; border-bottom: 1px solid rgba(255,255,255,.6); }
.dmt-filters__right { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.dmt-search { display: flex; align-items: center; gap: 12px; width: min(360px, 100%); height: 50px; border: 1px solid var(--ink); padding: 0 14px; }
.dmt-search svg { width: 22px; height: 22px; fill: none; stroke: var(--ink); stroke-width: 1.6; flex: none; }
.dmt-search__input { flex: 1; min-width: 0; background: none; border: 0; color: var(--ink); font: var(--hw, 900) 13px/1 var(--f-display); font-stretch: var(--hs, 100%); text-transform: uppercase; letter-spacing: calc(-.02em * var(--tk, 1)); text-overflow: ellipsis; }
.dmt-search__input::placeholder { color: var(--ink); opacity: 1; }
.dmt-search__input:focus { outline: none; }
.dmt-search:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }
.dmt-tabs { display: flex; gap: 22px; }
.dmt-tabs a { font: var(--hw, 900) 13px/1 var(--f-display); text-transform: uppercase; letter-spacing: calc(-.02em * var(--tk, 1)); text-decoration: none; color: var(--muted); padding: 6px 0; border-bottom: 2px solid transparent; }
.dmt-tabs a[aria-current] { color: var(--ink); border-color: var(--ink); }
.dmt-select { position: relative; display: block; }
.dmt-select select {
	appearance: none; -webkit-appearance: none;
	height: 50px; min-width: 220px; padding: 0 50px 0 18px; font-size: 13px !important;
	background: transparent; color: var(--ink); border: 1px solid var(--ink); border-radius: 0;
	font: var(--hw, 900) 18px/1 var(--f-display); text-transform: uppercase; letter-spacing: calc(-.02em * var(--tk, 1)); cursor: pointer;
}
.dmt-select select option { background: #111; }
.dmt-select::after { content: ""; position: absolute; right: 20px; top: 18px; width: 12px; height: 12px; border: solid var(--ink); border-width: 0 1.6px 1.6px 0; transform: rotate(45deg); pointer-events: none; }

/* ---------- Event rows ---------- */
.dmt-event {
	display: grid;
	grid-template-columns: 84px minmax(120px, 190px) minmax(0, 1.4fr) minmax(0, .8fr) auto;
	gap: clamp(16px, 2.4vw, 40px);
	padding: 30px 0;
	border-bottom: 1px solid rgba(255,255,255,.6);
}
.dmt-event[hidden] { display: none; }
.dmt-event__date { display: flex; flex-direction: column; font-weight: var(--hw, 900); font-size: clamp(16px, 1.25vw, 20px); line-height: 1.1; letter-spacing: calc(-.02em * var(--tk, 1)); text-transform: uppercase; }
.dmt-event__poster img, .dmt-event__noposter { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; box-shadow: 0 2px 0 rgba(0,0,0,.4); transition: transform .45s cubic-bezier(.2,.8,.2,1), filter .45s; }
.dmt-event__noposter { display: block; background: #222; }
.dmt-event__poster:hover img { filter: brightness(1.08); }
.dmt-event__title { margin: 0 0 12px; }
.dmt-event__title a { text-decoration: none; }
.dmt-event__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.dmt-event__lineup { margin: 0; font-weight: var(--hw, 900); font-size: 13px; line-height: 1.4; letter-spacing: .02em; text-transform: uppercase; max-width: 30em; color: #cfcfcf; }
.dmt-event__venue { display: flex; flex-direction: column; gap: 4px; font-weight: var(--hw, 900); font-size: 13px; line-height: 1.4; letter-spacing: .02em; text-transform: uppercase; }
.dmt-event__city { color: var(--muted); }
.dmt-event.is-cancelled .dmt-event__title, .dmt-event.is-cancelled .dmt-event__date { text-decoration: line-through; opacity: .6; }
@media (max-width: 1100px) {
	.dmt-event { grid-template-columns: 70px 160px 1fr; }
	.dmt-event__venue { grid-column: 3; }
	.dmt-event__cta { grid-column: 3; }
}
@media (max-width: 680px) {
	.dmt-event { grid-template-columns: 1fr 1.5fr; gap: 14px 18px; padding: 24px 0; }
	.dmt-event__date { grid-column: 1 / -1; flex-direction: row; gap: .3em; font-size: 16px; }
	.dmt-event__poster { grid-row: span 3; }
	.dmt-event__info, .dmt-event__venue, .dmt-event__cta { grid-column: 2; }
	.dmt-event__title { margin-bottom: 12px; }
	.dmt-btn { min-height: 42px; font-size: 13px; padding: 8px 16px; }
	.dmt-search, .dmt-select select { height: 48px; }
	.dmt-filters__right, .dmt-select, .dmt-select select, .dmt-search { width: 100%; }
}

/* ---------- Release grid ---------- */
.dmt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: clamp(20px, 2.4vw, 40px); }
.dmt-card__art { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: #222; }
.dmt-card__art img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .4s; }
.dmt-card__art:hover img { transform: scale(1.04); }
.dmt-card__noart { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, #1c1c1c 0 12px, #222 12px 24px); }
.dmt-card.is-upcoming .dmt-card__art img { filter: grayscale(.25); }
.dmt-badge { position: absolute; top: 12px; left: 12px; background: var(--ink); color: #000; font: var(--hw, 900) 14px/1 var(--f-display); letter-spacing: calc(-.02em * var(--tk, 1)); text-transform: uppercase; padding: 8px 10px; }
.dmt-card__meta { padding-top: 16px; }
.dmt-card__title { margin: 0 0 4px; }
.dmt-card__title a { text-decoration: none; }
.dmt-card__artist { margin: 0; font-family: var(--f-nav); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #cfcfcf; }
.dmt-card__date { margin: 2px 0 12px; color: var(--muted); font-family: var(--f-nav); font-weight: 500; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; }

/* ---------- Single (event / release) ---------- */
.dmt-single { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(30px, 5vw, 90px); align-items: start; }
.dmt-single__media img { width: 100%; }
.dmt-single__media--square img { aspect-ratio: 1; object-fit: cover; }
.dmt-single .dmt-h1 { margin-bottom: 18px; }
.dmt-artist { font-weight: var(--hw, 900); font-size: clamp(20px, 1.8vw, 28px); text-transform: uppercase; letter-spacing: calc(-.03em * var(--tk, 1)); margin: 0 0 24px; }
.dmt-facts { display: grid; grid-template-columns: max-content 1fr; gap: 10px 28px; margin: 24px 0 0; padding: 22px 0; border-top: 3px solid var(--line); border-bottom: 3px solid var(--line); }
.dmt-facts dt { font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.dmt-facts dd { margin: 0; }
@media (max-width: 860px) { .dmt-single { grid-template-columns: 1fr; } }

/* ---------- Video ---------- */
.dmt-video { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.dmt-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dmt-video__facade { position: absolute; inset: 0; padding: 0; border: 0; background: #000; cursor: pointer; }
.dmt-video__facade img { width: 100%; height: 100%; object-fit: cover; opacity: .8; transition: opacity .3s, transform .6s; }
.dmt-video__facade:hover img { opacity: 1; transform: scale(1.02); }
.dmt-video__play { position: absolute; left: 50%; top: 50%; width: 92px; height: 92px; margin: -46px 0 0 -46px; border-radius: 50%; background: var(--ink); box-shadow: -4px 0 0 var(--accent-warm), 4px 0 0 var(--accent-cool); transition: transform .3s; }
.dmt-video__play::after { content: ""; position: absolute; left: 37px; top: 30px; border-style: solid; border-width: 16px 0 16px 26px; border-color: transparent transparent transparent #000; }
.dmt-video__facade:hover .dmt-video__play { transform: scale(1.08); }
.dmt-vgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(460px, 100%), 1fr)); gap: 50px 40px; }
.dmt-video-item__title { font-weight: var(--hw, 900); text-transform: uppercase; letter-spacing: calc(-.035em * var(--tk, 1)); font-size: 22px; line-height: 1.1; margin: 16px 0 0; }

/* ---------- Home hero ---------- */
html:has(body.dmt-home), body.dmt-home { height: 100%; overflow: hidden; overscroll-behavior: none; }
.dmt-hero { position: relative; height: 100vh; height: 100svh; min-height: 0; overflow: hidden; display: grid; place-items: center; background: var(--bg); }
.dmt-hero__canvas, .dmt-hero__fallback { position: absolute; inset: 0; width: 100%; height: 100%; }
.dmt-hero__fallback { background: var(--pattern) no-repeat 50% 50% / max(180vmax, 1600px) auto; opacity: .08; }
.dmt-hero__fallback { display: none; }
.dmt-hero.no-gl .dmt-hero__fallback { display: block; }
.dmt-hero__stage { position: relative; z-index: 2; perspective: 900px; display: flex; flex-direction: column; align-items: center; }
.dmt-tilt {
	position: relative; width: min(64vmin, 500px); aspect-ratio: 1; border-radius: 50%;
	transform-style: preserve-3d;
	transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) rotateZ(var(--rz, 0deg)) scale(var(--s, 1));
	transition: transform .5s cubic-bezier(.2,.8,.2,1);
	will-change: transform;
	cursor: pointer;
	translate: var(--dx, 0px) var(--dy, 0px);
	touch-action: none; -webkit-user-select: none; user-select: none;
}
.dmt-tilt.is-dragging { cursor: grabbing; }
.dmt-tilt img { -webkit-user-drag: none; }
.dmt-tilt.is-active { transition-duration: .2s; }
.dmt-ca {
	--ca: calc((var(--ab-x, 1.6px) + var(--spin-ca, 0px) + var(--drag-ca, 0px)) * var(--fx-rgb, 1));
	position: absolute; inset: 0;
	filter:
		drop-shadow(calc(var(--ca) * -1) 0 0 rgba(var(--fx-rgb-warm, 255,128,32),  .8))
		drop-shadow(calc(var(--ca) * -1) 0 .5px rgba(var(--fx-rgb-warm, 255,128,32),  .45))
		drop-shadow(calc(var(--ca) * 2) 0 0 rgba(var(--fx-rgb-cool, 20,160,180),  .75))
		drop-shadow(var(--ca) 0 .5px rgba(var(--fx-rgb-cool, 20,160,180),  .5))
		drop-shadow(0 0 14px rgba(var(--fx-rgb-warm, 255,128,32),  .14))
		saturate(var(--fx-rgb-sat, 1)); /* FX: Colour split saturation */
}
.dmt-ca { animation: dmt-float 14s ease-in-out infinite; will-change: transform; }
/* Calm the drift right down while you're hovering or dragging, so your own movement takes over */
.dmt-tilt.is-active .dmt-ca, .dmt-tilt.is-dragging .dmt-ca { animation-play-state: paused; }
/* Idle drift: a slow, wandering float with a gentle 3D sway (strength set by --fx-idle in the FX Lab) */
@keyframes dmt-float {
	0%, 100% { transform: translate3d(0, 0, 0) rotateX(0deg) rotateY(0deg) rotate(0deg); }
	18% { transform: translate3d(calc(var(--fx-idle, 1) * 8px), calc(var(--fx-idle, 1) * -12px), 0) rotateX(calc(var(--fx-idle, 1) * 4deg)) rotateY(calc(var(--fx-idle, 1) * -5deg)) rotate(calc(var(--fx-idle, 1) * 1.5deg)); }
	37% { transform: translate3d(calc(var(--fx-idle, 1) * -4px), calc(var(--fx-idle, 1) * -20px), 0) rotateX(calc(var(--fx-idle, 1) * -3deg)) rotateY(calc(var(--fx-idle, 1) * 6deg)) rotate(calc(var(--fx-idle, 1) * -.5deg)); }
	58% { transform: translate3d(calc(var(--fx-idle, 1) * -12px), calc(var(--fx-idle, 1) * -8px), 0) rotateX(calc(var(--fx-idle, 1) * 5deg)) rotateY(calc(var(--fx-idle, 1) * 3deg)) rotate(calc(var(--fx-idle, 1) * -2deg)); }
	79% { transform: translate3d(calc(var(--fx-idle, 1) * 6px), calc(var(--fx-idle, 1) * 4px), 0) rotateX(calc(var(--fx-idle, 1) * -4deg)) rotateY(calc(var(--fx-idle, 1) * -4deg)) rotate(calc(var(--fx-idle, 1) * 1deg)); }
}

.dmt-spin { position: absolute; inset: 0; transform: rotate(var(--spin, 0deg)); will-change: transform; }
.dmt-tilt .dmt-logo--hero {
	width: 100%; height: 100%; object-fit: contain;
	transform: scale(var(--logo-fit, 1));
	filter: brightness(0) invert(1);
}
.dmt-tilt__shine { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%), rgba(255,255,255,.22), transparent 45%); mix-blend-mode: soft-light; opacity: var(--shine, 0); transition: opacity .4s; }
.dmt-hero__tagline { margin: 34px 0 0; font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; font-size: clamp(14px, 1.2vw, 18px); color: #cfcfcf; }
.admin-bar .dmt-hero { height: calc(100svh - 32px); }
@media (max-width: 782px) { .admin-bar .dmt-hero { height: calc(100svh - 46px); } }
.dmt-hero__foot { position: absolute; left: 0; right: 0; bottom: 28px; z-index: 2; display: flex; justify-content: center; }
.dmt-hero__foot .dmt-social a { font-size: 14px; opacity: .75; }
.dmt-hero__foot .dmt-social a:hover { opacity: 1; }

/* Logo images: force white whichever version of the logo is uploaded */
.dmt-logo { filter: brightness(0) invert(1); transform: scale(var(--logo-fit, 1)); }
.dmt-logo--small { width: 100%; height: auto; }

/* ---------- Footer ---------- */
.dmt-footer { position: relative; z-index: 1; padding: 60px var(--gutter) 50px; }
.dmt-footer__inner { max-width: var(--maxw); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; }
.dmt-social, .dmt-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.dmt-social a, .dmt-footer__menu a { font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; font-size: 16px; }
.dmt-social a:hover, .dmt-footer__menu a:hover { text-decoration: underline; text-underline-offset: 4px; }
.dmt-footer__copy { margin: 0; color: var(--muted); font-size: 14px; font-family: var(--f-nav); text-transform: uppercase; letter-spacing: .06em; }

/* ---------- WordPress bits ---------- */
.alignwide { max-width: 1200px; }
.alignfull { width: 100%; }
.wp-block-image img { height: auto; }
.nav-links { display: flex; gap: 16px; margin-top: 50px; font-weight: var(--hw, 900); text-transform: uppercase; }

@media (prefers-reduced-motion: reduce) {
	.dmt-grain, .dmt-scan { animation: none; }
	.dmt-tilt { transition: none; }
	.dmt-ca { animation: none; }
	html { scroll-behavior: auto; }
}

/* ==========================================================================
   Custom cursors
   ========================================================================== */
html, body {
	cursor: url("../img/cursor/arrow.png") 3 2, auto;
	cursor: -webkit-image-set(url("../img/cursor/arrow.png") 1x, url("../img/cursor/arrow@2x.png") 2x) 3 2, auto;
	cursor: image-set(url("../img/cursor/arrow.png") 1x, url("../img/cursor/arrow@2x.png") 2x) 3 2, auto;
}
a, button, [role="button"], select, summary, label[for], .dmt-tilt, .dmt-video__facade, input[type="submit"], input[type="checkbox"], input[type="radio"], .wc-block-components-button {
	cursor: url("../img/cursor/hand.png") 8 1, pointer;
	cursor: -webkit-image-set(url("../img/cursor/hand.png") 1x, url("../img/cursor/hand@2x.png") 2x) 8 1, pointer;
	cursor: image-set(url("../img/cursor/hand.png") 1x, url("../img/cursor/hand@2x.png") 2x) 8 1, pointer;
}
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], textarea { cursor: text; }
.dmt-btn.is-disabled { cursor: inherit; }

/* ==========================================================================
   CRT text: always-on colour split + glow, stronger on hover
   ========================================================================== */
.dmt-crt-subtle, .dmt-crt-strong { --tx: calc(1.2px * var(--fx-text, 1)); --tg: 6px; --ta: .55; }
.dmt-crt-strong { --tx: calc(1.8px * var(--fx-text, 1)); --tg: 10px; --ta: .7; }
.dmt-crt-off { --tx: 0px; --tg: 0px; --ta: 0; }
.dmt-h1, .dmt-h2, .dmt-tabs a, .dmt-artist, .dmt-hero__tagline, .dmt-link, .dmt-back {
	text-shadow:
		calc(var(--tx) * -1) 0 0 rgba(255, 122, 47, var(--ta)),
		var(--tx) 0 0 rgba(47, 168, 255, var(--ta)),
		0 0 var(--tg) rgba(255, 255, 255, calc(var(--ta) * .45));
	transition: text-shadow .25s ease, filter .25s ease;
}
.dmt-tabs a:hover, .dmt-link:hover, .dmt-back:hover,
.dmt-unused-hover {
	text-shadow:
		calc(var(--tx) * -2.4) 0 1px rgba(255, 122, 47, .9),
		calc(var(--tx) * 2.4) 0 1px rgba(47, 168, 255, .9),
		0 0 calc(var(--tg) * 1.8) rgba(255, 255, 255, .45);
	filter: blur(.35px);
	animation: dmt-text-jitter .18s steps(2) infinite;
}
@keyframes dmt-text-jitter { 50% { transform: translateX(.6px); } }
.dmt-nav a, .dmt-tabs a, .dmt-link, .dmt-back { display: inline-block; }

/* ==========================================================================
   Text scramble (hover)
   ========================================================================== */
.dmt-scr { display: inline-block; white-space: pre; text-align: left; }
.dmt-scr__w { display: inline-block; white-space: pre; overflow: visible; text-decoration: inherit; }
.dmt-scr__hl { background: #fff; color: #000; text-shadow: none; }
.dmt-btn:not(:hover) .dmt-scr__hl { background: #000; color: #fff; }
.dmt-scr__g { opacity: .75; }

/* ==========================================================================
   Preloader
   ========================================================================== */
.dmt-loader { display: none; }
html.dmt-preload, html.dmt-preload body { overflow: hidden; }
html.dmt-preload .dmt-loader, .dmt-loader.is-out {
	display: grid; place-items: center;
	position: fixed; inset: 0; z-index: 2000;
	background: #0a0a0a;
}
.dmt-loader.is-out { opacity: 0; pointer-events: none; transition: opacity .7s cubic-bezier(.4,0,.2,1) .1s; }
.dmt-loader__mark {
	position: relative; width: min(32vmin, 430px); aspect-ratio: 1;
	transition: transform .8s cubic-bezier(.2,.8,.2,1), opacity .5s ease;
}
.dmt-loader__clip { position: absolute; inset: 0; clip-path: inset(calc((1 - var(--p, 0)) * 100%) 0 0 0); }
.dmt-loader__img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
	transform: scale(var(--logo-fit, 1));
	filter: brightness(0) invert(1) drop-shadow(-1.5px 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .75)) drop-shadow(1.5px 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .75));
	animation: dmt-vinyl 6s linear infinite;
}
.dmt-loader__img--base { opacity: .12; filter: brightness(0) invert(1); }
.dmt-loader__count {
	position: absolute; left: 0; right: 0; bottom: 6vh; text-align: center;
	font: var(--hw, 900) clamp(18px, 1.6vw, 24px)/1 var(--f-display); letter-spacing: calc(-.02em * var(--tk, 1)); font-variant-numeric: tabular-nums;
	color: rgba(255,255,255,.8);
	transition: opacity .3s ease;
}
.dmt-loader.is-done .dmt-loader__count { opacity: 0; }
.dmt-loader.is-done .dmt-loader__mark { filter: drop-shadow(0 0 22px rgba(255,255,255,.25)); }
.dmt-loader.is-out .dmt-loader__mark { transform: scale(1.08); opacity: 0; }
@media (prefers-reduced-motion: reduce) { .dmt-loader__img { animation: none; } }

/* ==========================================================================
   CRT menu text: flickering colour split + scanlines through the letters
   ========================================================================== */
@keyframes dmt-crt-text {
	0% { text-shadow: calc(2.2px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.2px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	5% { text-shadow: calc(2.8px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.8px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	10% { text-shadow: calc(0.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	15% { text-shadow: calc(2.2px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.2px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	20% { text-shadow: calc(0.9px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.9px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	25% { text-shadow: calc(-0.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(0.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	30% { text-shadow: calc(2.8px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.8px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	35% { text-shadow: calc(0.9px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.9px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	40% { text-shadow: calc(2.8px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.8px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	45% { text-shadow: calc(0.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	50% { text-shadow: calc(-0.3px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(0.3px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	55% { text-shadow: calc(0.3px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.3px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	60% { text-shadow: calc(0.3px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.3px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	65% { text-shadow: calc(-1.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(1.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	70% { text-shadow: calc(0.6px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.6px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	75% { text-shadow: calc(1.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-1.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	80% { text-shadow: calc(0.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	85% { text-shadow: calc(2.2px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.2px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	90% { text-shadow: calc(0.4px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-0.4px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	95% { text-shadow: calc(-0.9px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(0.9px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
	100% { text-shadow: calc(2.8px * var(--fx-text, 1)) 0 1px rgba(47,168,255,.55), calc(-2.8px * var(--fx-text, 1)) 0 1px rgba(255,122,47,.45), 0 0 4px rgba(255,255,255,.45); }
}
.dmt-nav__list a, .dmt-nav__cart {
	letter-spacing: var(--nt, .09em);
	font-weight: var(--nw, 700);
	font-stretch: var(--ns, 100%);
	color: #fff;
	animation: dmt-crt-text 1.6s steps(1, end) infinite;
	filter: blur(.25px);
}
.dmt-nav__list a:hover, .dmt-nav__list a:focus-visible, .dmt-nav__cart:hover {
	animation: none; filter: none; transform: none;
	text-shadow: -1px 0 0 rgba(255,122,47,.7), 1px 0 0 rgba(47,168,255,.7), 0 0 8px rgba(255,255,255,.35);
}
/* Bag icon */
.dmt-nav__cart { display: inline-flex; align-items: center; gap: 6px; position: relative; }
.dmt-nav__cart[hidden] { display: none; }
.dmt-nav__cart svg { width: 1.9em; height: 1.9em; fill: currentColor; stroke: none; filter: drop-shadow(-1px 0 rgba(255,122,47,.6)) drop-shadow(1px 0 rgba(47,168,255,.6)); }
.dmt-nav__count {
	position: absolute; top: -.45em; left: 1.45em;
	min-width: 1.45em; height: 1.45em; padding: 0 .3em; border-radius: 1em;
	background: #fff; color: #000; text-shadow: none;
	font: 700 .58em/1.45em var(--f-body, sans-serif); letter-spacing: 0; text-align: center;
}
.dmt-nav__list a::after { background: #fff; box-shadow: -2px 0 rgba(255,122,47,.7), 2px 0 rgba(47,168,255,.7); }
.dmt-nav__list a .dmt-scr__hl { background: #fff; color: #000; }

/* ==========================================================================
   CRT screen frame (rounded glass, bezel, dark edges) on every page
   ========================================================================== */
body { background: #000; }
#dmt-screen { position: relative; background: var(--bg); min-height: 100vh; transform-origin: 50% var(--oy, 50vh); }
.dmt-home #dmt-screen { min-height: 0; }
.dmt-crt-frame {
	position: fixed; inset: clamp(4px, .7vw, 10px); z-index: 2100; pointer-events: none;
	border-radius: clamp(16px, 2.6vw, 40px);
	box-shadow:
		0 0 0 60px #030303,
		inset 0 0 0 1px rgba(255,255,255,.05),
		inset 0 0 22px 6px rgba(0,0,0,.85),
		inset 0 0 120px 20px rgba(0,0,0,.6);
	background: radial-gradient(ellipse 60% 40% at 22% 12%, rgba(255,255,255,.035), transparent 70%);
}
.admin-bar .dmt-crt-frame { top: calc(32px + clamp(4px, .7vw, 10px)); }
@media (max-width: 782px) { .admin-bar .dmt-crt-frame { top: calc(46px + 4px); } }
.dmt-crt-off .dmt-crt-frame { box-shadow: inset 0 0 60px rgba(0,0,0,.5); border-radius: 0; inset: 0; background: none; }

/* ==========================================================================
   Page transitions (choose in Customise > Dance Music Therapy > Page transition)
   Classes: dmt-t-{mode} always; dmt-leaving on click; dmt-arriving holds the
   hidden state on the next page; dmt-entering plays the reveal.
   ========================================================================== */
html.dmt-preload #dmt-screen { opacity: 0; animation: dmt-failsafe 0s linear 6s forwards; }
html.dmt-revealed #dmt-screen { animation: dmt-fade-in .5s ease both; }
@keyframes dmt-failsafe { to { opacity: 1; } }
html.dmt-arriving #dmt-screen { animation: dmt-failsafe 0s linear 3s forwards; }

.dmt-veil { position: fixed; inset: 0; z-index: 1500; pointer-events: none; visibility: hidden; background: #000; }
.dmt-veil__line { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: #fff; box-shadow: 0 0 12px 3px rgba(255,255,255,.5), 0 -3px 0 rgba(var(--fx-rgb-warm, 255,128,32), .6), 0 3px 0 rgba(var(--fx-rgb-cool, 20,160,180), .6); opacity: 0; }

/* 1. Fade */
html.dmt-t-fade.dmt-leaving #dmt-screen { animation: dmt-fade-out .22s ease forwards; }
html.dmt-t-fade.dmt-arriving #dmt-screen { opacity: 0; }
html.dmt-t-fade.dmt-entering #dmt-screen { animation: dmt-fade-in .35s ease both; }
@keyframes dmt-fade-out { to { opacity: 0; } }
@keyframes dmt-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* 2. Scanline wipe: a bright line sweeps down drawing black behind it, then sweeps down revealing the next page */
html.dmt-t-scanline.dmt-leaving .dmt-veil, html.dmt-t-scanline.dmt-arriving .dmt-veil, html.dmt-t-scanline.dmt-entering .dmt-veil { visibility: visible; }
html.dmt-t-scanline.dmt-leaving .dmt-veil { animation: dmt-wipe-cover .36s cubic-bezier(.6,0,.4,1) forwards; }
html.dmt-t-scanline.dmt-leaving .dmt-veil__line, html.dmt-t-scanline.dmt-entering .dmt-veil__line { opacity: 1; animation: dmt-line .36s cubic-bezier(.6,0,.4,1) forwards; }
html.dmt-t-scanline.dmt-entering .dmt-veil { animation: dmt-wipe-reveal .42s cubic-bezier(.6,0,.4,1) forwards; }
html.dmt-t-scanline.dmt-entering .dmt-veil__line { animation-duration: .42s; }
@keyframes dmt-wipe-cover { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes dmt-wipe-reveal { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(100% 0 0 0); } }
@keyframes dmt-line { from { top: 0; } to { top: calc(100% - 2px); } }

/* 3. Static flash: a split second of TV static between pages */
html.dmt-t-static .dmt-veil { background: #777 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.6 -.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0 / 180px; }
html.dmt-t-static.dmt-leaving .dmt-veil, html.dmt-t-static.dmt-arriving .dmt-veil, html.dmt-t-static.dmt-entering .dmt-veil { visibility: visible; }
html.dmt-t-static.dmt-leaving .dmt-veil { animation: dmt-static-in .22s steps(4) forwards, dmt-static-move .1s steps(3) infinite; }
html.dmt-t-static.dmt-entering .dmt-veil { animation: dmt-static-out .38s steps(6) forwards, dmt-static-move .1s steps(3) infinite; }
@keyframes dmt-static-in { from { opacity: 0; filter: brightness(.6); } to { opacity: 1; filter: brightness(1.1); } }
@keyframes dmt-static-out { 0% { opacity: 1; } 40% { opacity: .85; clip-path: inset(30% 0 35% 0); } 100% { opacity: 0; clip-path: inset(50% 0 50% 0); } }
@keyframes dmt-static-move { 0% { background-position: 0 0; } 33% { background-position: -60px 40px; } 66% { background-position: 50px -70px; } 100% { background-position: -20px 90px; } }

/* 4. RGB glitch: the page splits into orange/teal, jitters in slices and cuts out */
html.dmt-t-glitch.dmt-leaving #dmt-screen { animation: dmt-glitch-out .32s steps(8) forwards; }
html.dmt-t-glitch.dmt-arriving #dmt-screen { opacity: 0; }
html.dmt-t-glitch.dmt-entering #dmt-screen { animation: dmt-glitch-in .42s steps(9) both; }
@keyframes dmt-glitch-out {
	0% { filter: none; transform: none; clip-path: inset(0); opacity: 1; }
	25% { filter: drop-shadow(-6px 0 rgba(var(--fx-rgb-warm, 255,128,32), .9)) drop-shadow(6px 0 rgba(var(--fx-rgb-cool, 20,160,180), .9)); transform: translateX(-8px); clip-path: inset(10% 0 30% 0); }
	50% { filter: drop-shadow(-14px 0 rgba(var(--fx-rgb-warm, 255,128,32), .9)) drop-shadow(14px 0 rgba(var(--fx-rgb-cool, 20,160,180), .9)); transform: translateX(10px) skewX(-4deg); clip-path: inset(40% 0 20% 0); }
	75% { filter: drop-shadow(-24px 0 rgba(var(--fx-rgb-warm, 255,128,32), .8)) drop-shadow(24px 0 rgba(var(--fx-rgb-cool, 20,160,180), .8)) brightness(1.6); transform: translateX(-16px); clip-path: inset(48% 0 46% 0); opacity: .8; }
	100% { filter: brightness(2); clip-path: inset(50% 0 50% 0); opacity: 0; }
}
@keyframes dmt-glitch-in {
	0% { opacity: 0; clip-path: inset(50% 0 50% 0); filter: brightness(2); }
	20% { opacity: 1; clip-path: inset(44% 0 40% 0); filter: drop-shadow(-22px 0 rgba(var(--fx-rgb-warm, 255,128,32), .8)) drop-shadow(22px 0 rgba(var(--fx-rgb-cool, 20,160,180), .8)); transform: translateX(14px); }
	45% { clip-path: inset(15% 0 25% 0); filter: drop-shadow(-12px 0 rgba(var(--fx-rgb-warm, 255,128,32), .85)) drop-shadow(12px 0 rgba(var(--fx-rgb-cool, 20,160,180), .85)); transform: translateX(-9px) skewX(3deg); }
	70% { clip-path: inset(0 0 5% 0); filter: drop-shadow(-5px 0 rgba(var(--fx-rgb-warm, 255,128,32), .8)) drop-shadow(5px 0 rgba(var(--fx-rgb-cool, 20,160,180), .8)); transform: translateX(4px); }
	100% { opacity: 1; clip-path: inset(0); filter: none; transform: none; }
}

/* 5. Iris: the page closes into a circle where you clicked, the next page opens out from the centre */
html.dmt-t-iris.dmt-leaving #dmt-screen { animation: dmt-iris-close .46s cubic-bezier(.7,0,.3,1) forwards; }
html.dmt-t-iris.dmt-arriving #dmt-screen { clip-path: circle(0 at 50% 50%); }
html.dmt-t-iris.dmt-entering #dmt-screen { animation: dmt-iris-open .6s cubic-bezier(.2,.8,.2,1) both; }
@keyframes dmt-iris-close { from { clip-path: circle(150% at var(--cx, 50%) var(--cy, 50%)); } to { clip-path: circle(0 at var(--cx, 50%) var(--cy, 50%)); } }
@keyframes dmt-iris-open { from { clip-path: circle(0 at 50% 50vh); } to { clip-path: circle(150% at 50% 50vh); } }

@media (prefers-reduced-motion: reduce) {
	.dmt-nav__list a { animation: none; }
	#dmt-screen, .dmt-veil, .dmt-veil__line { animation: none !important; }
}

/* Designer credit */
.dmt-credit { margin: 0; font-family: var(--f-nav); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.dmt-credit a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.25); }
.dmt-credit a:hover { color: #fff; border-color: #fff; }
.dmt-hero__foot { flex-direction: column; align-items: center; gap: 10px; }
.dmt-hero__foot .dmt-credit { font-size: 11px; opacity: .6; }

/* Cookie consent */
.dmt-consent {
	position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 2200;
	width: min(560px, calc(100% - 32px)); padding: 16px 18px;
	display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: space-between;
	background: rgba(10,10,10,.92); border: 1px solid rgba(255,255,255,.25);
	box-shadow: -2px 0 0 rgba(255,122,47,.5), 2px 0 0 rgba(47,168,255,.5);
	font-size: 14px; line-height: 1.4;
}
.dmt-consent[hidden] { display: none; }
.dmt-consent p { margin: 0; flex: 1 1 220px; }
.dmt-consent__btns { display: flex; gap: 10px; }
.dmt-btn--ghost { background: transparent; color: #fff; }

/* Use the chosen fonts everywhere (form fields, headings from plugins, prices) */
button, input, select, textarea, optgroup { font-family: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: var(--f-display); font-stretch: var(--hs, 100%); }
.dmt-panel > h1, .page-title, .entry-title { font-family: var(--f-display); font-weight: var(--hw, 900); text-transform: uppercase; letter-spacing: calc(-.045em * var(--tk, 1)); line-height: .92; font-size: calc(clamp(30px, 3vw, 46px) * var(--hscale, .85)); }
.price, .amount, .woocommerce-result-count, .woocommerce-breadcrumb, .dmt-kicker, .dmt-facts, .dmt-content { font-family: var(--f-body, var(--f-display)); }
.price, .amount { font-family: var(--f-display); }

/* Fine line across the top that dips in a U around the header logo:  ------U------ */
.dmt-header__line { position: absolute; left: 0; right: 0; top: 78px; display: flex; align-items: flex-start; pointer-events: none; }
.dmt-header__line span { flex: 1; height: 1px; background: rgba(255,255,255,.4); }
.dmt-header__line svg { flex: none; width: 160px; height: 67px; overflow: visible; }
.dmt-header__line path { fill: none; stroke: rgba(255,255,255,.4); stroke-width: 1; vector-effect: non-scaling-stroke; }
.dmt-header__line, .dmt-header__line svg { filter: drop-shadow(-1px 0 0 rgba(255,122,47,.35)) drop-shadow(1px 0 0 rgba(47,168,255,.35)); }
.dmt-inner .dmt-header { padding-top: 26px; }
.dmt-header__logo { position: relative; z-index: 1; }

/* Contact */
.dmt-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(30px, 5vw, 90px); align-items: start; }
.dmt-contact__intro .dmt-social { margin-top: 24px; flex-direction: column; gap: 8px; }
.dmt-form { display: grid; gap: 18px; }
.dmt-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dmt-form label span { display: block; margin-bottom: 8px; font-family: var(--f-nav); font-weight: var(--nw, 700); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.dmt-form input, .dmt-form select, .dmt-form textarea {
	width: 100%; padding: 14px 16px; background: transparent; color: #fff;
	border: 1px solid rgba(255,255,255,.5); border-radius: 0; font: 400 16px/1.4 var(--f-body);
}
.dmt-form select { appearance: none; -webkit-appearance: none; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center; }
.dmt-form select option { background: #111; }
.dmt-form input:focus, .dmt-form select:focus, .dmt-form textarea:focus { outline: none; border-color: #fff; box-shadow: -2px 0 0 rgba(255,122,47,.6), 2px 0 0 rgba(47,168,255,.6); }
.dmt-form .dmt-btn { justify-self: start; }
.dmt-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dmt-form__error { margin: 0; padding: 12px 14px; border: 1px solid #ff7a2f; color: #ffb48a; }
.dmt-contact__done { border: 1px solid rgba(255,255,255,.4); padding: 28px; }
@media (max-width: 860px) { .dmt-contact, .dmt-form__row { grid-template-columns: 1fr; } }

/* Logo on the transition screen (scanline wipe) */
.dmt-veil__logo { position: absolute; left: 50%; top: 50%; translate: -50% -50%; /* separate from transform so the spin pivots on the centre */ width: min(16vmin, 120px); height: auto; transform: scale(var(--logo-fit, 1)); filter: brightness(0) invert(1) drop-shadow(-2px 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .6)) drop-shadow(2px 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .6)); opacity: 0; display: none; }
html.dmt-t-scanline .dmt-veil__logo { display: block; }
html.dmt-t-scanline.dmt-leaving .dmt-veil__logo { animation: dmt-veil-logo-in .3s ease .12s forwards; }
html.dmt-t-scanline.dmt-arriving .dmt-veil__logo { opacity: 1; }
html.dmt-t-scanline.dmt-entering .dmt-veil__logo { opacity: 1; }
@keyframes dmt-veil-logo-in { from { opacity: 0; transform: scale(calc(var(--logo-fit, 1) * .9)); } to { opacity: 1; transform: scale(var(--logo-fit, 1)); } }

/* No accidental selecting / dragging of the logo */
.dmt-hero, .dmt-tilt, .dmt-logo, .dmt-header__logo { -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
.dmt-logo, .dmt-veil__logo { -webkit-user-drag: none; user-drag: none; }
.dmt-veil, .dmt-veil * { pointer-events: none !important; }

/* Videos grid + lightbox */
.dmt-vgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: clamp(20px, 2.4vw, 40px); }
.dmt-vcard { position: relative; display: block; width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.dmt-vcard__thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #111; }
.dmt-vcard__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .4s; filter: brightness(.85); }
.dmt-vcard:hover .dmt-vcard__thumb img, .dmt-vcard:focus-visible .dmt-vcard__thumb img { transform: scale(1.04); filter: brightness(1); }
.dmt-vcard__play { position: absolute; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%; border: 1px solid #fff; background: rgba(0,0,0,.35); transition: background .3s, transform .3s; }
.dmt-vcard__play::after { content: ""; position: absolute; left: 23px; top: 19px; border-style: solid; border-width: 10px 0 10px 16px; border-color: transparent transparent transparent #fff; }
.dmt-vcard:hover .dmt-vcard__play { background: #fff; transform: scale(1.06); }
.dmt-vcard:hover .dmt-vcard__play::after { border-left-color: #000; }
.dmt-vcard__meta { display: block; padding-top: 14px; }
.dmt-vcard__title { display: block; }
.dmt-vcard__artist { display: block; margin-top: 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-family: var(--f-nav); }

.dmt-lightbox { position: fixed; inset: 0; z-index: 2400; display: grid; place-items: center; padding: 4vmin; background: rgba(0,0,0,.88); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.dmt-lightbox.is-open { opacity: 1; visibility: visible; }
.dmt-lightbox__frame { position: relative; width: min(1100px, 100%); aspect-ratio: 16 / 9; background: #000; box-shadow: -3px 0 0 rgba(255,122,47,.5), 3px 0 0 rgba(47,168,255,.5), 0 30px 80px rgba(0,0,0,.6); }
.dmt-lightbox__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dmt-lightbox__title { margin: 16px 0 0; font-family: var(--f-display); font-weight: var(--hw, 900); text-transform: uppercase; font-size: 16px; text-align: center; }
.dmt-lightbox__close { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; border: 1px solid #fff; border-radius: 50%; background: transparent; color: #fff; font: 300 26px/1 sans-serif; cursor: pointer; }
.dmt-lightbox__close:hover { background: #fff; color: #000; }
.dmt-lightbox__inner { width: min(1100px, 100%); }

/* Homepage background effect in the header band on inner pages */
.dmt-topfx {
	position: absolute; top: 0; left: 0; right: 0; height: 150px; z-index: 0; pointer-events: none;
	/* Only above the line, plus the U around the logo:  ------U------ */
	-webkit-mask: linear-gradient(#000, #000) 0 0 / 100% 78.5px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 67'%3E%3Cpath d='M0 0 Q14 0 20.2 27.9 A66 66 0 0 0 139.8 27.9 Q146 0 160 0 Z'/%3E%3C/svg%3E") 50% 78px / 160px 67px no-repeat;
	mask: linear-gradient(#000, #000) 0 0 / 100% 78.5px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 67'%3E%3Cpath d='M0 0 Q14 0 20.2 27.9 A66 66 0 0 0 139.8 27.9 Q146 0 160 0 Z'/%3E%3C/svg%3E") 50% 78px / 160px 67px no-repeat;
}
.dmt-topfx .dmt-hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.dmt-inner .dmt-header { z-index: 20; }
.dmt-inner .dmt-main { position: relative; z-index: 1; }

/* Homepage background on the scanline transition screen */
.dmt-veil .dmt-hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: none; }
html.dmt-t-scanline .dmt-veil .dmt-hero__canvas { display: block; }
.dmt-veil__logo, .dmt-veil__line { z-index: 1; }

/* No horizontal CRT scanlines */
.dmt-scan, .dmt-loader__scan { display: none !important; }
.dmt-nav__cart svg .h { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Logo hover: colour split fades in rather than snapping */
@property --ab-x { syntax: '<length>'; inherits: true; initial-value: 1.6px; }
.dmt-tilt { transition: transform .5s cubic-bezier(.2,.8,.2,1), --ab-x .7s ease; }
.dmt-tilt.is-active { transition: transform .2s cubic-bezier(.2,.8,.2,1), --ab-x .7s ease; }
.dmt-header__logo .dmt-logo { transition: filter .6s ease; }
.dmt-header__logo:hover .dmt-logo { filter: brightness(0) invert(1) drop-shadow(calc(-2.5px * var(--fx-rgb, 1)) 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .7)) drop-shadow(calc(2.5px * var(--fx-rgb, 1)) 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .7)) drop-shadow(0 0 10px rgba(var(--fx-rgb-warm, 255,128,32), .2)); }

/* Sticky header (inner pages): a rounded bar slides down once you scroll */
.dmt-sticky {
	position: fixed; top: 16px; left: 50%; z-index: 1200;
	display: flex; align-items: center; gap: 22px;
	padding: 8px 22px 8px 10px;
	background: rgba(12,12,12,.72); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
	border: 1px solid rgba(255,255,255,.18); border-radius: 999px;
	box-shadow: -1px 0 0 rgba(255,122,47,.35), 1px 0 0 rgba(47,168,255,.35), 0 12px 40px rgba(0,0,0,.5);
	transform: translate(-50%, -140%); opacity: 0; pointer-events: none;
	transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .4s ease;
}
.admin-bar .dmt-sticky { top: calc(32px + 16px); }
html.dmt-scrolled .dmt-sticky { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.dmt-sticky__logo { display: block; width: 54px; flex: none; transition: transform .7s cubic-bezier(.65,0,.35,1); }
.dmt-sticky__logo:hover { transform: rotate(180deg); }
.dmt-nav--sticky .dmt-nav__list { gap: clamp(16px, 2vw, 30px); }
@media (max-width: 680px) { .dmt-sticky { gap: 12px; padding: 6px 14px 6px 6px; } .dmt-nav--sticky .dmt-nav__list { gap: 12px; } }

/* Liquid page transition */
html.dmt-t-liq .dmt-veil { visibility: visible; background: transparent; pointer-events: none; }
html.dmt-t-liq .dmt-veil .dmt-hero__canvas { display: block; }
html.dmt-t-liq.dmt-arriving .dmt-veil:not(.has-gl) { background: #0b0d0c; }
html.dmt-t-liq .dmt-veil .dmt-hero__canvas { opacity: 0; transition: opacity .25s ease; }
html.dmt-t-liq .dmt-veil.has-gl .dmt-hero__canvas { opacity: 1; }
html.dmt-t-liq .dmt-veil__logo { display: block; transition: opacity .35s ease; }
html.dmt-t-liq.dmt-leaving .dmt-veil__logo { animation: dmt-veil-logo-in .4s ease .5s forwards; }
html.dmt-t-liq.dmt-arriving .dmt-veil__logo { opacity: 1; }
html.dmt-t-liq.dmt-entering .dmt-veil__logo { opacity: 0; }
html.dmt-t-liq.dmt-leaving #dmt-screen { transition: opacity .7s ease, filter .7s ease; opacity: .5; filter: blur(6px); }
html.dmt-t-liq.dmt-arriving #dmt-screen .dmt-header, html.dmt-t-liq.dmt-arriving .dmt-main > :not(.dmt-panel), html.dmt-t-liq.dmt-arriving .dmt-panel > *, html.dmt-t-liq.dmt-arriving .dmt-topfx { opacity: 0; }

/* Page entrance: header drops in, content rises in (blur + fade) */
html.dmt-entering .dmt-header, html.dmt-revealed .dmt-header { animation: dmt-in-down .9s cubic-bezier(.2,.8,.2,1) .2s both; }
html.dmt-entering .dmt-topfx, html.dmt-revealed .dmt-topfx { animation: dmt-in-fade 1s ease .2s both; }
html.dmt-entering .dmt-main > :not(.dmt-panel), html.dmt-entering .dmt-panel > *, html.dmt-revealed .dmt-main > :not(.dmt-panel), html.dmt-revealed .dmt-panel > * { animation: dmt-in-up 1s cubic-bezier(.2,.8,.2,1) .35s both; }
@keyframes dmt-in-down { from { opacity: 0; transform: translate3d(0, -26px, 0); } to { opacity: 1; transform: none; } }
@keyframes dmt-in-up { from { opacity: 0; transform: translate3d(0, 34px, 0); } to { opacity: 1; transform: none; } }
@keyframes dmt-in-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { html.dmt-entering .dmt-header, html.dmt-entering .dmt-main > :not(.dmt-panel), html.dmt-entering .dmt-panel > *, html.dmt-revealed .dmt-header, html.dmt-revealed .dmt-main > :not(.dmt-panel), html.dmt-revealed .dmt-panel > * { animation: none; } }

/* One title style for products, releases, videos and events */
.woocommerce ul.products li.product .woocommerce-loop-product__title, .dmt-card__title, .dmt-vcard__title, .dmt-event__title {
	font-family: var(--f-display); font-weight: var(--hw, 900); font-stretch: var(--hs, 100%); text-transform: uppercase;
	font-size: calc(clamp(15px, 1.15vw, 18px) * var(--hscale, .85) / .85); line-height: 1.12; letter-spacing: calc(-.02em * var(--tk, 1));
	text-shadow: none; padding: 0;
}
.dmt-card__title a:hover, .dmt-event__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.dmt-card .dmt-btn--small { min-height: 36px; font-size: 12px; padding: 6px 14px; }

/* Smoke transition: the header band (smoke + logo) expands to fill the screen, then shrinks back into the next page's header */
html.dmt-t-smoke { --hdr-y: 78px; }
html.dmt-t-smoke.admin-bar-on { --hdr-y: 110px; }
html.dmt-t-smoke .dmt-veil {
	visibility: hidden; background: #000;
	clip-path: inset(0 0 calc(100% - var(--hdr-y)) 0 round 0 0 28px 28px);
	transition: clip-path .75s cubic-bezier(.7,0,.25,1), visibility 0s linear .75s;
}
html.dmt-t-smoke .dmt-veil .dmt-hero__canvas { display: block; }
html.dmt-t-smoke .dmt-veil__logo {
	display: block; opacity: 1; width: 104px; top: var(--hdr-y);
	transition: top .75s cubic-bezier(.7,0,.25,1), width .75s cubic-bezier(.7,0,.25,1);
}
html.dmt-t-smoke.dmt-leaving .dmt-veil, html.dmt-t-smoke.dmt-arriving .dmt-veil {
	visibility: visible; clip-path: inset(0 0 0 0 round 0); transition: clip-path .75s cubic-bezier(.7,0,.25,1), visibility 0s;
}
html.dmt-t-smoke.dmt-leaving .dmt-veil__logo, html.dmt-t-smoke.dmt-arriving .dmt-veil__logo { top: 50%; width: min(22vmin, 170px); }
html.dmt-t-smoke.dmt-arriving .dmt-veil, html.dmt-t-smoke.dmt-arriving .dmt-veil__logo { transition: none; }
html.dmt-t-smoke.dmt-entering .dmt-veil { visibility: visible; transition: clip-path .8s cubic-bezier(.7,0,.25,1) .1s, visibility 0s linear .9s; }
html.dmt-t-smoke.dmt-entering .dmt-veil__logo { transition: top .8s cubic-bezier(.7,0,.25,1) .1s, width .8s cubic-bezier(.7,0,.25,1) .1s, opacity .3s ease .85s; opacity: 0; }
html.dmt-t-smoke.dmt-leaving #dmt-screen { transition: opacity .6s ease, filter .6s ease; opacity: .4; filter: blur(8px); }
html.dmt-t-smoke.dmt-arriving #dmt-screen .dmt-header, html.dmt-t-smoke.dmt-arriving .dmt-main > :not(.dmt-panel), html.dmt-t-smoke.dmt-arriving .dmt-panel > * { opacity: 0; }
html.dmt-t-smoke.dmt-entering .dmt-header { animation-delay: .55s; }
html.dmt-t-smoke.dmt-entering .dmt-main > :not(.dmt-panel), html.dmt-t-smoke.dmt-entering .dmt-panel > * { animation-delay: .7s; }

html { background: #000; }

/* Logo transition (blur fade): a frosted veil fades over the page with the DMT logo in the middle,
   then the next page comes in top to bottom (header drops in, content rises up). Only opacity/transform
   animate, and the blur is a viewport-sized backdrop filter, so it stays smooth. */
html.dmt-t-blur.dmt-arriving #dmt-screen .dmt-header, html.dmt-t-blur.dmt-arriving .dmt-main > :not(.dmt-panel), html.dmt-t-blur.dmt-arriving .dmt-panel > *, html.dmt-t-blur.dmt-arriving .dmt-topfx { opacity: 0; }
html.dmt-t-blur.dmt-entering .dmt-header { animation: dmt-in-down .8s cubic-bezier(.2,.8,.2,1) .18s both; }
html.dmt-t-blur.dmt-entering .dmt-topfx { animation: dmt-in-fade .8s ease .18s both; }
html.dmt-t-blur.dmt-entering .dmt-main > :not(.dmt-panel), html.dmt-t-blur.dmt-entering .dmt-panel > * { animation: dmt-in-up .9s cubic-bezier(.2,.8,.2,1) .32s both; }
/* Titles look and behave like the menu: flickering colour-split glow, scramble + underline on hover */
.dmt-card__title a, .dmt-event__title a, .dmt-vcard__title, .woocommerce ul.products li.product .woocommerce-loop-product__title, .dmt-crt-title {
	color: #fff; animation: dmt-crt-text 1.6s steps(1, end) infinite; text-decoration: none;
	background: linear-gradient(#fff, #fff) 0 100% / 0 1px no-repeat; padding-bottom: 3px;
	transition: background-size .35s ease;
}
.dmt-card__title a:hover, .dmt-event__title a:hover, .dmt-vcard:hover .dmt-vcard__title, .woocommerce ul.products li.product:hover .woocommerce-loop-product__title, .dmt-crt-title:hover {
	animation: none; text-decoration: none; background-size: 100% 1px;
	text-shadow: -1px 0 0 rgba(255,122,47,.7), 1px 0 0 rgba(47,168,255,.7), 0 0 8px rgba(255,255,255,.35);
}
.dmt-card__title .dmt-scr, .dmt-event__title .dmt-scr, .dmt-vcard__title .dmt-scr, .woocommerce-loop-product__title .dmt-scr, .dmt-crt-title .dmt-scr { display: inline; white-space: normal; }
.dmt-card__title .dmt-scr__hl, .dmt-event__title .dmt-scr__hl, .dmt-vcard__title .dmt-scr__hl, .woocommerce-loop-product__title .dmt-scr__hl, .dmt-crt-title .dmt-scr__hl { background: #fff; color: #000; text-shadow: none; }

/* Blur fade: the DMT logo sits in the middle while the next page loads */
html.dmt-t-blur .dmt-veil {
	visibility: hidden; opacity: 0;
	background: rgba(10,10,10,.82);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	transition: opacity .42s cubic-bezier(.4,0,.2,1), visibility 0s linear .42s;
	will-change: opacity;
}
html.dmt-t-blur.dmt-leaving .dmt-veil, html.dmt-t-blur.dmt-arriving .dmt-veil { visibility: visible; opacity: 1; transition: opacity .42s cubic-bezier(.4,0,.2,1), visibility 0s; }
html.dmt-t-blur.dmt-arriving .dmt-veil { transition: none; background: rgba(10,10,10,.96); }
html.dmt-t-blur.dmt-entering .dmt-veil { visibility: visible; opacity: 0; background: rgba(10,10,10,.96); transition: opacity .55s cubic-bezier(.4,0,.2,1) .05s, visibility 0s linear .6s; }
html.dmt-t-blur .dmt-veil__logo {
	display: block; opacity: 0;
	filter: brightness(0) invert(1) drop-shadow(-2px 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .6)) drop-shadow(2px 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .6));
	transform: scale(calc(var(--logo-fit, 1) * .9));
	transition: opacity .35s ease, transform .6s cubic-bezier(.2,.8,.2,1);
	will-change: opacity, transform;
}
html.dmt-t-blur.dmt-leaving .dmt-veil__logo { opacity: 1; transform: scale(var(--logo-fit, 1)); transition-delay: .12s; }
html.dmt-t-blur.dmt-arriving .dmt-veil__logo { opacity: 1; transform: scale(var(--logo-fit, 1)); transition: none; }
html.dmt-t-blur.dmt-entering .dmt-veil__logo { opacity: 0; transform: scale(calc(var(--logo-fit, 1) * 1.08)); transition: opacity .4s ease, transform .55s cubic-bezier(.2,.8,.2,1); }
@keyframes dmt-breathe-logo { 50% { transform: scale(calc(var(--logo-fit, 1) * 1.05)); } }

/* Fix: links sometimes ignored clicks while their text was scrambling (the letters underneath were being replaced mid-click). */
.dmt-scr, .dmt-scr * { pointer-events: none; }

/* Contact: everything stacked, form centred */
.page-template-page-contact .dmt-panel > .dmt-h1 { text-align: center; }
.dmt-contact { grid-template-columns: 1fr !important; max-width: 680px; margin: 0 auto; gap: 34px; }
.dmt-contact__intro { text-align: center; max-width: none; margin: 0 auto; }
.dmt-contact__intro .dmt-social { flex-direction: row; justify-content: center; margin-top: 18px; }
.dmt-form .dmt-btn { justify-self: center; min-width: 220px; }

/* WooCommerce pages (shop, product, cart, checkout, account): centred and in the site style */
.woocommerce-page .dmt-panel > .dmt-h1, .dmt-shop .woocommerce-products-header__title, .dmt-shop .page-title { text-align: center; }
.woocommerce-page .dmt-panel > .dmt-content { max-width: 1100px; margin: 0 auto; }
.dmt-shop > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
.dmt-shop .woocommerce-result-count, .dmt-shop .woocommerce-ordering { margin-bottom: 30px; }
.woocommerce div.product { max-width: 1200px; margin: 0 auto; }
.woocommerce-page .wp-block-woocommerce-cart, .woocommerce-page .wp-block-woocommerce-checkout { max-width: 1100px; margin: 0 auto; }
.wc-block-components-sidebar-layout { color: #e6e6e6; font-family: var(--f-body); }
.wc-block-cart-items, .wc-block-cart-items td, .wc-block-cart-items th, .wc-block-components-totals-wrapper, .wc-block-components-panel, .wc-block-components-totals-coupon, .wc-block-cart__totals-title, .wc-block-components-order-summary, .wp-block-woocommerce-checkout-order-summary-block, .wc-block-components-checkout-step, .wc-block-checkout__sidebar { border-color: rgba(255,255,255,.14) !important; }
.wc-block-cart-items__header, .wc-block-cart__totals-title, .wc-block-components-title, .wc-block-components-checkout-step__title {
	font-family: var(--f-nav) !important; font-weight: var(--nw, 700) !important; text-transform: uppercase; letter-spacing: .08em; font-size: 12px !important; color: var(--muted) !important;
}
.wc-block-components-product-name { color: #fff !important; font-family: var(--f-display); font-weight: var(--hw, 900); text-transform: uppercase; font-size: 15px; text-decoration: none; }
.wc-block-components-product-name:hover { text-decoration: underline; text-underline-offset: 4px; }
.wc-block-components-product-metadata, .wc-block-components-product-details { color: var(--muted); font-size: 13px; }
.wc-block-cart-item__image img { border-radius: 2px; }
.wc-block-components-quantity-selector { border: 1px solid rgba(255,255,255,.4) !important; border-radius: 0 !important; background: transparent !important; }
.wc-block-components-quantity-selector input, .wc-block-components-quantity-selector button { color: #fff !important; background: transparent !important; }
.wc-block-components-quantity-selector:after { border: 0 !important; }
.wc-block-cart-item__remove-link { color: var(--muted) !important; }
.wc-block-components-totals-item, .wc-block-components-totals-footer-item { color: #fff; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--f-display); font-weight: var(--hw, 900); text-transform: uppercase; font-size: 18px; }
.wc-block-components-panel__button { color: #fff !important; }
.wc-block-components-text-input input, .wc-block-components-text-input textarea, .wc-blocks-components-select__select, .wc-block-components-combobox input {
	background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.4) !important; border-radius: 0 !important;
}
.wc-block-components-text-input.is-active label, .wc-block-components-text-input label { color: var(--muted) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: rgba(255,255,255,.2) !important; box-shadow: none !important; color: #fff; }
.wc-block-components-radio-control__input, .wc-block-components-checkbox__input { border-color: #fff !important; background: transparent !important; }
.wc-block-components-checkbox__mark { fill: #000; }
.wc-block-components-checkbox__input:checked { background: #fff !important; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	min-height: 52px; font-size: 14px !important; letter-spacing: .04em !important;
}
.wc-block-components-notice-banner { background: #151515 !important; color: #fff !important; border-color: rgba(255,255,255,.3) !important; }
.wc-block-components-notice-banner svg { fill: #fff; background: transparent; }
.wc-block-cart .wc-block-cart__empty-cart__title, .wc-block-cart__empty-cart__title { color: #fff; font-family: var(--f-display); text-transform: uppercase; }

/* FX Lab hooks */
.dmt-grain { opacity: calc(var(--gb, .16) * var(--fx-grain, 1)) !important; }
.dmt-crt-subtle { --gb: .2; } .dmt-crt-strong { --gb: .26; } .dmt-home { --gb: .1; }
html.fx-noflicker .dmt-nav__list a, html.fx-noflicker .dmt-nav__cart, html.fx-noflicker .dmt-card__title a, html.fx-noflicker .dmt-event__title a, html.fx-noflicker .dmt-vcard__title, html.fx-noflicker .woocommerce-loop-product__title, html.fx-noflicker .dmt-crt-title { animation: none !important; }
html.fx-noframe .dmt-crt-frame { display: none; }
html.fx-nocursor, html.fx-nocursor body, html.fx-nocursor * { cursor: auto !important; }
html.fx-nocursor a, html.fx-nocursor button, html.fx-nocursor [role="button"], html.fx-nocursor select, html.fx-nocursor .dmt-tilt { cursor: pointer !important; }
html.fx-nocursor input[type="text"], html.fx-nocursor input[type="email"], html.fx-nocursor input[type="search"], html.fx-nocursor textarea { cursor: text !important; }

/* Shop archive: title on the left with the menu text effect */
.dmt-shop .dmt-shop__title {
	margin: 0 0 34px; text-align: left;
	font-family: var(--f-nav); font-weight: var(--nw, 800); text-transform: uppercase;
	letter-spacing: calc(-.02em * var(--tk, 1)); line-height: 1; font-size: calc(clamp(30px, 3vw, 46px) * var(--hscale, .85));
}
.dmt-shop .dmt-shop__title .dmt-crt-title { display: inline; cursor: default; }

/* Sort dropdown in the site style */
.woocommerce .woocommerce-ordering { margin: 0 0 30px; }
.woocommerce .woocommerce-ordering select.orderby {
	-webkit-appearance: none; appearance: none;
	background: #0d0d0d url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center;
	color: #fff; border: 1px solid rgba(255,255,255,.55); border-radius: 0;
	padding: 11px 42px 11px 16px; min-width: 220px;
	font: var(--nw, 800) 12px/1.2 var(--f-nav); text-transform: uppercase; letter-spacing: .06em;
	cursor: pointer; transition: border-color .25s ease, box-shadow .25s ease;
}
.woocommerce .woocommerce-ordering select.orderby:hover, .woocommerce .woocommerce-ordering select.orderby:focus {
	border-color: #fff; outline: none;
	box-shadow: -1px 0 0 rgba(255,122,47,.7), 1px 0 0 rgba(47,168,255,.7), 0 0 14px rgba(255,255,255,.12);
}
.woocommerce .woocommerce-ordering select.orderby option { background: #111; color: #fff; font-family: var(--f-body); text-transform: none; }
.dmt-shop .woocommerce-result-count { font: 600 12px/40px var(--f-nav); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }

.dmt-shop__inner { width: 100%; max-width: 1200px; margin: 0 auto; }
.dmt-shop__inner::after { content: ''; display: table; clear: both; }
.woocommerce .dmt-shop__inner ul.products { width: 100%; max-width: none; margin: 0 0 1em; clear: both; }

/* "View" bubble that follows the cursor over cards */
.dmt-view { position: fixed; left: 0; top: 0; z-index: 2200; pointer-events: none; will-change: transform; }
.dmt-view__txt {
	position: absolute; left: 0; top: 0; width: 74px; height: 74px; margin: 16px 0 0 20px; /* sits beside the cursor, not under it */
	display: grid; place-items: center; border-radius: 50%;
	background: #000; color: #fff; border: 1px solid rgba(255,255,255,.85);
	transform-origin: 0 0;
	font: var(--nw, 800) 13px/1 var(--f-nav); text-transform: uppercase; letter-spacing: .08em;
	box-shadow: -2px 0 0 rgba(255,122,47,.8), 2px 0 0 rgba(47,168,255,.8), 0 6px 24px rgba(0,0,0,.5);
	text-shadow: -1px 0 0 rgba(255,122,47,.6), 1px 0 0 rgba(47,168,255,.6);
	transform: scale(0); opacity: 0;
	transition: transform .45s cubic-bezier(.2,1.4,.4,1), opacity .25s ease;
}
.dmt-view.is-on .dmt-view__txt { transform: scale(1); opacity: 1; }
html.fx-nocursor .dmt-view { display: none; }

/* Empty cart: no sad face */
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before, .wc-block-cart__empty-cart__title::before { display: none !important; content: none !important; }
.wp-block-woocommerce-empty-cart-block { text-align: center; padding: 30px 0; }

/* The panel's dark background is there from the start; only what's inside it rises in. */

/* Footer legal links + cookie banner link */
.dmt-footer__legal { display: flex; gap: 18px; flex-wrap: wrap; margin: 0; font: 600 11px/1.4 var(--f-nav); text-transform: uppercase; letter-spacing: .12em; }
.dmt-footer__legal a, .dmt-linkbtn { color: var(--muted); text-decoration: none; background: none; border: 0; padding: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.dmt-footer__legal a:hover, .dmt-linkbtn:hover { color: #fff; }
.dmt-consent p a { color: #fff; margin-left: 4px; }
/* Policy page tables */
.dmt-content table { width: 100%; border-collapse: collapse; margin: 18px 0 28px; font-size: 15px; }
.dmt-content th, .dmt-content td { text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.dmt-content th { font: 600 11px/1.4 var(--f-nav); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.dmt-content td code { font-size: 13px; }

/* Header spacing: menu sits lower, centred in the space above the panel */
body:not(.dmt-home) .dmt-header > .dmt-nav { margin-top: 40px; }
.dmt-panel { margin-top: clamp(40px, 4.4vw, 62px); }
/* Current section: keep its underline showing */
.dmt-nav__list .current-menu-item > a::after, .dmt-nav__list .current_page_parent > a::after, .dmt-nav__list a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

/* Shop uses the full panel width like every other page */
.dmt-shop > *, .dmt-shop__inner, .woocommerce div.product { max-width: none; }

/* Smaller product titles */
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: calc(clamp(13px, .95vw, 15px) * var(--hscale, .85) / .85) !important; }
.woocommerce div.product .product_title { font-size: calc(clamp(24px, 2.2vw, 34px) * var(--hscale, .85) / .85) !important; margin-bottom: 18px !important; }

/* Reserve the scrollbar's space so pages don't jump sideways when it appears after loading */
html:not(:has(body.dmt-home)) { scrollbar-gutter: stable; }
html.dmt-preload:not(:has(body.dmt-home)) { overflow-y: hidden; }

/* Transition logo turns slowly like a record: rotation is set by a small script (see inc/transitions.php). */
@keyframes dmt-vinyl { from { rotate: 0deg; } to { rotate: 360deg; } }

/* ==========================================================================
   Mobile menu
   ========================================================================== */
.dmt-burger { display: none; }
.dmt-mnav[hidden] { display: none; }
@media (max-width: 760px) {
	/* Hamburger in the top right instead of the row of links (bag icon sits beside it when it has items) */
	.dmt-header > .dmt-nav .dmt-nav__list, .dmt-nav--sticky .dmt-nav__list { display: none; }
	.dmt-header > .dmt-nav { position: absolute; top: 18px; right: 16px; margin: 0 !important; gap: 14px; z-index: 30; }
	.admin-bar .dmt-header > .dmt-nav { top: 18px; }
	.dmt-home .dmt-header { padding-top: 0; height: 0; }
	.dmt-home .dmt-header > .dmt-nav { position: fixed; top: max(18px, env(safe-area-inset-top)); }
	.admin-bar.dmt-home .dmt-header > .dmt-nav { top: 64px; }
	.dmt-burger { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; margin: 0 -8px 0 0; background: none; border: 0; cursor: pointer; }
	.dmt-burger__icon { position: relative; width: 24px; height: 16px; }
	.dmt-burger__icon i { position: absolute; left: 0; right: 0; height: 2px; background: #fff; box-shadow: -1px 0 0 rgba(255,122,47,.7), 1px 0 0 rgba(47,168,255,.7); }
	.dmt-burger__icon i:nth-child(1) { top: 0; }
	.dmt-burger__icon i:nth-child(2) { top: 7px; }
	.dmt-burger__icon i:nth-child(3) { top: 14px; }
	body:not(.dmt-home) .dmt-panel { margin-top: 28px; }
	.dmt-sticky { padding-right: 8px; }

	/* Full-screen menu */
	.dmt-mnav {
		position: fixed; inset: 0; z-index: 1400;
		display: flex; flex-direction: column;
		padding: max(18px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom)) 24px;
		background: rgba(8,8,8,.98);
		opacity: 0; transition: opacity .35s cubic-bezier(.4,0,.2,1);
	}
	.admin-bar .dmt-mnav { top: 46px; }
	html.dmt-menu-open .dmt-mnav { opacity: 1; }
	html.dmt-menu-open, html.dmt-menu-open body { overflow: hidden; }
	.dmt-mnav__top { display: flex; align-items: center; justify-content: space-between; }
	.dmt-mnav__logo { display: block; width: 48px; }
	.dmt-mnav__close { position: relative; width: 44px; height: 44px; margin-right: -8px; padding: 0; background: none; border: 0; cursor: pointer; }
	.dmt-mnav__close i { position: absolute; left: 10px; right: 10px; top: 21px; height: 2px; background: #fff; box-shadow: -1px 0 0 rgba(255,122,47,.7), 1px 0 0 rgba(47,168,255,.7); }
	.dmt-mnav__close i:first-child { transform: rotate(45deg); }
	.dmt-mnav__close i:last-child { transform: rotate(-45deg); }
	.dmt-mnav__nav { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
	.dmt-mnav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
	.dmt-mnav__list a {
		display: inline-block; padding: 7px 0; color: #fff; text-decoration: none;
		font: var(--nw, 800) clamp(24px, 7.4vw, 32px)/1.1 var(--f-nav); text-transform: uppercase; letter-spacing: .01em;
		animation: dmt-crt-text 1.6s steps(1, end) infinite;
	}
	.dmt-mnav__list a, .dmt-mnav__bag { opacity: 0; transform: translate3d(0, 14px, 0); transition: opacity .4s ease, transform .5s cubic-bezier(.2,.8,.2,1); }
	.dmt-mnav__bag { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: #fff; text-decoration: none; font: var(--nw, 800) 14px/1 var(--f-nav); text-transform: uppercase; letter-spacing: .12em; align-self: flex-start; }
	.dmt-mnav__bag svg { width: 24px; height: 24px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
	.dmt-mnav__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #fff; color: #000; font-size: 12px; letter-spacing: 0; }
	html.dmt-menu-open .dmt-mnav__list a, html.dmt-menu-open .dmt-mnav__bag { opacity: 1; transform: none; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(1) a { transition-delay: .04s; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(2) a { transition-delay: .08s; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(3) a { transition-delay: .12s; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(4) a { transition-delay: .16s; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(5) a { transition-delay: .2s; }
	html.dmt-menu-open .dmt-mnav__list li:nth-child(6) a { transition-delay: .24s; }
	html.dmt-menu-open .dmt-mnav__bag { transition-delay: .28s; }
	.dmt-mnav__list .current-menu-item a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
	.dmt-mnav__foot .dmt-social { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; list-style: none; }
	.dmt-mnav__foot .dmt-social a { font-size: 13px; color: var(--muted); }

	/* Page transition on phones: solid, no frosted blur (smoother), bigger logo */
	html.dmt-t-blur .dmt-veil { -webkit-backdrop-filter: none; backdrop-filter: none; background: #0a0a0a !important; }
	.dmt-veil__logo { width: 92px; }
	html.dmt-t-blur.dmt-entering .dmt-header { animation-duration: .6s; }
	html.dmt-t-blur.dmt-entering .dmt-main > :not(.dmt-panel), html.dmt-t-blur.dmt-entering .dmt-panel > * { animation-duration: .7s; }
}
.dmt-panel > .dmt-h1 + .dmt-intro { margin-top: 18px; }

/* ==========================================================================
   CRT screen overlay (whole site). Strengths come from the FX Lab.
   Only opacity/transform animate, so it stays light on the GPU.
   ========================================================================== */
.dmt-crt { position: fixed; inset: 0; z-index: 2050; pointer-events: none; overflow: hidden; }
html.fx-nocrt .dmt-crt { display: none; }
.dmt-crt > i { position: absolute; inset: 0; display: block; }
.dmt-crt__scan {
	background: repeating-linear-gradient(to bottom,
		rgba(0,0,0,.85) 0, rgba(0,0,0,.85) calc(var(--fx-crt-size, 3) * .42px),
		transparent calc(var(--fx-crt-size, 3) * .42px), transparent calc(var(--fx-crt-size, 3) * 1px));
	opacity: calc(var(--fx-crt-scan, .35) * .6);
}
.dmt-crt__mask {
	background: repeating-linear-gradient(90deg, rgba(255,50,50,.9) 0 1px, rgba(50,255,90,.9) 1px 2px, rgba(60,110,255,.9) 2px 3px);
	opacity: calc(var(--fx-crt-mask, .25) * .09);
}
.dmt-crt__glow {
	background: radial-gradient(ellipse 70% 60% at 50% 50%, rgba(255,250,240,.07), transparent 70%);
	opacity: var(--fx-crt-glow, .3);
}
.dmt-crt__roll {
	inset: auto 0 0 0; top: 0; height: 28vh;
	background: linear-gradient(to bottom, transparent, rgba(255,255,255,.045) 45%, rgba(255,255,255,.075) 50%, rgba(255,255,255,.045) 55%, transparent);
	opacity: var(--fx-crt-roll, .35);
	transform: translate3d(0, -30vh, 0);
	animation: dmt-crt-roll 9s linear infinite;
	will-change: transform;
}
@keyframes dmt-crt-roll { to { transform: translate3d(0, 105vh, 0); } }
@media (prefers-reduced-motion: reduce) { .dmt-crt__roll { animation: none; } }
/* Scanlines are finer on small screens so text stays readable */
@media (max-width: 760px) { .dmt-crt__scan { opacity: calc(var(--fx-crt-scan, .35) * .4); } }
html.fx-noview .dmt-view { display: none; }

/* ==========================================================================
   Footer: always at the bottom of the screen on short pages, three columns
   ========================================================================== */
body:not(.dmt-home) #dmt-screen { display: flex; flex-direction: column; min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)); min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px)); }
body:not(.dmt-home) #dmt-screen > .dmt-main { flex: 1 0 auto; }
.dmt-footer { position: relative; z-index: 1; margin-top: clamp(50px, 6vw, 90px); padding: 30px var(--gutter) 34px; }
/* Same line as the header (thin, with the colour split), minus the U */
.dmt-footer__line { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255,255,255,.4); filter: drop-shadow(-1px 0 0 rgba(255,122,47,.35)) drop-shadow(1px 0 0 rgba(47,168,255,.35)); }
.dmt-footer__top { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 30px; margin: 0 0 24px; }
.dmt-footer__inner { max-width: none; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px 24px; }
.dmt-footer__copy { justify-self: start; font-size: 12px; letter-spacing: .08em; }
.dmt-footer__credit { justify-self: center; text-align: center; }
.dmt-footer__right { justify-self: end; }
.dmt-footer__right .dmt-footer__legal { justify-content: flex-end; font-size: 12px; letter-spacing: .08em; }
@media (max-width: 760px) {
	.dmt-footer__inner { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 12px; }
	.dmt-footer__copy, .dmt-footer__credit, .dmt-footer__right { justify-self: center; }
	.dmt-footer__right .dmt-footer__legal { justify-content: center; }
	.dmt-footer__credit { order: 3; }
}

/* Smoke layer in front of the homepage logo (drawn only around the logo's edge) */
.dmt-hero__smoke { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; }
.dmt-hero:not(.has-gl) .dmt-hero__smoke { display: none; }

/* Titles on single release / event / video pages don't link anywhere: keep the flicker look, no hover effect */
.dmt-static-title { color: #fff; animation: dmt-crt-text 1.6s steps(1, end) infinite; cursor: default; }
html.fx-noflicker .dmt-static-title { animation: none; }

/* The smoky strip above the header (and the homepage smoke) fades in once it has drawn, instead of popping in */
.dmt-topfx .dmt-hero__canvas, .dmt-hero .dmt-hero__canvas { opacity: 0; transition: opacity .9s ease; }
.dmt-topfx.has-gl .dmt-hero__canvas, .dmt-hero.has-gl .dmt-hero__canvas { opacity: 1; }

/* ==========================================================================
   Reduce effects (visitor switch, or the device's "reduce motion" setting)
   ========================================================================== */
.dmt-a11y { position: relative; display: inline-block; }
.dmt-a11y__btn { background: none; border: 0; padding: 0; color: var(--muted); cursor: pointer; font: 600 12px/1.4 var(--f-nav); text-transform: uppercase; letter-spacing: .08em; }
html.dmt-calm .dmt-a11y__btn { color: #8fd; } /* shows the setting is on */
.dmt-a11y__btn:hover, .dmt-a11y__btn[aria-expanded="true"], .dmt-a11y__btn:focus-visible { color: #fff; }
.dmt-a11y__panel {
	position: absolute; right: 0; bottom: calc(100% + 14px); z-index: 50; width: 300px; padding: 18px;
	background: #0b0b0b; border: 1px solid rgba(255,255,255,.35); box-shadow: -2px 0 0 rgba(255,122,47,.5), 2px 0 0 rgba(47,168,255,.5), 0 18px 50px rgba(0,0,0,.6);
	text-align: left; text-transform: none; letter-spacing: 0;
}
.dmt-a11y__panel[hidden] { display: none; }
.dmt-a11y__title { margin: 0 0 14px; font: var(--nw, 800) 13px/1 var(--f-nav); text-transform: uppercase; letter-spacing: .1em; color: #fff; }
.dmt-a11y__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.dmt-a11y__label b { display: block; font: 600 15px/1.3 var(--f-body); color: #fff; }
.dmt-a11y__label small { display: block; margin-top: 4px; font: 13px/1.45 var(--f-body); color: var(--muted); }
.dmt-switch { flex: none; position: relative; width: 46px; height: 26px; margin-top: 2px; padding: 0; border: 1px solid rgba(255,255,255,.6); border-radius: 13px; background: transparent; cursor: pointer; transition: background .2s ease; }
.dmt-switch i { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.dmt-switch[aria-checked="true"] { background: #fff; }
.dmt-switch[aria-checked="true"] i { transform: translateX(20px); background: #000; }
.dmt-switch:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.dmt-footer__right { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; justify-content: flex-end; }
@media (max-width: 760px) { .dmt-footer__right { justify-content: center; } .dmt-a11y__panel { right: 50%; transform: translateX(50%); width: min(300px, 86vw); } }
.dmt-a11y--home { margin-left: 18px; }
.dmt-a11y--home .dmt-a11y__btn { font-size: 11px; opacity: .75; }
.dmt-a11y--home .dmt-a11y__panel { right: auto; left: 50%; transform: translateX(-50%); }
.dmt-a11y--menu { margin-top: 18px; }
.dmt-a11y--menu .dmt-a11y__btn { font-size: 13px; }
.dmt-a11y--menu .dmt-a11y__panel { right: auto; left: 0; transform: none; }
html.dmt-calm .dmt-crt, html.dmt-calm .dmt-grain, html.dmt-calm .dmt-view { display: none !important; }
html.dmt-calm *, html.dmt-calm *::before, html.dmt-calm *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
html.dmt-calm .dmt-nav__list a, html.dmt-calm .dmt-crt-title, html.dmt-calm .dmt-static-title, html.dmt-calm .dmt-card__title a, html.dmt-calm .dmt-event__title a { text-shadow: none !important; }
html.dmt-calm .dmt-ca { filter: none; }
@media (prefers-reduced-motion: reduce) { .dmt-crt__roll { display: none; } }

/* Videos: 3 or fewer fill the width in one row; 4+ use a 4-column grid */
.dmt-vgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 28px; }
.dmt-vgrid:has(> :last-child:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dmt-vgrid:has(> :last-child:nth-child(2)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dmt-vgrid:has(> :last-child:nth-child(1)) { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
@media (max-width: 1100px) { .dmt-vgrid, .dmt-vgrid:has(> :last-child:nth-child(3)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .dmt-vgrid, .dmt-vgrid:has(> :last-child:nth-child(3)), .dmt-vgrid:has(> :last-child:nth-child(2)) { grid-template-columns: minmax(0, 1fr); } }

/* Keep the custom hand cursor over cards and video thumbnails (alongside the View / Play bubble) */
html:not(.fx-nocursor) .dmt-vcard, html:not(.fx-nocursor) .dmt-video__facade, html:not(.fx-nocursor) .dmt-card__art, html:not(.fx-nocursor) .dmt-event__poster, html:not(.fx-nocursor) .woocommerce ul.products li.product a {
	cursor: url("../img/cursor/hand.png") 8 1, pointer;
	cursor: -webkit-image-set(url("../img/cursor/hand.png") 1x, url("../img/cursor/hand@2x.png") 2x) 8 1, pointer;
	cursor: image-set(url("../img/cursor/hand.png") 1x, url("../img/cursor/hand@2x.png") 2x) 8 1, pointer;
}

/* Panel: soft rounded corners and a hairline border */
.dmt-panel { border-radius: 16px; border: 1px solid #1b1b1b; }
@media (max-width: 760px) { .dmt-panel { border-radius: 12px; } }

/* Homepage: just the credit, centred at the bottom over the smoke */
.dmt-footer--home { position: fixed; left: 0; right: 0; bottom: 26px; margin: 0; padding: 0; z-index: 5; display: flex; justify-content: center; }
.dmt-footer--home .dmt-credit { opacity: .7; }
html.dmt-preload .dmt-footer--home { opacity: 0; }

/* Title underline: a real text underline sitting just under the letters on every line (no extra line height needed) */
.dmt-card__title a, .dmt-event__title a, .dmt-vcard__title, .woocommerce ul.products li.product .woocommerce-loop-product__title, .dmt-crt-title {
	background: none !important; padding-bottom: 0 !important;
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .1em; text-decoration-skip-ink: none;
	text-decoration-color: transparent; transition: text-decoration-color .25s ease;
}
.dmt-card__title a:hover, .dmt-event__title a:hover, .dmt-vcard:hover .dmt-vcard__title, .woocommerce ul.products li.product:hover .woocommerce-loop-product__title, .dmt-crt-title:hover,
.dmt-card:hover .dmt-card__title a, .dmt-event:hover .dmt-event__title a {
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .1em; text-decoration-color: #fff;
}
/* Let the underline pass through the letter boxes used by the hover scramble */
.dmt-scr, .dmt-scr__w { text-decoration: inherit; text-decoration-color: inherit; text-underline-offset: inherit; text-decoration-thickness: inherit; }

/* Footer text: one size and style for every item */
.dmt-footer__copy, .dmt-footer .dmt-credit, .dmt-footer__legal, .dmt-footer__legal a, .dmt-linkbtn, .dmt-footer .dmt-a11y__btn { font: 600 12px/1.4 var(--f-nav) !important; text-transform: uppercase; letter-spacing: .08em !important; color: var(--muted); }
.dmt-footer .dmt-credit a { color: inherit; }
.dmt-footer .dmt-credit a:hover, .dmt-footer__legal a:hover, .dmt-footer .dmt-a11y__btn:hover { color: #fff; }

/* "All releases" / "All events" back links: easier to read */
.dmt-back { color: #fff; font-size: 13px; letter-spacing: .12em; opacity: .85; padding-left: 18px; position: relative; }
.dmt-back::before { content: ""; position: absolute; left: 0; top: 50%; width: 9px; height: 9px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-50%) rotate(45deg); }
.dmt-back:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }

/* Mobile hamburger: a little more room on the right */
@media (max-width: 760px) { .dmt-header > .dmt-nav { right: 24px; } .dmt-burger { margin-right: 0; } }

/* Video lightbox corners */
.dmt-lightbox__frame { border-radius: 5px; overflow: hidden; }
.dmt-lightbox__frame iframe { border-radius: 5px; }

/* Release page video */
.dmt-release-video { margin-top: clamp(30px, 4vw, 56px); }
.dmt-release-video .dmt-video { max-width: 900px; border-radius: 5px; overflow: hidden; }

/* Uniform cards: titles get a fixed two-line space so buttons line up along the bottom */
.dmt-card { display: flex; flex-direction: column; }
.dmt-card__meta { display: flex; flex-direction: column; flex: 1; }
.dmt-card__title { min-height: calc(2 * 1.12em); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dmt-card__meta .dmt-btn { margin-top: auto; align-self: flex-start; }
.dmt-card__date { margin-bottom: 14px; }
.dmt-vcard__title { min-height: calc(2 * 1.12em); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Contact intro: no single-word last line */
.dmt-contact__intro p, .dmt-intro p { text-wrap: pretty; }
.dmt-contact__intro { max-width: 560px; }

/* Panel keeps a margin from the screen edges (so nothing runs edge to edge) */
.dmt-panel { margin-left: 15px !important; margin-right: 15px !important; }
@media (min-width: 1800px) { .dmt-panel { margin-left: auto !important; margin-right: auto !important; } }

/* Label grid: more breathing room, search above it */
.dmt-grid { gap: clamp(28px, 3.2vw, 56px) clamp(24px, 2.6vw, 44px); }
.dmt-filters--label { margin-bottom: 30px; }
.dmt-filters--label .dmt-search { max-width: 420px; }
.dmt-grid > .dmt-empty { grid-column: 1 / -1; }

/* Sticky bar and the mobile menu sit above the CRT overlays (no vignette or scanlines over them) */
.dmt-sticky { z-index: 2250; }
.dmt-mnav { z-index: 2250 !important; }
@media (max-width: 760px) {
	.dmt-sticky { padding-right: 22px; }
	/* Smaller screens: a lighter vignette so the header controls stay readable */
	.dmt-crt-frame { box-shadow: 0 0 0 60px #030303, inset 0 0 0 1px rgba(255,255,255,.05), inset 0 0 12px 2px rgba(0,0,0,.6), inset 0 0 50px 6px rgba(0,0,0,.35); }
	.dmt-mnav__bag { font: var(--nw, 800) clamp(24px, 7.4vw, 32px)/1.1 var(--f-nav) !important; letter-spacing: .01em !important; padding: 7px 0; margin-top: 0 !important; gap: 14px; animation: dmt-crt-text 1.6s steps(1, end) infinite; }
	.dmt-mnav__bag svg { width: 30px; height: 30px; }
	.dmt-mnav__count { min-width: 28px; height: 28px; border-radius: 14px; font-size: 14px; }
}

/* View / Play bubble: dark grey */
.dmt-view__txt { background: #1e1e1e; border-color: rgba(255,255,255,.7); }

/* ---------- Nov 2026 tweaks ---------- */
/* Sticky bar: more solid so the menu reads over bright artwork (it's also moved out of the CRT screen by a small script in functions.php, so the vignette no longer sits on top of it) */
.dmt-sticky { background: rgba(10,10,10,.92); }
/* Hero logo: slow, subtle size pulse. Amount comes from FX > Homepage logo > Logo breathing (0 = off) */
@keyframes dmt-breathe { 0%, 100% { scale: 1; } 50% { scale: calc(1 + .035 * var(--fx-breathe, 1)); } }
.dmt-tilt .dmt-logo--hero { animation: dmt-breathe 9s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .dmt-tilt .dmt-logo--hero { animation: none; } }
/* Mobile menu covers the sticky bar while open */
.dmt-mnav { z-index: 2260; }
html.dmt-menu-open .dmt-sticky { opacity: 0 !important; pointer-events: none !important; }
/* Search / filter on Label and Events: the cards' own display rule was overriding [hidden], so nothing disappeared */
[data-filter-list] [hidden] { display: none !important; }
/* Chrome logo only: a coin edge that appears as the logo tilts.
   Two darkened copies of the chrome image sit behind the logo and slide away from the tilt, showing the
   thickness of the rim and the inner walls. They only move (GPU transform), so it costs almost nothing per frame.
   Depth comes from FX > Homepage logo > Chrome edge depth (0 = off). Stone and white are untouched. */
.dmt-tilt:not(.is-stone):not(.is-white) .dmt-ca {
	--ex: calc(sin(var(--ry, 0deg)) * -8px * var(--fx-chrome-edge, 1));
	--ey: calc(sin(var(--rx, 0deg)) * 8px * var(--fx-chrome-edge, 1));
}
.dmt-tilt:not(.is-stone):not(.is-white) .dmt-ca::before,
.dmt-tilt:not(.is-stone):not(.is-white) .dmt-ca::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: url('https://dancemusictherapy.com/wp-content/uploads/2026/11/dmt-medallion-chrome-v2-1200.webp') center / contain no-repeat;
	transform: translate(calc(var(--ex) * 4), calc(var(--ey) * 4)) rotate(var(--spin, 0deg)) scale(1.203);
	filter: brightness(.5) contrast(1.15);
	animation: dmt-breathe 9s ease-in-out infinite;
	will-change: transform; z-index: -1;
}
.dmt-tilt:not(.is-stone):not(.is-white) .dmt-ca::after {
	transform: translate(calc(var(--ex) * 8), calc(var(--ey) * 8)) rotate(var(--spin, 0deg)) scale(1.203);
	filter: brightness(.28) contrast(1.1);
	z-index: -2;
}
@media (prefers-reduced-motion: reduce) { .dmt-tilt .dmt-ca::before, .dmt-tilt .dmt-ca::after { animation: none; } }
html.dmt-calm .dmt-tilt .dmt-ca::before, html.dmt-calm .dmt-tilt .dmt-ca::after { display: none; }

/* Chrome coin: the chrome logo is a live 3D coin (see "Chrome coin" in functions.php).
   On/off and speed: FX > Homepage logo > Chrome coin spin on scroll / Coin spin speed. Thickness: Chrome edge depth. */
.dmt-coinface { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; display: none; transform: scale(var(--coin-scale, 1.2)); animation: dmt-breathe 9s ease-in-out infinite; }
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-coinface { display: block; }
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-logo--hero { opacity: 0; }
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) { transform: scale(var(--s, 1)); } /* the coin draws the hover tilt itself, in 3D, so its thickness shows */
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-spin { transform: none; } /* the coin turn replaces the flat scroll spin */
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-tilt__shine, html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-ca::before, html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-ca::after { display: none; } /* no flat hover glow (it showed as a hard-edged disc when the coin turned) */
@media (prefers-reduced-motion: reduce) { .dmt-coinface { animation: none; } }
/* Sticky bar: no bag icon (the bag is in the expanded menu) */
.dmt-sticky .dmt-nav__cart { display: none !important; }
/* Expanded mobile menu: logo 2.5x bigger */
.dmt-mnav__logo { width: 120px; }
/* FX > Colour split > "Colour split on homepage logo" unticked: no orange/teal fringe on the hero logo (other logos/text keep it) */
html.fx-norgb_home_logo .dmt-tilt .dmt-ca { filter: none !important; }

/* ---------- Homepage on mobile: the sticky bar (logo + hamburger) sits at the top all the time ----------
   Desktop homepage is unchanged (no sticky bar). */
@media (min-width: 761px) { .dmt-home .dmt-sticky { display: none; } }
@media (max-width: 760px) {
	.dmt-home .dmt-sticky { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
	.dmt-home .dmt-header > .dmt-nav { display: none; } /* the sticky bar's hamburger replaces the floating one */
}


/* Chrome coin performance: the soft (blurred) colour-split shadows were being re-rendered by the browser every frame over the big coin canvas, which dropped the homepage to ~12fps.
   For the coin use only the crisp warm/cool offsets (same colours, a touch stronger) - looks the same, runs at 60fps. */
html:not(.dmt-calm):not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-ca {
	filter: drop-shadow(calc(var(--ca) * -1) 0 0 rgba(var(--fx-rgb-warm, 255,128,32), .85)) drop-shadow(calc(var(--ca) * 2) 0 0 rgba(var(--fx-rgb-cool, 20,160,180), .8)) saturate(var(--fx-rgb-sat, 1));
}
/* Ease the hover grow in gently rather than popping. */
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) { transition: transform .9s cubic-bezier(.25,.8,.25,1), --ab-x .7s; }


/* Chrome coin idle float: the coin drifts like before, but its sway is handed to the 3D coin (via --fix/--fiy/--fiz)
   so you see its outer and inner edges catch the light exactly as when you tilt it with the mouse - not a flat picture leaning. */
@property --fix { syntax: '<number>'; inherits: true; initial-value: 0; }
@property --fiy { syntax: '<number>'; inherits: true; initial-value: 0; }
@property --fiz { syntax: '<number>'; inherits: true; initial-value: 0; }
@keyframes dmt-float-coin {
	0%, 100% { transform: translate3d(0, 0, 0); --fix: 0; --fiy: 0; --fiz: 0; }
	18% { transform: translate3d(calc(var(--fx-idle, 1) * var(--idle-m, 1) * 8px), calc(var(--fx-idle, 1) * var(--idle-m, 1) * -12px), 0); --fix: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 4); --fiy: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -5); --fiz: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 1.5); }
	37% { transform: translate3d(calc(var(--fx-idle, 1) * var(--idle-m, 1) * -4px), calc(var(--fx-idle, 1) * var(--idle-m, 1) * -20px), 0); --fix: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -3); --fiy: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 6); --fiz: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -.5); }
	58% { transform: translate3d(calc(var(--fx-idle, 1) * var(--idle-m, 1) * -12px), calc(var(--fx-idle, 1) * var(--idle-m, 1) * -8px), 0); --fix: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 5); --fiy: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 3); --fiz: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -2); }
	79% { transform: translate3d(calc(var(--fx-idle, 1) * var(--idle-m, 1) * 6px), calc(var(--fx-idle, 1) * var(--idle-m, 1) * 4px), 0); --fix: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -4); --fiy: calc(var(--fx-idle, 1) * var(--idle-m, 1) * -4); --fiz: calc(var(--fx-idle, 1) * var(--idle-m, 1) * 1); }
}
html:not(.fx-nocoin) .dmt-tilt.has-coinface:not(.is-stone):not(.is-white) .dmt-ca { animation-name: dmt-float-coin; }


/* Phones: the coin is smaller there, so its idle drift and sway are doubled to read the same as on desktop. */
@media (max-width: 760px) { .dmt-tilt .dmt-ca { --idle-m: 2; } }

/* Keep the sticky menu bar (and its hamburger) hidden while the preloader is showing; it fades in once loading has finished. */
html.dmt-preload .dmt-sticky { opacity: 0 !important; pointer-events: none !important; }


/* Shop: on phones the sort dropdown sized itself to its longest option and, floated right, spilled off the left of the panel. Make it fill the row instead. */
@media (max-width: 760px) {
	.woocommerce-ordering { float: none; width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
	.woocommerce-ordering select { width: 100%; max-width: 100%; min-width: 0; }
}

/* ===== 13 Nov: centred panel, buy/listen split, events extras, share ===== */
body:not(.dmt-home) .dmt-main { padding-left: 15px; padding-right: 15px; box-sizing: border-box; }
.dmt-panel, .dmt-panel { margin-left: auto !important; margin-right: auto !important; }
.dmt-split { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.dmt-split .dmt-btn, .dmt-btn--block { width: 100%; }
.dmt-actions--release { flex-direction: column; align-items: stretch; max-width: 520px; gap: 10px; }
.dmt-card__meta .dmt-split, .dmt-card__meta .dmt-btn--block { margin-top: auto; align-self: stretch; }
.dmt-card__meta .dmt-split .dmt-btn { margin-top: 0; align-self: auto; }
.dmt-card__meta .dmt-btn--block { width: auto; }
.dmt-btn--ghost { background: transparent; color: #fff; }
.dmt-btn--ghost:hover { background: transparent; }
.dmt-actions--sub { margin: 14px 0 0; align-items: center; }
.dmt-actions--sub .dmt-btn--small { font-size: 12px; min-height: 38px; padding: 6px 14px; }
.dmt-actions__label { font: 700 12px/1 var(--f-nav); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.dmt-tbc { margin: 16px 0 0; font-family: var(--f-body); color: #dcdcdc; }
.dmt-tbc a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.dmt-contact__ml { margin: 18px 0 0; }
.dmt-footer__ml { font-family: var(--f-nav); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; text-decoration: none; font-size: 16px; }
.dmt-footer__ml:hover { text-decoration: underline; text-underline-offset: 4px; }
.dmt-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 26px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); }
.dmt-share__label { font: 700 12px/1 var(--f-nav); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.dmt-share__link { background: none; border: 0; padding: 0; color: #fff; cursor: pointer; font: 600 13px/1 var(--f-nav); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.dmt-share__link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ===== 13 Nov (d): 30px side spacing on desktop, 15px on mobile ===== */
@media (min-width: 761px) { body:not(.dmt-home) .dmt-main { padding-left: 30px; padding-right: 30px; } }

/* ===== 13 Nov (f): empty text, ghost Listen button, social icons, release video button ===== */
.dmt-empty { font-weight: inherit; text-transform: none; }
.dmt-btn--ghost { background: transparent; color: #fff; border-color: #fff; }
.dmt-btn--ghost:hover { background: #fff; color: #000; }
.dmt-social a { display: inline-flex; align-items: center; gap: 9px; }
.dmt-social__icon { width: 18px; height: 18px; fill: currentColor; flex: none; }
.dmt-mnav__foot .dmt-social__icon { width: 16px; height: 16px; }
.dmt-btn--play::before { content: ""; width: 0; height: 0; margin-right: 10px; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; }
