/*
 * PressLink - public artist page.
 *
 * Moved out of templates/single-presslink_artist.php so it is cached by the
 * browser and the CDN. Per-artist values (accent, panel, overlays) are printed
 * inline by the template as custom properties on :root; the values below are
 * only fallbacks.
 */
:root {
	--pl-bg: #0a0a0a;
	--pl-panel: #101010;
	--pl-ink: #e8e8e8;
	--pl-mute: rgba(232, 232, 232, .55);
	--pl-faint: rgba(232, 232, 232, .6);
	--pl-line: rgba(255, 255, 255, .12);
	--pl-line-strong: rgba(255, 255, 255, .28);
	--pl-accent: #f4d03f;
	--pl-accent-ink: #050505;
	--pl-secondary: #101010;
	--pl-hero-overlay: radial-gradient(circle at center, rgba(0,0,0,.12), rgba(0,0,0,.58) 70%), linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.68));
	--pl-track-overlay: linear-gradient(90deg, rgba(8,8,8,.96) 0%, rgba(8,8,8,.88) 32%, rgba(8,8,8,.82) 100%);
	--pl-card-tint: rgba(0,0,0,.55);
	--pl-mono: "Space Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
* { box-sizing: border-box; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
	margin: 0;
	background: var(--pl-bg);
	color: var(--pl-ink);
	font-family: var(--pl-mono);
	font-size: 14px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img, iframe { max-width: 100%; display: block; }
/* width/height attributes are there for layout stability, not to fix the size. */
img { height: auto; }
::selection { background: var(--pl-accent); color: var(--pl-accent-ink); }

/* Film grain overlay (ported from the 21st.dev music-portfolio). */
.pl-grain { pointer-events: none; position: fixed; inset: 0; z-index: 100; opacity: .12; mix-blend-mode: overlay; }
.pl-grain svg { width: 100%; height: 100%; }

/* Fixed bottom chrome: coordinates + live clock. */
.pl-chrome {
	position: fixed; z-index: 90; left: 0; right: 0; bottom: 0;
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 24px;
	font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
	color: var(--pl-ink);
	background: linear-gradient(0deg, rgba(0,0,0,.65), transparent);
	pointer-events: none;
}

.pl-wrap { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }

/* HERO */
.pl-hero { position: relative; min-height: 100vh; min-height: 100svh; overflow: hidden; background: #000; display: flex; flex-direction: column; }
.pl-hero-bg { position: absolute; inset: 0; }
.pl-hero-bg img, .pl-hero-bg video { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%) contrast(1.1) brightness(.5); }
.pl-hero-bg iframe { position: absolute; top: 50%; left: 50%; width: max(100vw, 177.78dvh); height: max(100dvh, 56.25vw); max-width: none; transform: translate(-50%, -50%); border: 0; pointer-events: none; filter: grayscale(100%) contrast(1.08) brightness(.42); }
.pl-hero-bg::after { content: ""; position: absolute; inset: 0; background: var(--pl-hero-overlay); opacity: var(--pl-overlay, 1); }
.pl-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 200px;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(10,10,10,.44) 42%, rgba(10,10,10,.92) 100%);
}

.pl-hero-body { position: relative; z-index: 2; flex: 1; display: flex; align-items: center; justify-content: center; padding: 64px 24px 96px; text-align: center; }
.pl-hero-inner { width: min(860px, 100%); margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; }


.pl-title { font-size: clamp(2.6rem, 8vw, 6.2rem); font-weight: 700; line-height: .95; letter-spacing: .01em; text-transform: uppercase; margin: 24px 0 18px; color: #fff; }
.pl-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 22px; }
.pl-button { display: inline-grid; justify-items: center; align-content: center; gap: 7px; width: auto; min-width: 54px; height: auto; padding: 4px 6px; color: var(--pl-ink); background: transparent; border: 0; opacity: .82; transition: color .2s, opacity .2s, transform .2s; }
.pl-button-label { font-family: var(--pl-mono); font-size: 11px; font-weight: 500; letter-spacing: .16em; line-height: 1; text-transform: uppercase; white-space: nowrap; opacity: .86; transition: opacity .2s; }
.pl-button:hover .pl-button-label { opacity: 1; }
.pl-button:hover { color: var(--pl-accent); opacity: 1; transform: translateY(-1px); }
.pl-button svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.pl-scroll-cue {
	position: absolute; z-index: 3; left: 50%; bottom: 74px; transform: translateX(-50%);
	display: inline-grid; place-items: center; width: 42px; height: 42px;
	color: rgba(255,255,255,.76); background: transparent; border: 0;
	animation: pl-scroll-cue 1.65s ease-in-out infinite;
	transition: color .2s, opacity .2s;
}
.pl-scroll-cue:hover { color: var(--pl-accent); }
.pl-scroll-cue svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
@keyframes pl-scroll-cue {
	0%, 100% { opacity: .45; transform: translate(-50%, -5px); }
	50% { opacity: 1; transform: translate(-50%, 8px); }
}


/* SECTIONS */
.pl-section {
	position: relative;
	padding: 96px 0;
	border-top: 1px solid var(--pl-line);
	background: var(--pl-bg);
	scroll-margin-top: 24px;
}
.pl-section-soft {
	background:
		linear-gradient(180deg, rgba(255,255,255,.02) 0%, transparent 18%),
		var(--pl-panel);
}
.pl-section-dark { background: #000; }
.pl-section-head { display: grid; justify-items: center; gap: 18px; margin: 0 auto 40px; text-align: center; }
.pl-eyebrow { margin: 0 0 12px; color: var(--pl-accent); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pl-section h2 { margin: 0; font-size: clamp(1.8rem, 5vw, 3.4rem); font-weight: 700; line-height: 1; letter-spacing: .02em; text-transform: uppercase; color: #fff; }
.pl-section-note { margin: 0; max-width: 560px; color: var(--pl-mute); font-size: 13px; line-height: 1.7; }

/* METRICS */
.pl-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--pl-line); border: 1px solid var(--pl-line); }
.pl-metric { background: var(--pl-bg); padding: 22px; min-height: 140px; display: grid; align-content: end; }
.pl-metric strong { font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 700; line-height: .9; color: #fff; }
.pl-metric span { margin-top: 12px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pl-mute); }


/* TRACKLIST (music + agenda). */
.pl-tracklist { border-top: 1px solid var(--pl-line); }
.pl-track {
	position: relative; display: grid; align-items: center; gap: 28px;
	grid-template-columns: 44px minmax(220px, 1.25fr) minmax(260px, 1.05fr) minmax(180px, .7fr);
	padding: 18px 16px 18px 20px;
	border-bottom: 1px solid var(--pl-line);
	color: var(--pl-ink);
	transition: opacity .2s ease, filter .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.pl-track > span, .pl-track > time { position: relative; z-index: 2; }
.pl-track::before { content: ""; position: absolute; left: 0; top: 0; height: 100%; width: 3px; background: var(--pl-accent); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.pl-track-media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-image:
		var(--pl-track-overlay),
		var(--pl-track-bg, none);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: .5;
	transition: opacity .25s ease, filter .25s ease;
	filter: grayscale(100%) contrast(1.05);
}
.pl-tracklist:has(.pl-track:hover) .pl-track:not(:hover), .pl-tracklist.pl-has-hover .pl-track:not(.pl-is-hovered) { opacity: .38; filter: none; }
.pl-track:hover, .pl-track.pl-is-hovered { border-bottom-color: color-mix(in srgb, var(--pl-accent) 45%, transparent); background: transparent; }
.pl-track:hover::before, .pl-track.pl-is-hovered::before { transform: scaleX(1); }
.pl-track-media:hover::after, .pl-track-media.pl-is-hovered::after { opacity: .76; filter: grayscale(0) contrast(1.02); }
.pl-track-no { font-size: 12px; letter-spacing: .1em; color: var(--pl-faint); }
.pl-track:hover .pl-track-no, .pl-track.pl-is-hovered .pl-track-no { color: var(--pl-accent); }
.pl-track-main, .pl-track-sub, .pl-track-end { display: block; max-width: 100%; min-width: 0; padding: 1px 0; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
.pl-track-main { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pl-track-sub { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--pl-mute); }
.pl-track-end { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pl-mute); white-space: nowrap; justify-self: end; text-align: right; }
.pl-track:hover .pl-track-main, .pl-track.pl-is-hovered .pl-track-main { color: #fff; }
.pl-track:hover .pl-track-sub, .pl-track:hover .pl-track-end, .pl-track.pl-is-hovered .pl-track-sub, .pl-track.pl-is-hovered .pl-track-end { color: var(--pl-ink); }
.pl-track:hover .pl-track-no,
.pl-track:hover .pl-track-main,
.pl-track:hover .pl-track-sub,
.pl-track:hover .pl-track-end,
.pl-track.pl-is-hovered .pl-track-no,
.pl-track.pl-is-hovered .pl-track-main,
.pl-track.pl-is-hovered .pl-track-sub,
.pl-track.pl-is-hovered .pl-track-end,
.pl-track .pl-scrambling {
	display: inline-block;
	width: fit-content;
	padding: 2px 7px;
	background: var(--pl-accent);
	color: var(--pl-accent-ink);
}
.pl-scrambling { color: var(--pl-accent); }

/* BIO */

/* GALLERY — dense, uniform, minimal grid. */
.pl-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 6px; }
.pl-photo-card { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--pl-line); background: #000; }
.pl-photo-link { display: block; height: 100%; color: inherit; cursor: default; outline: none; -webkit-tap-highlight-color: transparent; }
.pl-photo-card img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; filter: grayscale(100%) contrast(1.08); transition: filter .4s, transform .6s; }
.pl-photo-card:hover img, .pl-photo-card:has(:focus-visible) img { filter: grayscale(0) contrast(1); transform: scale(1.04); }
/* A tap on a phone focuses the photo and shows the hover look; a mouse
   click does nothing (keyboard focus still shows it). */
@media (hover: none) { .pl-photo-card:focus-within img { filter: grayscale(0) contrast(1); transform: scale(1.04); } }
.pl-photo-download { position: absolute; z-index: 3; right: 10px; bottom: 10px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; background: rgba(0,0,0,.72); backdrop-filter: blur(8px); opacity: 0; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease, background .2s ease, border-color .2s ease; }
.pl-photo-download svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-photo-card:hover .pl-photo-download, .pl-photo-card:has(:focus-visible) .pl-photo-download { opacity: 1; transform: none; }
.pl-photo-download:hover, .pl-photo-download:focus-visible { color: #fff; background: var(--pl-accent); border-color: var(--pl-accent); }
@media (hover: none), (max-width: 760px) { .pl-photo-download { opacity: 1; transform: none; width: 38px; height: 38px; } }

/* LANGUAGE SELECTOR (bio). */
.pl-lang { display: flex; gap: 6px; margin: 0 0 18px; }
.pl-lang button { font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: 8px 14px; color: var(--pl-mute); background: transparent; border: 1px solid var(--pl-line-strong); cursor: pointer; transition: color .2s, border-color .2s, background .2s; }
.pl-lang button:hover { color: var(--pl-ink); }
.pl-lang button.is-active { color: var(--pl-accent-ink); background: var(--pl-accent); border-color: var(--pl-accent); }

/* SOCIAL LINKS */
.pl-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.pl-socials a { width: 34px; height: 34px; display: inline-grid; place-items: center; color: var(--pl-ink); background: transparent; border: 0; opacity: .82; transition: color .2s, opacity .2s, transform .2s; }
.pl-socials a:hover { color: var(--pl-accent); opacity: 1; transform: translateY(-2px); }
.pl-socials svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.pl-brand { padding: 28px 0 80px; background: #000; color: var(--pl-faint); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }


@media (max-width: 900px) {
	.pl-hero-inner, .pl-section-head { grid-template-columns: 1fr; }
	.pl-metrics { grid-template-columns: 1fr 1fr; }
	.pl-track {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"no"
			"main"
			"sub"
			"end";
		align-items: start;
		gap: 6px;
		padding: 16px 14px 16px 18px;
	}
	.pl-track-no { grid-area: no; padding-top: 0; }
	.pl-track-main { grid-area: main; }
	.pl-track-sub { grid-area: sub; display: block; }
	.pl-track-end { grid-area: end; justify-self: start; text-align: left; }
	.pl-track-main, .pl-track-sub, .pl-track-end { width: auto; max-width: 100%; min-width: 0; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
	.pl-section { padding: 64px 0; }
	.pl-gallery { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
	.pl-chrome { font-size: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); }
	.pl-hero-logo { max-width: min(calc(82vw * var(--pl-logo-k, 1)), calc(500px * var(--pl-logo-k, 1)), 94vw); }
	.pl-scroll-cue { bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) {
	.pl-scroll-cue { animation: none; opacity: .78; }
}

/* HERO video background + subtle motion fallback. */
.pl-hero-bg video { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%) contrast(1.1) brightness(.5); }
.pl-hero-bg.is-still img { animation: pl-kenburns 24s ease-in-out infinite alternate; }
@keyframes pl-kenburns { from { transform: scale(1); } to { transform: scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .pl-hero-bg.is-still img { animation: none; } }

/* HERO artist logo (replaces text title). */
.pl-hero-logo { display: block; width: auto; max-width: min(calc(82vw * var(--pl-logo-k, 1)), calc(740px * var(--pl-logo-k, 1)), 94vw); max-height: calc(320px * var(--pl-logo-k, 1)); object-fit: contain; margin: 0 auto 24px; filter: drop-shadow(0 18px 52px rgba(0,0,0,.72)); }

/* PRESSLINK fullscreen editorial sections */
html { scroll-snap-type: y proximity; }
body { overflow-x: hidden; }
.pl-hero, .pl-screen-section { scroll-snap-align: start; scroll-snap-stop: normal; }
/* Every top-level section is a snap point, even the content-height ones
   (eventos, fotos, links, musicas) that skip .pl-screen-section on
   purpose to stay out of its opacity-reveal system. Without this they
   were snap gaps: scroll-snap-type: y proximity would coast through
   them and then jump hard into whichever fixed-height section came
   next. */
.pl-main-flow > section { scroll-snap-align: start; scroll-snap-stop: normal; }
/* Altura de tela sem entrar no sistema de revelacao das telas: essas
   secoes nunca recebem .is-active, entao herdar .pl-screen-section as
   deixaria presas em opacity .28 com blur. */
.pl-fullscreen {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	scroll-snap-align: start;
	scroll-snap-stop: normal;
}
.pl-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.pl-fullscreen > .pl-wrap { width: 100%; }
/* Parallax: a camada de fundo e o pseudo-elemento, entao o JS so escreve
   a distancia numa custom property e o CSS aplica no transform. */
.pl-parallax { overflow: hidden; }
.pl-parallax::before { transform: translate3d(0, var(--pl-parallax-y, 0px), 0) scale(1.22); will-change: transform; }
@media (prefers-reduced-motion: reduce) { .pl-parallax::before { transform: none; } }
.pl-screen-section {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	height: auto;
	display: flex;
	align-items: center;
	padding: clamp(72px, 8vh, 112px) 0;
	border-top: 0;
	isolation: isolate;
	overflow: hidden;
	background: #020204;
}
.pl-screen-section::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -3;
	background-image: var(--pl-screen-bg, none);
	background-size: cover;
	background-position: 62% center;
	filter: grayscale(8%) contrast(1.08) brightness(.56) saturate(1.08);
	transform: scale(1.045);
	transition: opacity .9s ease, transform 1.1s ease;
}
.pl-screen-bg-video,
.pl-section-bg-video {
	position: absolute;
	inset: 0;
	z-index: -3;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .72;
	pointer-events: none;
}
.pl-screen-section.pl-has-bg-video::before,
.pl-section-has-bg.pl-has-bg-video::before { opacity: 0; }
.pl-section-has-bg { position: relative; isolation: isolate; overflow: hidden; background: #050505; }
.pl-section-has-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -3;
	background-image: var(--pl-section-bg, none);
	background-size: cover;
	background-position: center;
	filter: grayscale(10%) contrast(1.06) brightness(.56) saturate(1.08);
	opacity: .62;
	transform: scale(1.025);
}
.pl-section-has-bg::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background: linear-gradient(90deg, rgba(0,0,0,.74), rgba(0,0,0,.42) 48%, rgba(0,0,0,.72)), linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.68));
	opacity: var(--pl-overlay, 1);
}
.pl-section-has-bg > .pl-wrap { position: relative; z-index: 2; }
.pl-screen-section::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -2;
	background:
		linear-gradient(90deg, rgba(2,2,4,.92) 0%, rgba(2,2,4,.58) 42%, rgba(2,2,4,.86) 100%),
		radial-gradient(circle at 66% 18%, rgba(19,54,158,.44), transparent 34%),
		linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.8));
	opacity: var(--pl-overlay, 1);
}
.pl-screen-section .pl-wrap { position: relative; z-index: 2; width: min(1280px, calc(100% - 72px)); }
.pl-agenda-screen .pl-wrap { width: min(1040px, calc(100% - 112px)); margin-inline: auto; display: grid; align-content: center; min-height: 100%; }
.pl-screen-section .pl-section-head { border: 0; margin: 0 0 clamp(22px, 3vh, 38px); align-items: end; }
.pl-screen-section .pl-eyebrow { color: var(--pl-accent); font-size: 10px; letter-spacing: .28em; margin-bottom: 10px; text-transform: uppercase; }
.pl-screen-section h2 { font-size: clamp(1rem, 1.6vw, 1.45rem); line-height: 1.2; letter-spacing: .32em; margin: 0; color: rgba(255,255,255,.82); text-transform: uppercase; font-weight: 700; }
.pl-screen-section .pl-section-note { max-width: 360px; color: rgba(255,255,255,.68); }
.pl-screen-section .pl-wrap::before,
.pl-screen-section .pl-wrap::after {
	content: "";
	position: absolute;
	left: -34px;
	width: 1px;
	background: var(--pl-accent);
	opacity: .9;
}
.pl-screen-section .pl-wrap::before { top: 0; height: 150px; }
.pl-screen-section .pl-wrap::after { bottom: 0; height: 90px; }
@media (prefers-reduced-motion: no-preference) {
	.pl-motion-ready .pl-hero .pl-hero-body,
	.pl-motion-ready .pl-screen-section .pl-wrap { opacity: .28; filter: blur(8px); transform: translateY(34px) scale(.985); transition: opacity .72s ease, filter .72s ease, transform .82s cubic-bezier(.2,.8,.2,1); }
	.pl-motion-ready .pl-hero.is-active .pl-hero-body,
	.pl-motion-ready .pl-screen-section.is-active .pl-wrap { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); }
}
.pl-screen-section::before { opacity: .58; }
.pl-screen-section.is-active::before { opacity: 1; transform: scale(1.015); }
@media (prefers-reduced-motion: reduce) { .pl-screen-section::before { transition: none; transform: none; } }

.pl-agenda-screen .pl-wrap::before,
.pl-agenda-screen .pl-wrap::after { display: none; }
.pl-agenda-screen .pl-section-head { display: grid; place-items: center; min-height: auto; margin: 0 0 clamp(28px, 4vh, 42px); text-align: center; }
.pl-agenda-screen .pl-section-head .pl-eyebrow { margin: 0; color: color-mix(in srgb, var(--pl-accent) 95%, transparent); font-size: 10px; letter-spacing: .48em; line-height: 1; }
.pl-agenda-screen .pl-tracklist { width: 100%; display: grid; grid-template-columns: 1fr; gap: 0; margin-inline: auto; }
.pl-agenda-screen .pl-track {
	min-height: 50px;
	height: 50px;
	overflow: hidden;
	padding: 0 clamp(18px, 2.6vw, 34px);
	grid-template-columns: 42px minmax(0, 1.35fr) minmax(120px, .7fr) 58px;
	gap: clamp(12px, 2.2vw, 28px);
	align-items: center;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255,255,255,.1);
	backdrop-filter: none;
}
.pl-agenda-screen .pl-track::before { opacity: 0; transition: opacity .24s ease; }
.pl-agenda-screen .pl-track:hover { background: transparent; border-color: color-mix(in srgb, var(--pl-accent) 55%, transparent); }
.pl-agenda-screen .pl-track:hover::before { opacity: .28; }
.pl-agenda-screen .pl-track-no { color: var(--pl-accent); font-size: 10px; letter-spacing: .14em; }
.pl-agenda-screen .pl-track-main { font-size: clamp(.86rem, 1.08vw, 1.05rem); line-height: 1.05; color: rgba(255,255,255,.82); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-agenda-screen .pl-track-sub,
.pl-agenda-screen .pl-track-end { color: rgba(255,255,255,.82); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: clamp(.78rem, .98vw, .95rem); letter-spacing: .1em; }
.pl-agenda-screen .pl-track-end { text-align: right; }
.pl-agenda-screen .pl-track-main { text-transform: uppercase; }

.pl-bio-screen .pl-lang { margin: 0 0 18px; }
.pl-bio-screen .pl-lang-btn { border-color: color-mix(in srgb, var(--pl-accent) 55%, transparent); }

@media (max-width: 760px) {
	html { scroll-snap-type: y proximity; }
	.pl-screen-section { min-height: 100svh; height: auto; padding: 56px 0 72px; }
	.pl-screen-section .pl-wrap { width: min(100% - 36px, 640px); }
	.pl-agenda-screen .pl-wrap { width: min(100% - 44px, 640px); min-height: 100%; align-content: center; }
	.pl-screen-section .pl-wrap::before,
	.pl-screen-section .pl-wrap::after { left: -10px; }
	.pl-screen-section h2 { font-size: .95rem; letter-spacing: .24em; }
	.pl-agenda-screen .pl-tracklist { grid-template-columns: 1fr; }
	.pl-agenda-screen .pl-section-head { min-height: auto; margin-bottom: 18px; }
}
body.admin-bar .pl-screen-section,
body.admin-bar .pl-hero {
	min-height: calc(100svh - 32px);
	height: auto;
}
@media (max-width: 782px) {
	body.admin-bar .pl-screen-section,
	body.admin-bar .pl-hero {
		min-height: calc(100svh - 46px);
	}
}
/* Standard inner section titles: Agenda, Audio, Gallery and Press. */
#agenda .pl-section-head,
#fotos .pl-section-head {
	display: grid !important;
	place-items: center !important;
	text-align: center !important;
	width: min(1120px, calc(100% - 40px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
#agenda .pl-section-head > div,
#fotos .pl-section-head > div {
	display: grid !important;
	justify-items: center !important;
	text-align: center !important;
}
#agenda .pl-section-head .pl-eyebrow,
#fotos .pl-section-head h2 {
	font-family: var(--pl-mono) !important;
	font-size: clamp(13px, 1.86vw, 25px) !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	line-height: 1 !important;
	text-align: center !important;
	text-transform: uppercase !important;
	color: #f4f4f4 !important;
	max-width: 100% !important;
}
#fotos .pl-section-head .pl-eyebrow {
	justify-self: center !important;
	text-align: center !important;
}

body.single-presslink_artist {
	max-width: 100vw;
	overflow-x: hidden;
}
/* VIP contact section */
.pl-vip-section { position: relative; overflow: hidden; background: #050505; background-image: var(--pl-vip-bg, none); background-size: cover; background-position: center; isolation: isolate; }
.pl-vip-section.pl-has-bg-video { background-image: none; }
.pl-vip-bg-video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; filter: none; opacity: .82; }
.pl-vip-section::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.28) 50%, rgba(0,0,0,.62)), linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.5)); pointer-events: none; opacity: var(--pl-overlay, 1); }
.pl-vip-section .pl-wrap { width: min(860px, calc(100% - 36px)); }
.pl-vip-section .pl-section-head { display: grid; place-items: center; text-align: center; margin-bottom: 28px; }
.pl-vip-section .pl-section-head h2 { font-family: var(--pl-mono); font-size: clamp(13px, 1.86vw, 25px); font-weight: 700; letter-spacing: .08em; line-height: 1; text-transform: uppercase; color: #f4f4f4; }
.pl-vip-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: clamp(22px, 4vw, 34px); border: 1px solid rgba(255,255,255,.14); background: linear-gradient(135deg, color-mix(in srgb, var(--pl-accent) 12%, transparent), rgba(255,255,255,.035)); }
.pl-vip-copy { display: grid; gap: 10px; color: #fff; }
.pl-vip-copy strong { font-size: clamp(1.25rem, 2.4vw, 2rem); line-height: 1; font-weight: 600; }
.pl-vip-copy span { max-width: 520px; color: rgba(255,255,255,.68); font-size: .95rem; line-height: 1.5; }
.pl-vip-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.pl-vip-btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid rgba(255,255,255,.18); color: #fff; font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pl-vip-btn.primary { border-color: var(--pl-accent); background: var(--pl-accent); color: var(--pl-accent-ink); }
.pl-vip-btn:hover { border-color: color-mix(in srgb, var(--pl-accent) 75%, transparent); }
@media (max-width: 760px) {
	.pl-vip-panel { grid-template-columns: 1fr; }
	.pl-vip-actions { justify-content: flex-start; }
	.pl-vip-btn { width: 100%; }
}

/* Section introduction motion + media parallax. */
.pl-motion-ready .pl-reveal {
	opacity: 0;
	filter: blur(5px);
	transform: translate3d(0, 28px, 0);
	transition: opacity .72s cubic-bezier(.2,.72,.2,1), transform .82s cubic-bezier(.2,.72,.2,1), filter .72s ease;
	transition-delay: var(--pl-reveal-delay, 0ms);
	will-change: opacity, transform, filter;
}
.pl-motion-ready .pl-reveal.is-inview { opacity: 1; filter: none; transform: translate3d(0, 0, 0); }
.pl-motion-ready .pl-reveal-from-left { transform: translate3d(-34px, 0, 0); }
.pl-motion-ready .pl-reveal-from-right { transform: translate3d(34px, 0, 0); }
.pl-motion-ready .pl-reveal-from-left.is-inview,
.pl-motion-ready .pl-reveal-from-right.is-inview { transform: translate3d(0, 0, 0); }
#midia { --pl-parallax-y: 0px; }
#midia.pl-section-has-bg::before {
	inset: -12% 0;
	transform: translate3d(0, var(--pl-parallax-y), 0) scale(1.08);
	will-change: transform;
}
#midia .pl-section-bg-video {
	top: -12%;
	height: 124%;
	transform: translate3d(0, var(--pl-parallax-y), 0) scale(1.06);
	will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
	.pl-motion-ready .pl-reveal,
	.pl-motion-ready .pl-reveal-from-left,
	.pl-motion-ready .pl-reveal-from-right { opacity: 1; filter: none; transform: none; transition: none; }
	#midia.pl-section-has-bg::before, #midia .pl-section-bg-video { transform: scale(1.06); }
}

/* Agenda booking CTA. */
.pl-agenda-cta { display: flex; justify-content: center; margin: clamp(24px, 4vh, 42px) auto 0; }
.pl-agenda-cta a { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 0 24px; border: 1px solid var(--pl-accent); color: #fff; background: color-mix(in srgb, var(--pl-accent) 12%, transparent); font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease; }
.pl-agenda-cta a:hover { color: var(--pl-accent-ink); background: var(--pl-accent); transform: translateY(-2px); box-shadow: 0 12px 32px color-mix(in srgb, var(--pl-accent) 24%, transparent); }
.pl-agenda-cta svg { width: 20px; height: 20px; flex: 0 0 auto; fill: currentColor; }
@media (max-width: 760px) {
	#agenda .pl-section-head { margin-bottom: 50px !important; }
	.pl-agenda-cta { width: 100%; margin-top: 50px; padding-inline: 20px; }
	.pl-agenda-cta a { width: 100%; max-width: 340px; min-height: 48px; }
}

/* Mobile: legibilidade e alvo de toque acima de densidade. */
@media (max-width: 900px) {
	.pl-agenda-screen .pl-track {
		display: grid;
		height: auto;
		min-height: 56px;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "main end" "sub end";
		align-items: center;
		gap: 2px 14px;
		padding: 12px 14px;
	}
	.pl-agenda-screen .pl-track-main,
	.pl-agenda-screen .pl-track-sub,
	.pl-agenda-screen .pl-track-end {
		position: static;
		top: auto;
		left: auto;
		right: auto;
		width: auto;
		max-width: 100%;
		transform: none;
		text-align: left;
		line-height: 1.3;
	}
	.pl-agenda-screen .pl-track-main { grid-area: main; font-size: 13px; letter-spacing: .06em; }
	.pl-agenda-screen .pl-track-sub { grid-area: sub; font-size: 11px; letter-spacing: .08em; }
	.pl-agenda-screen .pl-track-end { grid-area: end; align-self: center; font-size: 11px; letter-spacing: .08em; white-space: nowrap; }
	.pl-agenda-screen .pl-track-no { display: none; }

	.pl-button,
	.pl-photo-download,
	.pl-scroll-cue,
	.pl-socials a {
		min-width: 46px;
		min-height: 46px;
	}
	.pl-track-no { font-size: 11px; }
	.pl-socials a { display: inline-grid; place-items: center; }
}
/* PRESSLINK event posters */
.pl-posters { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 260px)); justify-content: center; gap: 14px; }
.pl-poster { position: relative; display: block; overflow: hidden; border: 1px solid var(--pl-line); background: #000; aspect-ratio: 4 / 5; color: #fff; }
.pl-poster img { display: block; width: 100%; height: 100%; object-fit: cover; filter: contrast(1.05); transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .4s ease; }
.pl-poster:hover img, .pl-poster:focus-visible img { transform: scale(1.04); }
.pl-poster.is-past img { filter: grayscale(75%) contrast(1.05) brightness(.9); }
.pl-poster.is-past:hover img { filter: grayscale(0) contrast(1.05); }
.pl-poster::before { content: ""; position: absolute; z-index: 2; left: 0; top: 0; width: 3px; height: 100%; background: var(--pl-accent); transform: scaleY(0); transform-origin: top; transition: transform .25s ease; }
.pl-poster:hover::before { transform: scaleY(1); }
/* A poster without a link is not clickable: a tap on a phone focuses it and
   shows the hover look; a mouse click does nothing new. */
div.pl-poster { cursor: default; outline: none; -webkit-tap-highlight-color: transparent; }
@media (hover: none) {
	div.pl-poster:focus img { transform: scale(1.04); }
	div.pl-poster.is-past:focus img { filter: grayscale(0) contrast(1.05); }
	div.pl-poster:focus::before { transform: scaleY(1); }
}
div.pl-poster:focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 2px; }
.pl-poster-meta { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; display: grid; gap: 3px; padding: 38px 14px 14px; background: linear-gradient(180deg, transparent, rgba(0,0,0,.88)); }
.pl-poster-meta strong { font-size: 12px; letter-spacing: .06em; line-height: 1.25; text-transform: uppercase; }
.pl-poster-meta span { color: rgba(255,255,255,.78); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
@media (max-width: 760px) { .pl-posters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .pl-poster-meta { padding: 26px 10px 10px; } }

/* ------------------------------------------------------------------ */
/* Additions: accessibility, press kit, liner notes, facades, CTA.     */
/* ------------------------------------------------------------------ */

/* Keyboard focus that shows on the dark editorial background. */
.pl-hero a:focus-visible,
.pl-main-flow a:focus-visible,
.pl-main-flow button:focus-visible,
.pl-mobile-cta a:focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 3px; }

/* Section labels promoted to <h2> keep the eyebrow look. */
.pl-section h2.pl-eyebrow { margin: 0 0 12px; color: var(--pl-accent); font-size: 11px; font-weight: 700; line-height: 1.6; letter-spacing: .2em; text-transform: uppercase; }

/* HERO: logo as the page title, genre / city line and tagline. */
.pl-hero-title-logo { margin: 0; line-height: 0; }
.pl-hero-title-logo .pl-hero-logo { height: auto; }
.pl-hero-meta { display: flex; flex-wrap: wrap; justify-content: center; margin: 0 0 14px; color: rgba(255,255,255,.84); font-size: 11px; font-weight: 700; line-height: 1.7; letter-spacing: .28em; text-transform: uppercase; }
.pl-hero-meta span + span::before { content: "·"; margin: 0 .8em; color: var(--pl-accent); letter-spacing: 0; }
.pl-hero-tagline { max-width: 560px; margin: 0 auto 26px; color: rgba(255,255,255,.76); font-size: 13px; line-height: 1.6; letter-spacing: .04em; }
.pl-hero-bg iframe { opacity: 0; transition: opacity 1.2s ease; }
.pl-hero-bg iframe.is-ready { opacity: 1; }
/* YouTube section backgrounds: 16:9 player cropped to cover the section. */
.pl-bg-yt { overflow: hidden; container-type: size; }
.pl-bg-yt iframe { position: absolute; top: 50%; left: 50%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); max-width: none; transform: translate(-50%, -50%); border: 0; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; }
.pl-bg-yt iframe.is-ready { opacity: 1; }
@media (max-width: 760px) {
	.pl-hero-meta { letter-spacing: .2em; }
	.pl-hero-tagline { font-size: 12px; margin-bottom: 22px; }
}

/* AGENDA: nothing upcoming, and the last shows (muted, no hover). */
.pl-agenda-empty { margin: 0 auto; color: rgba(255,255,255,.72); font-size: 12px; letter-spacing: .24em; text-align: center; text-transform: uppercase; }
.pl-past { width: 100%; margin: clamp(28px, 4vh, 44px) auto 0; }
.pl-past-title { margin: 0 0 10px; color: rgba(255,255,255,.66); font-size: 11px; font-weight: 700; letter-spacing: .28em; text-align: center; text-transform: uppercase; }
.pl-past-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.08); }
.pl-past-list li { display: grid; grid-template-columns: 96px minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 9px clamp(18px, 2.6vw, 34px); border-bottom: 1px solid rgba(255,255,255,.06); color: rgba(255,255,255,.64); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pl-past-list time { color: rgba(255,255,255,.6); }
.pl-past-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 760px) {
	.pl-past-list li { grid-template-columns: 82px minmax(0, 1fr); gap: 4px 12px; padding-inline: 12px; }
	.pl-past-list .pl-past-place { grid-column: 2; }
}

/* LINER NOTES: numbers + track record, set like album-sleeve credits. */
.pl-liner { padding: clamp(64px, 10vh, 110px) 0; background: #050505; }
.pl-liner .pl-section-head { margin-bottom: 28px; }
.pl-liner .pl-metric span { color: rgba(232,232,232,.66); }
.pl-liner-credits { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1px; margin-top: 1px; background: var(--pl-line); border: 1px solid var(--pl-line); }
.pl-metrics + .pl-liner-credits { border-top: 0; }
.pl-credit { padding: 22px; background: var(--pl-bg); }
.pl-credit h3 { margin: 0 0 10px; color: var(--pl-accent); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pl-credit p { margin: 0; color: rgba(255,255,255,.84); font-size: 12px; line-height: 1.8; letter-spacing: .1em; text-transform: uppercase; }
.pl-credit p span + span::before { content: " / "; color: var(--pl-accent); }

/* GALLERY: photographer credit. */
.pl-photo-credit { position: absolute; z-index: 2; left: 0; right: 56px; bottom: 0; margin: 0; padding: 22px 10px 9px; overflow: hidden; background: linear-gradient(0deg, rgba(0,0,0,.78), transparent); color: rgba(255,255,255,.86); font-size: 11px; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; }

/* MOBILE BOOKING BAR: appears once the hero is out of view. */
.pl-mobile-cta { display: none; }
@media (max-width: 900px) {
	.pl-mobile-cta { position: fixed; z-index: 95; left: 12px; right: 12px; bottom: calc(44px + env(safe-area-inset-bottom, 0px)); display: grid; grid-auto-columns: 1fr; grid-auto-flow: column; gap: 8px; opacity: 0; visibility: hidden; transform: translateY(24px); transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s; }
	.pl-mobile-cta.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease, transform .3s ease; }
	.pl-mobile-cta a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 14px; border: 1px solid var(--pl-accent); background: rgba(5,5,5,.9); color: #fff; font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 10px 30px rgba(0,0,0,.45); }
	.pl-mobile-cta a.is-primary { background: var(--pl-accent); color: var(--pl-accent-ink); }
	.pl-mobile-cta svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
	.pl-has-mobile-cta .pl-brand { padding-bottom: calc(150px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
	.pl-mobile-cta,
	.pl-mobile-cta.is-visible { transition: none; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.pl-track::before,
	.pl-poster img,
	.pl-photo-card img { transition: none; }
}

/* Footer credit: a quiet way for bookers to find PressLink. */
.pl-brand .pl-wrap { display: flex; justify-content: center; }
.pl-made-with { display: inline-flex; padding: 8px; color: var(--pl-faint); text-decoration: none; opacity: .55; transition: opacity .2s ease; }
.pl-made-with img { display: block; width: auto; height: 22px; }
.pl-made-with strong { color: var(--pl-mute); font-weight: 700; }
.pl-made-with:hover, .pl-made-with:focus-visible { opacity: 1; }

/* Bio language tabs: comfortable touch targets. */
.pl-lang button { min-height: 44px; min-width: 48px; }

/* Long agendas show the next dates first; the rest opens on demand. */
.pl-tracklist.is-collapsed .pl-track.is-more { display: none; }
.pl-agenda-more { display: block; width: 100%; min-height: 48px; margin: 14px 0 0; padding: 12px 16px; font-family: var(--pl-mono); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pl-ink); background: transparent; border: 1px solid var(--pl-line-strong, rgba(255,255,255,.28)); cursor: pointer; }
.pl-agenda-more:hover, .pl-agenda-more:focus-visible { border-color: var(--pl-accent); color: var(--pl-accent); }

/* ================================================================== */
/* v0.4 sections: bio, numbers, music & videos, press kit.            */
/* ================================================================== */

/* BIO - text column on the left, the artist photo on the right. The
   section grows with the text (never clips); the photo sticks to the
   viewport while a long bio is read. Stacked on phones and tablets. */
.pl-bio-screen { align-items: center; overflow: hidden; overflow: clip; background: #020204; }
.pl-bio-screen::before { display: none; }
.pl-bio-photo { position: absolute; z-index: -3; top: 0; right: 0; bottom: 0; left: 46%; pointer-events: none; }
.pl-bio-photo::before {
	content: "";
	position: sticky;
	top: 0;
	display: block;
	height: 100vh;
	height: 100svh;
	max-height: 100%;
	background: var(--pl-screen-bg, none) 50% 22% / cover no-repeat;
	filter: contrast(1.06) brightness(.84) saturate(1.06);
	-webkit-mask-image: linear-gradient(180deg, #000 76%, transparent);
	mask-image: linear-gradient(180deg, #000 76%, transparent);
}
.pl-bio-screen.pl-has-bg-video .pl-bio-photo { opacity: 0; }
.pl-bio-screen::after {
	background:
		linear-gradient(90deg, #020204 0%, #020204 44%, rgba(2,2,4,.9) 50%, rgba(2,2,4,.46) 60%, rgba(2,2,4,.08) 74%, rgba(2,2,4,.42) 100%),
		radial-gradient(circle at 74% 12%, rgba(18,54,170,.4), transparent 34%);
}
.pl-bio-screen .pl-wrap { display: block; width: min(1320px, calc(100% - 112px)); }
.pl-bio-screen .pl-wrap::before,
.pl-bio-screen .pl-wrap::after { display: none; }
.pl-bio-layout { width: min(640px, 46vw); padding-left: clamp(0px, 1.5vw, 24px); }
.pl-bio-copy { max-width: 64ch; color: rgba(255,255,255,.8); }
.pl-bio-screen .pl-bio-kicker { margin: 0; color: var(--pl-accent); font-size: clamp(1.15rem, 1.8vw, 1.55rem); font-weight: 400; line-height: 1; letter-spacing: 0; text-transform: none; }
.pl-bio-rule { width: 34px; height: 2px; margin: 16px 0 20px; background: var(--pl-accent); }
.pl-bio-body { position: relative; font-size: clamp(.95rem, 1.05vw, 1.05rem); line-height: 1.66; }
.pl-bio-body .pl-bio-text p { margin: 0 0 1em; font-size: inherit; line-height: inherit; }
.pl-bio-text > :last-child { margin-bottom: 0; }
.pl-bio-text[hidden] { display: none; }
.pl-bio-text a { color: var(--pl-accent); text-decoration: underline; text-underline-offset: 3px; }
.pl-bio-text ul,
.pl-bio-text ol { margin: 0 0 1em; padding-left: 1.2em; text-align: left; }
/* About ten lines, the last ones fading out (set by artist.js only). */
.pl-bio-body.is-clamped {
	max-height: calc(1.66em * 10);
	overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 5em), transparent);
	mask-image: linear-gradient(180deg, #000 calc(100% - 5em), transparent);
}
.pl-bio-more { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: 10px 0 0; padding: 0; border: 0; background: none; color: var(--pl-accent); font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: color .2s ease; }
.pl-bio-more[hidden] { display: none; }
.pl-bio-more span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.pl-bio-more svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.pl-bio-more.is-open svg { transform: rotate(180deg); }
.pl-bio-more:hover { color: #fff; }
.pl-bio-tags { margin: clamp(28px, 4vh, 40px) 0 0; color: rgba(255,255,255,.72); font-size: clamp(.68rem, .9vw, .8rem); letter-spacing: .3em; line-height: 1.7; text-transform: uppercase; }
@media (max-width: 900px) {
	.pl-bio-screen { align-items: flex-start; padding: 0 0 72px; }
	.pl-bio-photo { left: 0; bottom: auto; height: 62vh; height: min(62svh, 560px); }
	.pl-bio-photo::before { position: static; height: 100%; max-height: none; background-position: 50% 20%; -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent); mask-image: linear-gradient(180deg, #000 40%, transparent); }
	.pl-bio-screen::after { background: linear-gradient(180deg, rgba(2,2,4,.1) 0, rgba(2,2,4,.25) 18vh, rgba(2,2,4,.8) 40vh, rgba(2,2,4,.97) 56vh); }
	.pl-bio-screen .pl-wrap { width: min(100% - 40px, 620px); padding-top: clamp(200px, 40vh, 380px); }
	.pl-bio-layout { width: 100%; padding-left: 0; }
	.pl-bio-copy { max-width: none; }
	.pl-bio-body { font-size: .94rem; line-height: 1.62; }
	.pl-bio-body.is-clamped { max-height: calc(1.62em * 10); }
	.pl-bio-screen .pl-bio-kicker { font-size: 1.18rem; }
	.pl-bio-tags { font-size: .68rem; letter-spacing: .22em; margin-top: 24px; }
}

/* NUMBERS - free-text values and long labels wrap inside their cell. */
.pl-metric { min-width: 0; }
.pl-metric strong { overflow-wrap: anywhere; }
.pl-metric span { display: block; line-height: 1.45; overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 900px) {
	.pl-metric { min-height: 120px; padding: 18px; }
	.pl-metric:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* MUSIC & VIDEOS - one column of players, shared by both sections. */
.pl-media-stack { display: grid; gap: 28px; width: 100%; max-width: 860px; margin: 0 auto; }
.pl-media-item { min-width: 0; }
.pl-media-item-head { display: flex; align-items: baseline; gap: 12px; min-width: 0; margin: 0 0 10px; }
.pl-media-item-head strong { min-width: 0; overflow: hidden; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.pl-media-item-head span { flex: 0 0 auto; color: var(--pl-mute); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.pl-media-frame { position: relative; overflow: hidden; }
.pl-media-frame iframe,
.pl-media-frame video { display: block; width: 100%; border: 0; }
.pl-media-frame.is-audio iframe { height: var(--pl-media-h, 166px); }
.pl-media-frame.is-spotify iframe { border-radius: 12px; }
.pl-media-frame.is-video { aspect-ratio: 16 / 9; border: 1px solid rgba(255,255,255,.12); background: #000; }
.pl-media-frame.is-video iframe,
.pl-media-frame.is-video video { position: absolute; inset: 0; height: 100%; }
.pl-media-frame.is-video video { object-fit: contain; background: #000; }
/* Poster + play button, swapped for the player in place (artist.js). */
.pl-facade { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; background: #000; color: #fff; cursor: pointer; }
.pl-facade img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(18%) contrast(1.08) brightness(.78); transition: filter .4s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
.pl-facade::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at center, transparent 0%, rgba(0,0,0,.12) 40%, rgba(0,0,0,.5) 100%); pointer-events: none; }
.pl-facade:hover img,
.pl-facade:focus-visible img { filter: none; transform: scale(1.02); }
.pl-main-flow .pl-facade:focus-visible { outline: 2px solid var(--pl-accent); outline-offset: -3px; }
.pl-facade .pl-video-play { position: absolute; z-index: 2; left: 50%; top: 50%; width: 74px; height: 74px; border: 1px solid rgba(255,255,255,.82); border-radius: 999px; transform: translate(-50%, -50%); background: rgba(0,0,0,.28); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 0 28px color-mix(in srgb, var(--pl-accent) 24%, transparent); transition: border-color .35s ease, transform .35s ease; }
.pl-facade .pl-video-play::before { content: ""; position: absolute; left: 31px; top: 24px; border-left: 18px solid #fff; border-top: 12px solid transparent; border-bottom: 12px solid transparent; }
.pl-facade:hover .pl-video-play,
.pl-facade:focus-visible .pl-video-play { border-color: var(--pl-accent); transform: translate(-50%, -50%) scale(1.08); }
/* Links that cannot be embedded. */
.pl-media-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-height: 64px; padding: 14px 18px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.035); color: #fff; transition: border-color .2s ease, background .2s ease; }
.pl-media-link:hover { border-color: var(--pl-accent); background: color-mix(in srgb, var(--pl-accent) 8%, transparent); }
.pl-media-link-copy { display: grid; gap: 4px; min-width: 0; }
.pl-media-link-copy strong { overflow: hidden; font-size: 13px; letter-spacing: .04em; text-overflow: ellipsis; white-space: nowrap; }
.pl-media-link-copy span { color: var(--pl-mute); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.pl-media-link-cta { color: var(--pl-accent); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }

/* Artist card at the top of Músicas & Sets. */
.pl-music-card {
	/* Stacked and centred: photo, name, button. */
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "media" "copy" "btn";
	justify-items: center;
	row-gap: 18px;
	padding: clamp(24px, 3vw, 36px);
	text-align: center;
	border: 1px solid rgba(255,255,255,.12);
	background: linear-gradient(135deg, color-mix(in srgb, var(--pl-accent) 10%, transparent), rgba(255,255,255,.03) 55%);
}
.pl-music-card.is-no-button { grid-template-areas: "media" "copy"; }
.pl-music-card .pl-music-card-media { width: min(220px, 60%); }
.pl-music-card .pl-music-card-copy { align-self: center; }
.pl-music-card.is-text-only { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "btn"; padding: clamp(20px, 3vw, 32px); }
.pl-music-card-media { grid-area: media; aspect-ratio: 1; overflow: hidden; background: #000; }
.pl-music-card-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(12%) contrast(1.06); }
.pl-music-card-copy { grid-area: copy; align-self: end; display: grid; justify-items: center; gap: 10px; min-width: 0; text-align: center; }
.pl-music-card.is-no-button .pl-music-card-copy { align-self: center; }
.pl-music-card-kicker { margin: 0; color: var(--pl-accent); font-size: 11px; font-weight: 700; letter-spacing: .2em; line-height: 1.5; text-transform: uppercase; }
.pl-music-card-name { margin: 0; color: #fff; font-size: clamp(1.6rem, 4vw, 2.8rem); font-weight: 700; line-height: 1; letter-spacing: .01em; text-transform: uppercase; overflow-wrap: anywhere; }
.pl-music-card-btn { grid-area: btn; align-self: start; justify-self: center; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border: 1px solid var(--pl-accent); background: var(--pl-accent); color: var(--pl-accent-ink); font-family: var(--pl-mono); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-align: center; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease; }
.pl-music-card-btn:hover { transform: translateY(-1px); box-shadow: 0 12px 32px color-mix(in srgb, var(--pl-accent) 26%, transparent); }
.pl-music-card-btn svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Videos section header (same title style as the other sections). */
.pl-videos-section { padding: clamp(72px, 10vh, 112px) 0; }
.pl-videos-section .pl-section-head { gap: 0; margin: 0 auto clamp(28px, 5vh, 48px); }
.pl-videos-section .pl-video-title { margin: 0; color: #f4f4f4; font-family: var(--pl-mono); font-size: clamp(13px, 1.86vw, 25px); font-weight: 700; letter-spacing: .08em; line-height: 1; text-transform: uppercase; text-shadow: 0 14px 38px rgba(0,0,0,.55); }
.pl-videos-section .pl-video-title-line { display: block; width: 92px; height: 2px; margin: 20px auto 18px; background: var(--pl-accent); box-shadow: 0 0 18px color-mix(in srgb, var(--pl-accent) 36%, transparent); }
.pl-videos-section .pl-video-subtitle { margin: 0; color: rgba(255,255,255,.66); font-size: 11px; letter-spacing: .42em; line-height: 1.6; text-transform: uppercase; }

/* Videos: Cortes rail (9:16) + featured player with a thumbnail rail. */
.pl-vblock { width: 100%; max-width: 1040px; margin: 0 auto; }
.pl-vblock + .pl-vblock, .pl-vblock + .pl-vlinks { margin-top: clamp(44px, 6vw, 72px); }
.pl-vrow-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.pl-vrow-head h3 { display: flex; align-items: center; gap: 10px; margin: 0; color: #fff; font-family: var(--pl-mono); font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pl-vrow-head h3::before { content: ""; width: 8px; height: 8px; background: var(--pl-accent); }
.pl-vrow-nav { display: flex; gap: 6px; }
.pl-vrow-nav button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(255,255,255,.04); color: #fff; cursor: pointer; transition: border-color .2s ease; }
.pl-vrow-nav button:hover, .pl-vrow-nav button:focus-visible { border-color: var(--pl-accent); }
.pl-vrow-nav button[data-pl-scroll="-1"] svg { transform: scaleX(-1); }
.pl-vrow-nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.pl-reels, .pl-vthumbs { display: grid; grid-auto-flow: column; gap: 12px; margin: 0; padding: 0 0 6px; list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.pl-reels::-webkit-scrollbar, .pl-vthumbs::-webkit-scrollbar { display: none; }
.pl-reels { grid-auto-columns: 232px; }
.pl-reels > li, .pl-vthumbs > li { scroll-snap-align: start; min-width: 0; }
.pl-reel { position: relative; display: block; aspect-ratio: 9 / 16; overflow: hidden; border: 1px solid rgba(255,255,255,.12); background: #111; color: #fff; text-decoration: none; transition: border-color .2s ease; }
.pl-reel:hover, .pl-reel:focus-visible { border-color: rgba(255,255,255,.34); }
.pl-reel img, .pl-reel video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pl-reel video { opacity: 0; transition: opacity .5s ease; }
.pl-reel.is-playing video, .pl-reel.has-frame video { opacity: 1; }
.pl-reel::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35), transparent 22%, transparent 55%, rgba(0,0,0,.85)); pointer-events: none; }
.pl-reel-src { position: absolute; z-index: 2; top: 10px; left: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; background: rgba(0,0,0,.55); font-family: var(--pl-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.pl-reel-src svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-reel-meta { position: absolute; z-index: 2; left: 12px; right: 12px; bottom: 12px; display: grid; gap: 6px; }
.pl-reel-meta strong { font-family: var(--pl-mono); font-size: 12px; letter-spacing: .04em; line-height: 1.3; text-transform: uppercase; overflow-wrap: anywhere; }
.pl-reel-out { justify-self: start; padding: 6px 10px; border: 1px solid rgba(255,255,255,.4); font-family: var(--pl-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.pl-reel-bar { position: absolute; z-index: 3; left: 0; bottom: 0; width: 0; height: 2px; background: var(--pl-accent); }
/* Story mode: the card on turn is outlined; a Short plays inside it; an
   Instagram/TikTok cover gets a slow zoom for its turn. */
.pl-reel.is-story { border-color: var(--pl-accent); }
.pl-reel-yt { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; opacity: 0; transition: opacity .5s ease; }
.pl-reel.is-playing .pl-reel-yt { opacity: 1; }
.pl-reel.is-still img { animation: pl-reel-still 5s linear both; }
@keyframes pl-reel-still { to { transform: scale(1.08); } }

.pl-vfeature { position: relative; }
.pl-vfeature-slide { position: relative; }
.pl-vfeature-slide[hidden] { display: none; }
.pl-vfeature .pl-media-frame { border: 1px solid rgba(255,255,255,.12); }
.pl-vfeature-cap { position: absolute; z-index: 2; left: 20px; right: 20px; bottom: 18px; display: grid; gap: 6px; margin: 0; pointer-events: none; text-shadow: 0 2px 14px rgba(0,0,0,.7); }
.pl-vfeature-slide:not(.is-file) .pl-media-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.75)); pointer-events: none; }
.pl-vfeature-slide.is-file .pl-vfeature-cap,
.pl-vfeature-slide:has(iframe) .pl-vfeature-cap,
.pl-vfeature-slide:has(iframe) .pl-media-frame::after { display: none; }
.pl-vfeature-cap strong { color: #fff; font-family: var(--pl-mono); font-size: clamp(15px, 2vw, 22px); letter-spacing: .03em; line-height: 1.2; text-transform: uppercase; }
.pl-vfeature-cap span { color: rgba(255,255,255,.66); font-family: var(--pl-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }

.pl-vthumbs { grid-auto-columns: calc((100% - 24px) / 3.25); margin-top: 14px; }
.pl-vthumb { display: grid; gap: 8px; width: 100%; padding: 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; opacity: .55; transition: opacity .2s ease; }
.pl-vthumb:hover, .pl-vthumb:focus-visible, .pl-vthumb.is-active { opacity: 1; }
.pl-vthumb-pic { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255,255,255,.12); background: #111; }
.pl-vthumb.is-active .pl-vthumb-pic { border-color: var(--pl-accent); box-shadow: inset 0 -3px 0 var(--pl-accent); }
.pl-vthumb-pic img { width: 100%; height: 100%; object-fit: cover; }
.pl-vthumb-name { overflow: hidden; color: rgba(255,255,255,.62); font-family: var(--pl-mono); font-size: 9px; letter-spacing: .14em; line-height: 1.3; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.pl-vthumb.is-active .pl-vthumb-name { color: #fff; }
.pl-vlinks { max-width: 1040px; }

/* Full-screen player for the Cortes rail. */
.pl-reel-viewer { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: rgba(0,0,0,.94); }
.pl-reel-viewer[hidden] { display: none; }
.pl-reel-viewer-frame { position: relative; height: min(88vh, 820px); height: min(88dvh, 820px); aspect-ratio: 9 / 16; max-width: 94vw; overflow: hidden; background: #000; }
.pl-reel-viewer-frame video, .pl-reel-viewer-frame iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #000; }
.pl-reel-viewer-count { position: absolute; z-index: 2; top: 14px; left: 14px; color: #fff; font-family: var(--pl-mono); font-size: 11px; letter-spacing: .14em; pointer-events: none; }
.pl-reel-viewer button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(0,0,0,.5); color: #fff; cursor: pointer; }
.pl-reel-viewer button:hover, .pl-reel-viewer button:focus-visible { border-color: var(--pl-accent); }
.pl-reel-viewer svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-reel-viewer-close { position: absolute; top: 18px; right: 18px; }
.pl-reel-viewer-nav { position: absolute; top: 50%; right: max(18px, calc(50% - min(88vh, 820px) * 9 / 32 - 70px)); display: grid; gap: 10px; transform: translateY(-50%); }
.pl-reel-viewer-nav [data-pl-step="-1"] svg { transform: rotate(-90deg); }
.pl-reel-viewer-nav [data-pl-step="1"] svg { transform: rotate(90deg); }
html.pl-viewer-open { overflow: hidden; }
.pl-video-tags { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px 18px; margin: clamp(28px, 5vh, 48px) auto 0; color: rgba(255,255,255,.72); font-size: 11px; letter-spacing: .3em; line-height: 1.6; text-transform: uppercase; }
.pl-video-tags span:not(:last-child)::after { content: "•"; margin-left: 18px; color: var(--pl-accent); letter-spacing: 0; }

@media (max-width: 760px) {
	.pl-media-stack { gap: 22px; }
	.pl-facade .pl-video-play { width: 60px; height: 60px; }
	.pl-facade .pl-video-play::before { left: 24px; top: 18px; border-left-width: 15px; border-top-width: 11px; border-bottom-width: 11px; }
	.pl-music-card { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "copy" "btn"; justify-items: center; row-gap: 16px; padding: 22px 18px 18px; text-align: center; }
	.pl-music-card-media { width: min(160px, 52%); }
	.pl-music-card.is-no-button { grid-template-areas: "media" "copy"; }
	.pl-music-card.is-text-only { grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "btn"; padding: 18px; }
	.pl-music-card-copy { align-self: center; gap: 6px; }
	.pl-music-card-name { font-size: 1.6rem; }
	.pl-music-card-btn { justify-self: stretch; }
	.pl-videos-section .pl-video-subtitle { letter-spacing: .22em; }
	.pl-vrow-nav { display: none; }
	.pl-reels { grid-auto-columns: 62%; margin-right: -24px; padding-right: 24px; }
	.pl-vthumbs { grid-auto-columns: 59%; gap: 8px; margin-right: -24px; padding-right: 24px; }
	.pl-vfeature-cap { left: 12px; right: 12px; bottom: 10px; }
	.pl-vfeature-cap strong { font-size: 13px; }
	.pl-reel-viewer-frame { height: 100%; max-width: 100%; }
	.pl-reel-viewer-nav { top: auto; right: 14px; bottom: 90px; transform: none; }
	.pl-video-tags { padding-inline: 12px; letter-spacing: .2em; }
}

/* PRESS KIT (Mídia) - the whole kit first, then compact rows. */
.pl-kit-section { padding: clamp(72px, 10vh, 112px) 0; }
.pl-kit-section .pl-wrap { width: min(920px, calc(100% - 40px)); }
.pl-kit-head { display: grid; justify-items: center; gap: 14px; margin: 0 0 clamp(32px, 5vh, 48px); text-align: center; }
.pl-kit-section .pl-kit-title { margin: 0; color: #f4f4f4; font-family: var(--pl-mono); font-size: clamp(13px, 1.86vw, 25px); font-weight: 700; line-height: 1; letter-spacing: .08em; text-transform: uppercase; }
.pl-kit-head .pl-section-note { color: rgba(255,255,255,.68); }
.pl-kit-zip { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; margin-top: 8px; padding: 0 26px; border: 1px solid var(--pl-accent); background: var(--pl-accent); color: var(--pl-accent-ink); font-family: var(--pl-mono); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 14px 40px color-mix(in srgb, var(--pl-accent) 18%, transparent); transition: transform .2s ease, box-shadow .2s ease; }
.pl-kit-zip:hover { transform: translateY(-2px); box-shadow: 0 18px 48px color-mix(in srgb, var(--pl-accent) 30%, transparent); }
.pl-kit-zip svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pl-kit-zip small { padding-left: 12px; border-left: 1px solid currentColor; font-size: 11px; font-weight: 400; letter-spacing: .06em; opacity: .75; }
.pl-kit-group + .pl-kit-group { margin-top: clamp(28px, 4vh, 40px); }
.pl-kit-label { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; color: rgba(255,255,255,.62); font-size: 11px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.pl-kit-label::after { content: ""; flex: 1; height: 1px; background: var(--pl-line); }
.pl-kit-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.pl-kit-list > li { display: flex; min-width: 0; }
.pl-kit-row { display: flex; align-items: center; gap: 14px; width: 100%; min-width: 0; min-height: 64px; padding: 10px 14px 10px 16px; border: 1px solid var(--pl-line); background: rgba(8,8,8,.62); color: #fff; transition: border-color .2s ease, background .2s ease; }
a.pl-kit-row:hover,
a.pl-kit-row:focus-visible { border-color: color-mix(in srgb, var(--pl-accent) 55%, transparent); background: color-mix(in srgb, var(--pl-accent) 7%, rgba(8,8,8,.7)); }
.pl-kit-icon { flex: 0 0 20px; width: 20px; height: 20px; color: rgba(255,255,255,.55); transition: color .2s ease; }
.pl-kit-go { flex: 0 0 18px; width: 18px; height: 18px; color: rgba(255,255,255,.5); transition: color .2s ease; }
.pl-kit-icon svg,
.pl-kit-go svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
a.pl-kit-row:hover .pl-kit-icon,
a.pl-kit-row:focus-visible .pl-kit-icon,
a.pl-kit-row:hover .pl-kit-go,
a.pl-kit-row:focus-visible .pl-kit-go { color: var(--pl-accent); }
.pl-kit-text { display: grid; flex: 1 1 auto; gap: 3px; min-width: 0; }
.pl-kit-text strong { overflow: hidden; color: rgba(255,255,255,.94); font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: .02em; text-overflow: ellipsis; white-space: nowrap; }
.pl-kit-text small { overflow: hidden; color: rgba(255,255,255,.52); font-size: 11px; line-height: 1.35; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.pl-kit-row.is-contact { flex-wrap: wrap; row-gap: 6px; }
.pl-kit-row.is-contact .pl-kit-text { flex: 1 1 170px; }
.pl-kit-mail { color: rgba(255,255,255,.8); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.pl-kit-mail:hover { color: var(--pl-accent); text-decoration: underline; text-underline-offset: 3px; }
.pl-kit-row .pl-copy { flex: 0 0 auto; min-width: 88px; min-height: 44px; margin-left: auto; padding: 0 14px; border: 1px solid var(--pl-line-strong); background: transparent; color: rgba(255,255,255,.86); font-family: var(--pl-mono); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.pl-kit-row .pl-copy:hover { border-color: var(--pl-accent); color: var(--pl-accent); }
.pl-kit-row .pl-copy.is-copied { border-color: var(--pl-accent); background: var(--pl-accent); color: var(--pl-accent-ink); }
@media (max-width: 760px) {
	.pl-kit-section .pl-wrap { width: min(100% - 32px, 560px); }
	.pl-kit-zip { flex-wrap: wrap; row-gap: 2px; width: 100%; padding: 10px 16px; font-size: 11px; letter-spacing: .08em; line-height: 1.4; }
	.pl-kit-zip small { flex-basis: 100%; padding: 0; border: 0; }
	.pl-kit-list { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.pl-facade img,
	.pl-kit-zip,
	.pl-music-card-btn,
	.pl-bio-more svg { transition: none; }
}

/* Background framing chosen in the panel's editor (focal point + zoom).
   Only sections the artist framed carry the variables, so every other page
   keeps its default crop. Zoom uses the standalone scale property: it stacks
   on the parallax, Ken Burns and reveal transforms instead of replacing them. */
.pl-screen-section[style*="--pl-bg-pos"]::before,
.pl-section-has-bg[style*="--pl-bg-pos"]::before,
.pl-bio-screen[style*="--pl-bg-pos"] .pl-bio-photo::before,
.pl-vip-section[style*="--pl-bg-pos"] { background-position: var(--pl-bg-pos); }
[style*="--pl-bg-pos"] > :is(.pl-screen-bg-video, .pl-section-bg-video, .pl-vip-bg-video),
.pl-hero[style*="--pl-bg-pos"] .pl-hero-bg :is(img, video) { object-position: var(--pl-bg-pos); }
.pl-screen-section[style*="--pl-bg-zoom"]::before,
.pl-section-has-bg[style*="--pl-bg-zoom"]::before,
.pl-bio-screen[style*="--pl-bg-zoom"] .pl-bio-photo::before,
[style*="--pl-bg-zoom"] > :is(.pl-screen-bg-video, .pl-section-bg-video, .pl-vip-bg-video),
.pl-hero[style*="--pl-bg-zoom"] .pl-hero-bg { scale: var(--pl-bg-zoom); transform-origin: var(--pl-bg-pos, 50% 50%); }
.pl-bio-screen[style*="--pl-bg-zoom"] .pl-bio-photo { overflow: clip; }

/* Phones: the press kit section is taller than the screen, so as a snap
   point the browser kept pulling back to its top while scrolling through
   it; its parallax added to the tug. Plain scrolling there. */
@media (max-width: 760px) {
	.pl-main-flow > #midia { scroll-snap-align: none; }
	#midia.pl-section-has-bg::before, #midia .pl-section-bg-video { transform: scale(1.06); will-change: auto; }
}

/* Music card as an artist profile (Spotify-like): round photo, no box,
   big name, pill button. */
.pl-music-card { border: 0; background: none; padding: 8px 0 4px; row-gap: 14px; }
.pl-music-card .pl-music-card-media { width: clamp(150px, 22vw, 220px); border-radius: 50%; box-shadow: 0 24px 60px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.08); }
.pl-music-card .pl-music-card-media img { border-radius: 50%; }
.pl-music-card .pl-music-card-copy { gap: 8px; }
.pl-music-card .pl-music-card-name { font-size: clamp(2.2rem, 6vw, 4.2rem); letter-spacing: -.01em; }
.pl-music-card .pl-music-card-btn { justify-self: center; min-height: 46px; padding: 0 26px; border-radius: 999px; }

/* Touch screens: the tap shows the desktop hover (label boxes, scramble,
   the other rows dimmed), minus the row number, which has no place in the
   stacked phone layout; the date box sits on the right. */
@media (hover: none) {
	.pl-tracklist .pl-track:hover .pl-track-no, .pl-tracklist .pl-track.pl-is-hovered .pl-track-no { display: none; }
	.pl-agenda-screen .pl-track:hover .pl-track-end, .pl-agenda-screen .pl-track.pl-is-hovered .pl-track-end { justify-self: end; }
}
