/*
 * Tarjeta de presentación QR — 14 plantillas «luxe foil».
 * Una sola fuente: la vista previa del estudio (JS) y la hoja de impresión
 * (PHP la incrusta en línea) usan estas mismas reglas. Todo en mm para que
 * escale con el formato (CR80 / US / A6) y con el transform de la preview.
 *
 * Variables por tarjeta (inline):
 *   --qc-bg      fondo de la tarjeta
 *   --qc-ink     texto
 *   --qc-accent  metal del foil (oro, plata, rosa…)
 *   --qc-fs      factor de tamaño de letra (1 = 100%)
 *
 * --qc-foil y --qc-foil-h se derivan de --qc-accent con color-mix: cambiar
 * el acento re-tinta todo el foil (texto, marcos, anillos, ornamentos).
 */

.ppsa-qcard {
	--qc-bg: #0c0c0e;
	--qc-ink: #f1ead8;
	--qc-accent: #c9a24b;
	--qc-fs: 1;
	--qc-frame: var(--qc-accent);
	--qc-img-scale: 1;
	--qc-foil: linear-gradient(
		105deg,
		color-mix(in srgb, var(--qc-accent) 72%, #000) 0%,
		var(--qc-accent) 20%,
		color-mix(in srgb, var(--qc-accent) 32%, #fff) 40%,
		color-mix(in srgb, var(--qc-accent) 55%, #fff) 50%,
		var(--qc-accent) 64%,
		color-mix(in srgb, var(--qc-accent) 70%, #000) 100%
	);
	--qc-foil-h: linear-gradient(
		90deg,
		transparent 0%,
		color-mix(in srgb, var(--qc-accent) 70%, #000) 16%,
		color-mix(in srgb, var(--qc-accent) 45%, #fff) 50%,
		color-mix(in srgb, var(--qc-accent) 70%, #000) 84%,
		transparent 100%
	);
	--qc-frame-foil: linear-gradient(105deg,color-mix(in srgb,var(--qc-frame) 70%,#000),var(--qc-frame) 28%,color-mix(in srgb,var(--qc-frame) 42%,#fff) 52%,var(--qc-frame) 72%,color-mix(in srgb,var(--qc-frame) 70%,#000));
	position: relative;
	width: var(--qc-w, 85.6mm);
	height: var(--qc-h, 54mm);
	background: var(--qc-bg);
	color: var(--qc-ink);
	border-radius: 3mm;
	overflow: hidden;
	font-family: var(--qc-font, system-ui, -apple-system, "Segoe UI", sans-serif);
	box-shadow: 0 2mm 7mm rgba(0, 0, 0, 0.35);
}

.ppsa-qcard__deco {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.ppsa-qcard__deco i {
	position: absolute;
	display: block;
	font-style: normal;
}

.ppsa-qcard__inner {
	position: relative;
	z-index: 1;
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 3.5mm 4.5mm;
	gap: 0.9mm;
}

.ppsa-qcard__logo {
	max-width: 42%;
	max-height: 11mm;
	object-fit: contain;
	transform: scale(var(--qc-img-scale));
}

.ppsa-qcard__avatar {
	width: 13mm;
	height: 13mm;
	border-radius: 50%;
	object-fit: cover;
	transform: scale(var(--qc-img-scale));
}

/* Monograma: iniciales serif dentro de un anillo de foil. */
.ppsa-qcard__mono {
	position: relative;
	width: 13mm;
	height: 13mm;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	font-size: calc(4.6mm * var(--qc-fs));
	letter-spacing: 0.06em;
	color: var(--qc-accent);
	transform: scale(var(--qc-img-scale));
}

.ppsa-qcard--img-left .ppsa-qcard__logo,.ppsa-qcard--img-left .ppsa-qcard__avatar,.ppsa-qcard--img-left .ppsa-qcard__mono{align-self:flex-start;transform-origin:left center}
.ppsa-qcard--img-right .ppsa-qcard__logo,.ppsa-qcard--img-right .ppsa-qcard__avatar,.ppsa-qcard--img-right .ppsa-qcard__mono{align-self:flex-end;transform-origin:right center}
.ppsa-qcard--shape-square .ppsa-qcard__logo,.ppsa-qcard--shape-square .ppsa-qcard__avatar{border-radius:0}
.ppsa-qcard--shape-rounded .ppsa-qcard__logo,.ppsa-qcard--shape-rounded .ppsa-qcard__avatar{border-radius:2mm}
.ppsa-qcard--shape-circle .ppsa-qcard__logo,.ppsa-qcard--shape-circle .ppsa-qcard__avatar{border-radius:50%;aspect-ratio:1;object-fit:cover}
.ppsa-qcard--no-deco .ppsa-qcard__deco{display:none}
.ppsa-qcard__mono::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	padding: 0.35mm;
	background: var(--qc-frame-foil);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
}

.ppsa-qcard__name {
	margin: 0;
	font-weight: 700;
	font-size: calc(4.1mm * var(--qc-fs));
	line-height: 1.12;
	letter-spacing: -0.01em;
	overflow-wrap: break-word;
	max-width: 100%;
}

.ppsa-qcard__sub {
	margin: 0;
	font-size: calc(2.5mm * var(--qc-fs));
	line-height: 1.25;
	opacity: 0.78;
	overflow-wrap: break-word;
	max-width: 100%;
}

.ppsa-qcard__agency {
	margin: 0;
	font-size: calc(2.3mm * var(--qc-fs));
	font-weight: 650;
	letter-spacing: 0.14em;
	font-variant: small-caps;
	color: var(--qc-accent);
}

.ppsa-qcard__contacts {
	list-style: none;
	margin: 0.6mm 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35mm;
	font-size: calc(2.2mm * var(--qc-fs));
	line-height: 1.3;
	opacity: 0.82;
	overflow-wrap: break-word;
	max-width: 100%;
}

/* El QR siempre oscuro sobre placa blanca: escanea en cualquier plantilla. */
.ppsa-qcard__qr {
	display: block;
	width: 24mm;
	height: 24mm;
	background: #fff;
	padding: 1.2mm;
	border-radius: 1.2mm;
	box-shadow: 0 0 0 0.2mm rgba(0, 0, 0, 0.25);
	box-sizing: border-box;
}

.ppsa-qcard--a6 .ppsa-qcard__qr {
	width: 34mm;
	height: 34mm;
}

.ppsa-qcard__url {
	margin: 0;
	font-family: var(--qc-font, ui-monospace, SFMono-Regular, Menlo, monospace);
	font-size: calc(1.9mm * var(--qc-fs));
	line-height: 1.35;
	word-break: break-all;
	opacity: 0.68;
	max-width: 100%;
}

.ppsa-qcard__hint {
	margin: 0;
	font-size: calc(2.1mm * var(--qc-fs));
	opacity: 0.6;
}

/* ── Piezas de decoración (foil) ────────────────────────────────────── */

/* Marco de foil: anillo con esquinas redondeadas vía máscara. */
.qc-frame-o {
	inset: 1.8mm;
	padding: 0.4mm;
	border-radius: 1.8mm;
	background: var(--qc-frame-foil);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
}
.qc-frame-o--thin {
	padding: 0.24mm;
	inset: 2.1mm;
}
.qc-frame-i {
	inset: 3.2mm;
	padding: 0.18mm;
	border-radius: 1.1mm;
	background: color-mix(in srgb, var(--qc-frame) 55%, transparent);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
}
.qc-frame-i--foil {
	background: var(--qc-frame-foil);
}

/* Reglas horizontales con puntas fundidas. */
.qc-rule-c {
	left: 50%;
	width: 34%;
	height: 0.3mm;
	background: var(--qc-foil-h);
	transform: translateX(-50%);
}
.qc-rule-c--t { top: 2.9mm; }
.qc-rule-c--b { bottom: 2.9mm; }

.qc-dot {
	top: 3mm;
	left: 50%;
	width: 1.6mm;
	height: 1.6mm;
	border-radius: 50%;
	background: var(--qc-accent);
	transform: translateX(-50%);
}

/* Banda superior de foil (Aurum). */
.qc-band {
	top: 0;
	left: 0;
	right: 0;
	height: 3.2mm;
	background: var(--qc-foil);
}
.qc-band2 {
	top: 4.4mm;
	left: 0;
	right: 0;
	height: 0.3mm;
	background: var(--qc-foil-h);
}

/* Blackout: brillo de barniz y subrayado metálico tenue. */
.qc-glow {
	top: -18%;
	left: 50%;
	width: 70%;
	height: 55%;
	border-radius: 50%;
	background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.07), transparent 70%);
	transform: translateX(-50%);
}
.qc-uline {
	left: 50%;
	bottom: 26%;
	width: 22%;
	height: 0.35mm;
	background: var(--qc-foil-h);
	transform: translateX(-50%);
}

/* Cinta lateral de foil. */
.qc-stripe {
	top: 0;
	bottom: 0;
	left: 0;
	width: 3.4mm;
	background: var(--qc-foil);
}
.qc-stripe2 {
	top: 0;
	bottom: 0;
	left: 4.6mm;
	width: 0.3mm;
	background: color-mix(in srgb, var(--qc-accent) 55%, transparent);
}

/* Panel metálico (Duo). */
.qc-panel {
	top: 0;
	bottom: 0;
	left: 0;
	width: 30%;
	background: var(--qc-foil);
}
.qc-panel::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: -0.3mm;
	width: 0.3mm;
	background: color-mix(in srgb, var(--qc-accent) 60%, #000);
}

/* Marcas de esquina (Perla). */
.qc-tick {
	width: 4mm;
	height: 4mm;
	border: 0.45mm solid var(--qc-accent);
}
.qc-tick--tl { top: 2.2mm; left: 2.2mm; border-right: 0; border-bottom: 0; }
.qc-tick--tr { top: 2.2mm; right: 2.2mm; border-left: 0; border-bottom: 0; }
.qc-tick--bl { bottom: 2.2mm; left: 2.2mm; border-right: 0; border-top: 0; }
.qc-tick--br { bottom: 2.2mm; right: 2.2mm; border-left: 0; border-top: 0; }
.qc-mid {
	top: 50%;
	left: 9mm;
	right: 9mm;
	height: 0.2mm;
	background: color-mix(in srgb, var(--qc-ink) 16%, transparent);
}

/* Bloque de foil editorial. */
.qc-erule {
	top: 4mm;
	left: 4.5mm;
	width: 14mm;
	height: 1.1mm;
	background: var(--qc-foil);
}

/* Velo y mancha de color (Oro Rosa). */
.qc-wash {
	inset: 0;
	background: linear-gradient(135deg, color-mix(in srgb, var(--qc-accent) 24%, transparent) 0%, transparent 58%);
}
.qc-blob {
	right: -12%;
	bottom: -30%;
	width: 55%;
	height: 75%;
	border-radius: 50%;
	background: radial-gradient(ellipse at center, color-mix(in srgb, var(--qc-accent) 30%, transparent), transparent 70%);
}

/* Anillo de foil (Sello). */
.qc-ring {
	top: 2.6mm;
	left: 50%;
	width: 14.5mm;
	height: 14.5mm;
	border-radius: 50%;
	padding: 0.4mm;
	background: var(--qc-foil);
	transform: translateX(-50%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
}

/* Pie de foil (Marfil). */
.qc-fline {
	left: 0;
	right: 0;
	bottom: 3.6mm;
	height: 0.5mm;
	background: var(--qc-foil-h);
}
.qc-fmark {
	left: 0;
	bottom: 3.6mm;
	width: 2.4mm;
	height: 2.4mm;
	background: var(--qc-accent);
	transform: translateY(-0.85mm);
}

/* Ornamento botánico de línea (Aura). */
.ppsa-qcard__deco .qc-orn {
	position: absolute;
	left: 50%;
	bottom: 3.2mm;
	width: 30mm;
	height: auto;
	transform: translateX(-50%);
}
.qc-orn path {
	stroke: var(--qc-accent);
	stroke-width: 0.8;
	fill: none;
}
.qc-orn circle {
	fill: var(--qc-accent);
}

/* ── Plantillas: tipografía y composición ───────────────────────────── */

/* Oro Noir — la de la referencia: serif oro con marco fino. */
.ppsa-qcard--classic .ppsa-qcard__inner {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	padding: 5mm 7mm;
}
.ppsa-qcard--classic .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: calc(4.3mm * var(--qc-fs));
	letter-spacing: 0.03em;
}
.ppsa-qcard--classic .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.16em;
}

/* Cromo — tipografía metálica plata, ultra mínima. */
.ppsa-qcard--minimal .ppsa-qcard__inner {
	padding: 6mm 7mm;
}
.ppsa-qcard--minimal .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-weight: 550;
	text-transform: uppercase;
	letter-spacing: 0.3em;
	font-size: calc(3.5mm * var(--qc-fs));
}
.ppsa-qcard--minimal .ppsa-qcard__sub {
	text-transform: uppercase;
	letter-spacing: 0.24em;
	font-size: calc(1.9mm * var(--qc-fs));
}

/* Aurum — nombre de foil a toda plana bajo banda metálica. */
.ppsa-qcard--bold .ppsa-qcard__inner {
	padding-top: 8.5mm;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--bold .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.06em;
	font-size: calc(4.7mm * var(--qc-fs));
}
.ppsa-qcard--bold .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.18em;
}

/* Blackout — negro sobre negro, el nombre solo se ve al brillo. */
.ppsa-qcard--noir .ppsa-qcard__name {
	background-image: linear-gradient(160deg, #55555e 0%, #2b2b32 45%, #4a4a52 60%, #222227 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-weight: 650;
	letter-spacing: 0.04em;
}
.ppsa-qcard--noir .ppsa-qcard__sub {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: calc(2mm * var(--qc-fs));
}

/* Filo lateral — cinta vertical de foil, texto serif a la izquierda. */
.ppsa-qcard--ribbon .ppsa-qcard__inner {
	align-items: flex-start;
	text-align: left;
	padding-left: 10mm;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--ribbon .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.ppsa-qcard--ribbon .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.14em;
}

/* Panel Duo — panel metálico a la izquierda, contenido a la derecha. */
.ppsa-qcard--split .ppsa-qcard__inner {
	align-items: flex-start;
	text-align: left;
	margin-left: 30%;
	padding-left: 4.5mm;
	width: 70%;
}
.ppsa-qcard--split .ppsa-qcard__name {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	font-size: calc(3.7mm * var(--qc-fs));
}
.ppsa-qcard--split .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.14em;
}

/* Aura — marco fino y ornamento botánico. */
.ppsa-qcard--hairline .ppsa-qcard__inner {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	padding-bottom: 9.5mm;
}
.ppsa-qcard--hairline .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-weight: 600;
	font-size: calc(3.5mm * var(--qc-fs));
}
.ppsa-qcard--hairline .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.16em;
}

/* Perla — variante clara con marcas de esquina oro. */
.ppsa-qcard--grid .ppsa-qcard__inner {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--grid .ppsa-qcard__name {
	font-weight: 700;
	letter-spacing: 0.02em;
}
.ppsa-qcard--grid .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.18em;
}
.ppsa-qcard--grid .ppsa-qcard__contacts {
	font-size: calc(2mm * var(--qc-fs));
	letter-spacing: 0.04em;
}

/* Editorial — nombre serif gigante en foil, alineado a la izquierda. */
.ppsa-qcard--editorial .ppsa-qcard__inner {
	align-items: flex-start;
	text-align: left;
	padding-top: 8.5mm;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--editorial .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: calc(5mm * var(--qc-fs));
	line-height: 1.04;
	letter-spacing: -0.02em;
}
.ppsa-qcard--editorial .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.18em;
}

/* Marco Doble — doble anillo de foil, composición centrada. */
.ppsa-qcard--luxe .ppsa-qcard__inner {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	padding: 6mm 8mm;
}
.ppsa-qcard--luxe .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	letter-spacing: 0.05em;
}
.ppsa-qcard--luxe .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.2em;
	color: var(--qc-accent);
	opacity: 1;
}

/* Oro Rosa — foil rosado con velo suave. */
.ppsa-qcard--aurora .ppsa-qcard__name {
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-weight: 800;
	letter-spacing: -0.02em;
}
.ppsa-qcard--aurora .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.16em;
}

/* Monograma — iniciales grandes en anillo de foil. */
.ppsa-qcard--mono .ppsa-qcard__inner {
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
	gap: 1.1mm;
}
.ppsa-qcard--mono .ppsa-qcard__mono {
	width: 16.5mm;
	height: 16.5mm;
	font-size: calc(5.6mm * var(--qc-fs));
}
.ppsa-qcard--mono .ppsa-qcard__logo,
.ppsa-qcard--mono .ppsa-qcard__avatar {
	width: 16.5mm;
	height: 16.5mm;
	max-width: none;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 0 0 0.35mm var(--qc-accent);
}
.ppsa-qcard--mono .ppsa-qcard__name {
	font-variant: small-caps;
	letter-spacing: 0.24em;
	font-weight: 600;
	font-size: calc(3.1mm * var(--qc-fs));
}
.ppsa-qcard--mono .ppsa-qcard__sub {
	letter-spacing: 0.14em;
	font-size: calc(1.9mm * var(--qc-fs));
}

/* Sello — anillo de foil con la marca dentro. */
.ppsa-qcard--stamp .ppsa-qcard__inner {
	padding-top: 18.5mm;
	justify-content: flex-start;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--stamp .ppsa-qcard__logo,
.ppsa-qcard--stamp .ppsa-qcard__avatar,
.ppsa-qcard--stamp .ppsa-qcard__mono {
	position: absolute;
	top: 3.6mm;
	left: 50%;
	transform: translateX(-50%);
	width: 11.5mm;
	height: 11.5mm;
	max-width: none;
	max-height: none;
	border-radius: 50%;
	object-fit: cover;
}
.ppsa-qcard--stamp .ppsa-qcard__mono {
	font-size: calc(4mm * var(--qc-fs));
}
.ppsa-qcard--stamp .ppsa-qcard__mono::before {
	display: none; /* el anillo de la deco ya hace de sello */
}
.ppsa-qcard--stamp .ppsa-qcard__name {
	font-variant: small-caps;
	letter-spacing: 0.16em;
	font-size: calc(3.4mm * var(--qc-fs));
	background-image: var(--qc-foil);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

/* Marfil — variante clara, pie de foil. */
.ppsa-qcard--folio .ppsa-qcard__inner {
	align-items: flex-start;
	text-align: left;
	justify-content: flex-start;
	padding-bottom: 7.5mm;
	font-family: var(--qc-font, Georgia, "Times New Roman", serif);
}
.ppsa-qcard--folio .ppsa-qcard__contacts {
	margin-top: auto;
}
.ppsa-qcard--folio .ppsa-qcard__name {
	font-weight: 700;
	font-size: calc(4.2mm * var(--qc-fs));
}
.ppsa-qcard--folio .ppsa-qcard__sub {
	font-variant: small-caps;
	letter-spacing: 0.16em;
}

/* 15 — Aurora Wave: luminous flowing signal lines. */
.qc-wave { left:-10%; width:120%; height:18mm; border-radius:50%; border-top:.35mm solid var(--qc-accent); opacity:.55; transform:rotate(-7deg); box-shadow:0 -1mm 5mm color-mix(in srgb,var(--qc-accent) 45%,transparent); }
.qc-wave--one { top:4mm; }
.qc-wave--two { top:10mm; transform:rotate(6deg) scaleY(.7); opacity:.35; }
.qc-wave--three { bottom:-8mm; transform:rotate(-13deg); opacity:.25; }
.ppsa-qcard--wave { background:radial-gradient(circle at 88% 80%,color-mix(in srgb,var(--qc-accent) 26%,transparent),transparent 35%),var(--qc-bg); }
.ppsa-qcard--wave .ppsa-qcard__inner { align-items:flex-start; text-align:left; padding-left:6mm; }
.ppsa-qcard--wave .ppsa-qcard__name { text-transform:uppercase; letter-spacing:.08em; }

/* 16 — Tech Circuit: crisp traces and a chip-frame QR area. */
.qc-circuit { inset:0; opacity:.45; background-image:linear-gradient(90deg,transparent 9%,var(--qc-accent) 9.3%,transparent 9.6%),linear-gradient(0deg,transparent 78%,var(--qc-accent) 78.4%,transparent 78.8%),radial-gradient(circle at 9% 22%,var(--qc-accent) 0 .55mm,transparent .65mm),radial-gradient(circle at 72% 78%,var(--qc-accent) 0 .55mm,transparent .65mm); background-size:21mm 16mm,25mm 14mm,100% 100%,100% 100%; }
.qc-chip { right:4mm; top:4mm; width:19mm; height:13mm; border:.3mm solid var(--qc-accent); clip-path:polygon(12% 0,88% 0,100% 18%,100% 82%,88% 100%,12% 100%,0 82%,0 18%); opacity:.55; }
.ppsa-qcard--circuit .ppsa-qcard__inner { align-items:flex-start; text-align:left; padding-left:6mm; }
.ppsa-qcard--circuit .ppsa-qcard__name { color:var(--qc-accent); letter-spacing:.04em; }

/* 17 — Dark Geo: layered carbon facets and a hot red seam. */
.qc-geo { right:-4mm; top:-5mm; width:46%; height:118%; background:linear-gradient(145deg,#202329 0 22%,#0d0f12 22% 45%,#2a2d33 45% 62%,#111318 62%); clip-path:polygon(32% 0,100% 0,100% 100%,8% 88%,38% 55%,0 30%); opacity:.8; }
.qc-geo-edge { right:27%; top:-12%; width:.35mm; height:130%; background:var(--qc-accent); transform:rotate(-22deg); box-shadow:0 0 2mm var(--qc-accent); }
.ppsa-qcard--geo .ppsa-qcard__inner { align-items:flex-start; text-align:left; width:70%; padding-left:6mm; }
.ppsa-qcard--geo .ppsa-qcard__name { color:var(--qc-accent); }

/* 18 — Neon Impact: brick texture with crossed neon beams. */
.qc-bricks { inset:0; opacity:.24; background-image:linear-gradient(#687080 1px,transparent 1px),linear-gradient(90deg,#687080 1px,transparent 1px); background-size:9mm 5mm; }
.qc-neon { right:-8mm; bottom:5mm; width:57mm; height:1.2mm; transform:rotate(-31deg); border-radius:2mm; }
.qc-neon--pink { background:#ff25d6; box-shadow:0 0 1mm #fff,0 0 4mm #ff25d6; }
.qc-neon--blue { bottom:0; background:#4c7dff; box-shadow:0 0 1mm #fff,0 0 4mm #4c7dff; }
.ppsa-qcard--neon .ppsa-qcard__inner { align-items:flex-start; text-align:left; padding-left:6mm; }
.ppsa-qcard--neon .ppsa-qcard__name { text-shadow:0 0 2mm var(--qc-accent); }

/* 19 — Prism Light: airy polygon facets with iridescent color. */
.qc-prism { right:-5mm; bottom:-7mm; width:48%; height:120%; background:conic-gradient(from 20deg at 45% 50%,#73e8ff,#9274ff,#ff8fcf,#ffd37c,#8fffc7,#73e8ff); clip-path:polygon(50% 0,100% 22%,82% 100%,9% 85%,0 24%); opacity:.58; }
.qc-prism-ring { right:8mm; top:8mm; width:20mm; height:20mm; border:.35mm solid var(--qc-accent); transform:rotate(45deg); opacity:.5; }
.ppsa-qcard--prism { background:linear-gradient(135deg,#fff,var(--qc-bg)); }
.ppsa-qcard--prism .ppsa-qcard__inner { align-items:flex-start; text-align:left; width:67%; padding-left:6mm; }

/* 20 — Dot Matrix: kinetic particle wave. */
.qc-matrix { right:-3mm; inset-block:0; width:58%; background-image:radial-gradient(circle,var(--qc-accent) 0 .38mm,transparent .48mm); background-size:3mm 3mm; opacity:.55; clip-path:polygon(42% 0,100% 0,100% 100%,0 100%,35% 70%,8% 48%,48% 25%); }
.qc-matrix-glow { right:4mm; top:13mm; width:24mm; height:24mm; border-radius:50%; background:var(--qc-accent); filter:blur(8mm); opacity:.22; }
.ppsa-qcard--matrix .ppsa-qcard__inner { align-items:flex-start; text-align:left; width:65%; padding-left:6mm; }
.ppsa-qcard--matrix .ppsa-qcard__name,.ppsa-qcard--matrix .ppsa-qcard__agency { color:var(--qc-accent); }

/* Reverso: el sello, el ornamento y marcas estorban al QR. */
.ppsa-qcard--back .qc-ring,
.ppsa-qcard--back .qc-erule,
.ppsa-qcard--back .qc-mid,
.ppsa-qcard--back .qc-dot,
.ppsa-qcard--back .qc-orn {
	display: none;
}
.ppsa-qcard--back .ppsa-qcard__inner {
	padding-top: 3.5mm;
	padding-bottom: 3.5mm;
	justify-content: center;
}


/* ============================================================
   0.99.788 — 113 diseños nuevos (33 de la primera tanda + 100 de
   patrón). Mismo contrato de variables que los 20 originales; la
   capa decorativa usa el prefijo qc2- para no chocar con qc-.
   Fuente única: ppsa-card-designs-proposal.html.
   ============================================================ */

/* ---- shared alignment helper ---- */
.ppsa-qcard--alignleft .ppsa-qcard__inner{align-items:flex-start;text-align:left}
.ppsa-qcard--alignleft.ppsa-qcard--back .ppsa-qcard__inner{align-items:center;text-align:center}

/* ── 01 Helvetic ─────────────────────────────────────────── */
.ppsa-qcard--swiss .qc2-topbar{top:0;left:0;right:0;height:1.6mm;background:var(--qc-accent)}
.ppsa-qcard--swiss .qc2-sq{top:6mm;right:6mm;width:3.4mm;height:3.4mm;background:var(--qc-accent)}
.ppsa-qcard--swiss .ppsa-qcard__name{font-weight:700;letter-spacing:-.03em}

/* ── 02 Column ───────────────────────────────────────────── */
.ppsa-qcard--column .qc2-vrule{top:5mm;bottom:5mm;left:30%;width:.25mm;background:color-mix(in srgb,var(--qc-ink) 25%,transparent)}
.ppsa-qcard--column .qc2-mark{top:5mm;left:calc(30% - 1.6mm);width:3.2mm;height:.9mm;background:var(--qc-accent)}
.ppsa-qcard--column .ppsa-qcard__inner{padding-left:calc(30% + 5mm)}

/* ── 03 Baseline ─────────────────────────────────────────── */
.ppsa-qcard--baseline .qc2-lines{inset:0;background:repeating-linear-gradient(to bottom,transparent 0 5.4mm,color-mix(in srgb,var(--qc-ink) 9%,transparent) 5.4mm 5.55mm)}
.ppsa-qcard--baseline .qc2-hi{left:0;right:0;top:0;height:.8mm;background:var(--qc-accent)}

/* ── 04 Margin ───────────────────────────────────────────── */
.ppsa-qcard--marginnote .qc2-mrule{top:0;bottom:0;left:13mm;width:.25mm;background:color-mix(in srgb,var(--qc-accent) 45%,transparent)}
.ppsa-qcard--marginnote .qc2-mtick{left:11mm;top:50%;width:4mm;height:.7mm;background:var(--qc-accent)}
.ppsa-qcard--marginnote .ppsa-qcard__inner{padding-left:17mm}

/* ── 05 Justify ──────────────────────────────────────────── */
.ppsa-qcard--justify .qc2-jt{top:6mm;left:6mm;right:6mm;height:.25mm;background:color-mix(in srgb,var(--qc-ink) 40%,transparent)}
.ppsa-qcard--justify .qc2-jb{bottom:6mm;left:6mm;right:6mm;height:.25mm;background:color-mix(in srgb,var(--qc-ink) 40%,transparent)}
.ppsa-qcard--justify .qc2-jd{bottom:5.2mm;left:6mm;width:2mm;height:2mm;border-radius:50%;background:var(--qc-accent)}

/* ── 06 Kern ─────────────────────────────────────────────── */
.ppsa-qcard--kern .qc2-crop{top:14mm;width:.4mm;height:8mm;background:var(--qc-accent)}
.ppsa-qcard--kern .qc2-crop--l{left:4mm}
.ppsa-qcard--kern .qc2-crop--r{right:4mm}
.ppsa-qcard--kern .ppsa-qcard__name{letter-spacing:.06em;text-transform:uppercase;font-size:calc(3.5mm * var(--qc-fs))}

/* ── 07 Folio Grid ───────────────────────────────────────── */
.ppsa-qcard--foliogrid .qc2-cols{inset:4mm;background:
  linear-gradient(to right,color-mix(in srgb,var(--qc-ink) 12%,transparent) 0 .2mm,transparent .2mm) 0 0/33.33% 100% repeat-x;
  border-right:.2mm solid color-mix(in srgb,var(--qc-ink) 12%,transparent)}
.ppsa-qcard--foliogrid .qc2-seal{bottom:4mm;right:4mm;width:5mm;height:5mm;border:.4mm solid var(--qc-accent);border-radius:50%}

/* ── 08 Dawn ─────────────────────────────────────────────── */
.ppsa-qcard--dawn .qc2-glow{inset:-20%;background:radial-gradient(60% 70% at 82% 88%,color-mix(in srgb,var(--qc-accent) 55%,transparent),transparent 70%)}
.ppsa-qcard--dawn .qc2-glow2{inset:-20%;background:radial-gradient(50% 60% at 10% 4%,color-mix(in srgb,var(--qc-accent) 22%,transparent),transparent 70%)}

/* ── 09 Dusk ─────────────────────────────────────────────── */
.ppsa-qcard--dusk .qc2-blob1{width:34mm;height:34mm;border-radius:50%;left:-9mm;top:-11mm;background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 70%,transparent),transparent 68%)}
.ppsa-qcard--dusk .qc2-blob2{width:40mm;height:40mm;border-radius:50%;right:-13mm;bottom:-16mm;background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 45%,transparent),transparent 68%)}

/* ── 10 Mist ─────────────────────────────────────────────── */
.ppsa-qcard--mist .qc2-band{left:0;right:0;top:38%;height:34%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--qc-accent) 20%,transparent),transparent)}
.ppsa-qcard--mist .qc2-hair{left:6mm;right:6mm;top:38%;height:.2mm;background:color-mix(in srgb,var(--qc-accent) 55%,transparent)}

/* ── 11 Sorbet ───────────────────────────────────────────── */
.ppsa-qcard--sorbet i{border-radius:50%;mix-blend-mode:multiply;opacity:.5}
.ppsa-qcard--sorbet .qc2-c1{width:22mm;height:22mm;left:-6mm;bottom:-8mm;background:var(--qc-accent)}
.ppsa-qcard--sorbet .qc2-c2{width:17mm;height:17mm;left:9mm;bottom:-9mm;background:color-mix(in srgb,var(--qc-accent) 55%,#ffd6a5)}
.ppsa-qcard--sorbet .qc2-c3{width:26mm;height:26mm;right:-10mm;top:-11mm;background:color-mix(in srgb,var(--qc-accent) 40%,#bde0fe)}

/* ── 12 Linen ────────────────────────────────────────────── */
.ppsa-qcard--linen .qc2-weave{inset:0;opacity:.5;background:
  repeating-linear-gradient(45deg,color-mix(in srgb,var(--qc-ink) 6%,transparent) 0 .3mm,transparent .3mm .9mm),
  repeating-linear-gradient(-45deg,color-mix(in srgb,var(--qc-ink) 5%,transparent) 0 .3mm,transparent .3mm .9mm)}
.ppsa-qcard--linen .qc2-hair{left:8mm;right:8mm;bottom:7mm;height:.3mm;background:var(--qc-accent)}

/* ── 13 Sage ─────────────────────────────────────────────── */
.ppsa-qcard--sage .qc2-arc{width:46mm;height:46mm;right:-16mm;bottom:-20mm;border-radius:50%;border:.5mm solid color-mix(in srgb,var(--qc-accent) 45%,transparent)}
.ppsa-qcard--sage .qc2-arc2{width:32mm;height:32mm;right:-10mm;bottom:-14mm;border-radius:50%;background:color-mix(in srgb,var(--qc-accent) 14%,transparent)}

/* ── 14 Bauhaus ──────────────────────────────────────────── */
.ppsa-qcard--bauhaus .qc2-qc{left:0;top:0;width:14mm;height:14mm;background:var(--qc-accent);border-bottom-right-radius:14mm}
.ppsa-qcard--bauhaus .qc2-sqr{right:0;bottom:0;width:9mm;height:9mm;background:color-mix(in srgb,var(--qc-ink) 88%,transparent)}
.ppsa-qcard--bauhaus .qc2-cir{right:11mm;bottom:2.5mm;width:4mm;height:4mm;border-radius:50%;border:.6mm solid var(--qc-accent)}

/* ── 15 Arc ──────────────────────────────────────────────── */
.ppsa-qcard--arcring .qc2-ring{width:58mm;height:58mm;border-radius:50%;right:-24mm;top:-9mm;border:.45mm solid color-mix(in srgb,var(--qc-accent) 70%,transparent)}
.ppsa-qcard--arcring .qc2-ring2{width:40mm;height:40mm;border-radius:50%;right:-17mm;top:1mm;border:.25mm solid color-mix(in srgb,var(--qc-accent) 35%,transparent)}

/* ── 16 Half Moon ────────────────────────────────────────── */
.ppsa-qcard--halfmoon .qc2-half{left:0;right:0;bottom:0;height:56%;background:linear-gradient(180deg,color-mix(in srgb,var(--qc-accent) 88%,transparent),var(--qc-accent));border-radius:50% 50% 0 0/26mm 26mm 0 0}
.ppsa-qcard--halfmoon .ppsa-qcard__inner{justify-content:flex-start;padding-top:5mm}
.ppsa-qcard--halfmoon.ppsa-qcard--back .ppsa-qcard__inner{justify-content:center;padding-top:4mm}
.ppsa-qcard--halfmoon .ppsa-qcard__agency,.ppsa-qcard--halfmoon .ppsa-qcard__contacts{color:#fff;opacity:.95}

/* ── 17 Stack ────────────────────────────────────────────── */
.ppsa-qcard--stack .qc2-bars{left:5mm;bottom:5mm;width:22mm;height:8mm;background:
  linear-gradient(var(--qc-accent),var(--qc-accent)) 0 0/22mm .7mm no-repeat,
  linear-gradient(var(--qc-accent),var(--qc-accent)) 0 2mm/17mm .7mm no-repeat,
  linear-gradient(var(--qc-accent),var(--qc-accent)) 0 4mm/12mm .7mm no-repeat,
  linear-gradient(var(--qc-accent),var(--qc-accent)) 0 6mm/7mm .7mm no-repeat;opacity:.9}
.ppsa-qcard--stack .ppsa-qcard__inner{padding-bottom:15mm}

/* ── 18 Blueprint ────────────────────────────────────────── */
.ppsa-qcard--blueprint .qc2-graph{inset:0;opacity:.5;background:
  repeating-linear-gradient(to right,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .18mm,transparent .18mm 4mm),
  repeating-linear-gradient(to bottom,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .18mm,transparent .18mm 4mm)}
.ppsa-qcard--blueprint .qc2-tick{width:5mm;height:5mm;border:.4mm solid var(--qc-accent)}
.ppsa-qcard--blueprint .qc2-tick--a{left:3mm;top:3mm;border-right:0;border-bottom:0}
.ppsa-qcard--blueprint .qc2-tick--b{right:3mm;bottom:3mm;border-left:0;border-top:0}

/* ── 19 Iso ──────────────────────────────────────────────── */
.ppsa-qcard--iso .qc2-hatch{right:0;top:0;width:32mm;height:100%;background:repeating-linear-gradient(30deg,color-mix(in srgb,var(--qc-accent) 55%,transparent) 0 .5mm,transparent .5mm 2.6mm);-webkit-mask:linear-gradient(255deg,#000 40%,transparent 92%);mask:linear-gradient(255deg,#000 40%,transparent 92%)}
.ppsa-qcard--iso .ppsa-qcard__inner{padding-right:24mm}
.ppsa-qcard--iso.ppsa-qcard--back .ppsa-qcard__inner{padding-right:5mm}

/* ── 20 Notch ────────────────────────────────────────────── */
.ppsa-qcard--notch .qc2-flag{left:6mm;top:0;width:7mm;height:13mm;background:var(--qc-accent);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}
.ppsa-qcard--notch .ppsa-qcard__inner{padding-top:16mm;justify-content:flex-start}
.ppsa-qcard--notch.ppsa-qcard--back .ppsa-qcard__inner{justify-content:center;padding-top:4mm}

/* ── 21 Emboss ───────────────────────────────────────────── */
.ppsa-qcard--emboss .qc2-panel{inset:4mm;border-radius:2mm;box-shadow:inset 0 .5mm 1.2mm rgba(0,0,0,.16),inset 0 -.4mm .8mm rgba(255,255,255,.85);background:color-mix(in srgb,var(--qc-ink) 3%,transparent)}
.ppsa-qcard--emboss .qc2-dot{bottom:6.6mm;left:50%;margin-left:-1mm;width:2mm;height:2mm;border-radius:50%;background:var(--qc-accent);opacity:.7}

/* ── 22 Letterpress ──────────────────────────────────────── */
.ppsa-qcard--letterpress .qc2-press{left:9mm;right:9mm;top:50%;height:1.6mm;border-radius:1mm;background:color-mix(in srgb,var(--qc-accent) 16%,transparent);box-shadow:inset 0 .45mm .7mm rgba(0,0,0,.28),0 .3mm 0 rgba(255,255,255,.8)}
.ppsa-qcard--letterpress .ppsa-qcard__name{font-size:calc(3.8mm * var(--qc-fs));text-shadow:0 .1mm 0 rgba(255,255,255,.8)}
.ppsa-qcard--letterpress .qc2-rule{left:9mm;right:9mm;bottom:7mm;height:.25mm;background:color-mix(in srgb,var(--qc-ink) 22%,transparent)}

/* ── 23 Carbon ───────────────────────────────────────────── */
.ppsa-qcard--carbon .qc2-weave2{inset:0;opacity:.85;background:
  repeating-linear-gradient(45deg,#1a1a1e 0 .8mm,#0d0d10 .8mm 1.6mm),
  repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0 .8mm,transparent .8mm 1.6mm)}
.ppsa-qcard--carbon .qc2-sheen{inset:0;background:linear-gradient(115deg,transparent 30%,color-mix(in srgb,var(--qc-accent) 20%,transparent) 48%,transparent 62%)}
.ppsa-qcard--carbon .qc2-edge{left:0;top:0;bottom:0;width:1.2mm;background:linear-gradient(180deg,transparent,var(--qc-accent),transparent)}

/* ── 24 Frosted ──────────────────────────────────────────── */
.ppsa-qcard--frosted .qc2-orb{width:34mm;height:34mm;border-radius:50%;right:-8mm;top:-10mm;background:radial-gradient(circle,var(--qc-accent),transparent 70%);opacity:.75}
.ppsa-qcard--frosted .qc2-glass{inset:4mm;border-radius:2.5mm;background:linear-gradient(150deg,rgba(255,255,255,.20),rgba(255,255,255,.05));border:.25mm solid rgba(255,255,255,.35);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}

/* ── 25 Gilt Edge ────────────────────────────────────────── */
.ppsa-qcard--gilt .qc2-foilbar{left:0;right:0;bottom:0;height:7mm;background:linear-gradient(100deg,color-mix(in srgb,var(--qc-accent) 62%,#000),var(--qc-accent) 30%,color-mix(in srgb,var(--qc-accent) 40%,#fff) 52%,var(--qc-accent) 72%,color-mix(in srgb,var(--qc-accent) 62%,#000))}
.ppsa-qcard--gilt .qc2-thin{left:0;right:0;bottom:8.4mm;height:.25mm;background:color-mix(in srgb,var(--qc-accent) 55%,transparent)}
.ppsa-qcard--gilt .ppsa-qcard__inner{padding-bottom:12mm}

/* ── 26 Spot Colour ──────────────────────────────────────── */
.ppsa-qcard--spot .qc2-third{left:0;top:0;bottom:0;width:26mm;background:var(--qc-accent)}
.ppsa-qcard--spot .qc2-thirdline{left:26mm;top:0;bottom:0;width:.4mm;background:color-mix(in srgb,var(--qc-accent) 45%,transparent)}
.ppsa-qcard--spot .ppsa-qcard__inner{padding-left:31mm}
.ppsa-qcard--spot.ppsa-qcard--back .ppsa-qcard__inner{padding-left:31mm}

/* ── 27 Duotone ──────────────────────────────────────────── */
.ppsa-qcard--duotone .qc2-diag{inset:0;background:linear-gradient(112deg,var(--qc-accent) 0 34%,transparent 34%)}
.ppsa-qcard--duotone .qc2-diag2{inset:0;background:linear-gradient(112deg,transparent 0 34%,color-mix(in srgb,var(--qc-accent) 12%,transparent) 34% 36%,transparent 36%)}
.ppsa-qcard--duotone .ppsa-qcard__inner{padding-left:33mm;align-items:flex-start;text-align:left}

/* ── 28 Marquee ──────────────────────────────────────────── */
.ppsa-qcard--marquee .qc2-chev{left:0;right:0;bottom:0;height:5mm;background:repeating-linear-gradient(115deg,var(--qc-accent) 0 2.2mm,transparent 2.2mm 4.6mm)}
.ppsa-qcard--marquee .qc2-top{left:0;right:0;top:0;height:1mm;background:var(--qc-accent)}
.ppsa-qcard--marquee .ppsa-qcard__name{text-transform:uppercase;letter-spacing:-.01em;font-weight:800}
.ppsa-qcard--marquee .ppsa-qcard__inner{padding-bottom:10mm}

/* ── 29 Pill ─────────────────────────────────────────────── */
.ppsa-qcard--pill{border-radius:6mm}
.ppsa-qcard--pill .qc2-pillbg{left:50%;top:5mm;margin-left:-14mm;width:28mm;height:12mm;border-radius:999px;background:color-mix(in srgb,var(--qc-accent) 14%,transparent)}
.ppsa-qcard--pill .qc2-pillline{left:50%;bottom:6mm;margin-left:-6mm;width:12mm;height:1mm;border-radius:999px;background:var(--qc-accent)}
.ppsa-qcard--pill .ppsa-qcard__mono{border-color:var(--qc-accent);background:var(--qc-bg)}

/* ── 30 Sunrise ──────────────────────────────────────────── */
.ppsa-qcard--sunrise .qc2-disc{left:50%;bottom:-14mm;margin-left:-21mm;width:42mm;height:42mm;border-radius:50%;background:linear-gradient(180deg,var(--qc-accent),color-mix(in srgb,var(--qc-accent) 30%,transparent));opacity:.9}
.ppsa-qcard--sunrise .qc2-rays{left:0;right:0;bottom:0;height:20mm;background:repeating-linear-gradient(to bottom,transparent 0 1.4mm,color-mix(in srgb,var(--qc-bg) 80%,transparent) 1.4mm 2mm)}
.ppsa-qcard--sunrise .ppsa-qcard__inner{justify-content:flex-start;padding-top:6mm}
.ppsa-qcard--sunrise.ppsa-qcard--back .ppsa-qcard__inner{justify-content:center;padding-top:4mm}

/* ── 31 Ticket ───────────────────────────────────────────── */
.ppsa-qcard--ticket .qc2-perf{left:22mm;top:0;bottom:0;width:1.4mm;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--qc-ink) 30%,transparent) 40%,transparent 42%) 0 0/1.4mm 3mm repeat-y}
.ppsa-qcard--ticket .qc2-stub{left:0;top:0;bottom:0;width:22mm;background:color-mix(in srgb,var(--qc-accent) 10%,transparent)}
.ppsa-qcard--ticket .qc2-code{left:3mm;bottom:4mm;width:16mm;height:6mm;background:repeating-linear-gradient(90deg,var(--qc-ink) 0 .3mm,transparent .3mm .55mm,var(--qc-ink) .55mm .75mm,transparent .75mm 1.2mm);opacity:.6}
.ppsa-qcard--ticket .ppsa-qcard__inner{padding-left:27mm}

/* ── 32 Terminal ─────────────────────────────────────────── */
.ppsa-qcard--terminal .qc2-scan{inset:0;background:repeating-linear-gradient(to bottom,color-mix(in srgb,var(--qc-accent) 9%,transparent) 0 .25mm,transparent .25mm 1.1mm)}
.ppsa-qcard--terminal .qc2-caret{left:5mm;top:5mm;width:2.4mm;height:3.4mm;background:var(--qc-accent)}
.ppsa-qcard--terminal .qc2-frame{inset:3mm;border:.3mm solid color-mix(in srgb,var(--qc-accent) 45%,transparent);border-radius:1mm}
.ppsa-qcard--terminal .ppsa-qcard__inner{padding-top:11mm;justify-content:flex-start}
.ppsa-qcard--terminal.ppsa-qcard--back .ppsa-qcard__inner{justify-content:center;padding-top:5mm}
.ppsa-qcard--terminal .ppsa-qcard__name{font-size:calc(3.6mm * var(--qc-fs))}

/* ── 33 Passport ─────────────────────────────────────────── */
.ppsa-qcard--passport .qc2-guilloche{inset:0;opacity:.4;background:
  repeating-radial-gradient(circle at 18% 82%,transparent 0 1.6mm,color-mix(in srgb,var(--qc-accent) 40%,transparent) 1.6mm 1.75mm),
  repeating-radial-gradient(circle at 84% 16%,transparent 0 2mm,color-mix(in srgb,var(--qc-accent) 26%,transparent) 2mm 2.15mm)}
.ppsa-qcard--passport .qc2-stampbox{right:5mm;top:5mm;width:15mm;height:9mm;border:.4mm dashed color-mix(in srgb,var(--qc-accent) 65%,transparent);border-radius:1mm;transform:rotate(-6deg)}
.ppsa-qcard--passport .qc2-base{left:5mm;right:5mm;bottom:5mm;height:.4mm;background:var(--qc-accent)}

/* ============================================================
   PATTERN LIBRARY — 100 additional designs
   Each design is one to three full-bleed layers (qc2-a / b / c) whose
   background *is* the design. Same variable contract, same mm units,
   so everything scales across CR80 / US / A6 and prints identically.
   ============================================================ */
.qc2-a,.qc2-b,.qc2-c{inset:0}
/* scrim so text stays readable over a full-bleed pattern */
.ppsa-qcard--veil .ppsa-qcard__inner::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(74% 78% at 50% 50%,color-mix(in srgb,var(--qc-bg) 92%,transparent),color-mix(in srgb,var(--qc-bg) 45%,transparent) 62%,transparent 88%)}

/* ── DOTS & HALFTONE ─────────────────────────────────────── */
.ppsa-qcard--dotfield .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 18%,transparent) 20%,transparent 21%) 0 0/2.6mm 2.6mm}
.ppsa-qcard--dotfield .qc2-b{background:radial-gradient(circle,var(--qc-accent) 22%,transparent 23%) 0 0/2.6mm 2.6mm;-webkit-mask:radial-gradient(34% 52% at 88% 84%,#000,transparent 72%);mask:radial-gradient(34% 52% at 88% 84%,#000,transparent 72%)}
.ppsa-qcard--halftone .qc2-a{background:radial-gradient(circle,var(--qc-accent) 36%,transparent 37%) 0 0/3.2mm 3.2mm;-webkit-mask:linear-gradient(215deg,#000 2%,transparent 56%);mask:linear-gradient(215deg,#000 2%,transparent 56%)}
.ppsa-qcard--halftone .qc2-b{background:radial-gradient(circle,var(--qc-accent) 15%,transparent 16%) 1.6mm 1.6mm/3.2mm 3.2mm;-webkit-mask:linear-gradient(215deg,transparent 26%,#000 68%,transparent 96%);mask:linear-gradient(215deg,transparent 26%,#000 68%,transparent 96%)}
.ppsa-qcard--dither .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 70%,transparent) 26%,transparent 27%) 0 0/1.9mm 1.9mm;opacity:.5}
.ppsa-qcard--dither .qc2-b{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 26%,transparent) 17%,transparent 18%) .95mm .95mm/1.9mm 1.9mm}
.ppsa-qcard--speckle .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 75%,transparent) 11%,transparent 12%) 0 0/4.1mm 3.3mm,radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 32%,transparent) 7%,transparent 8%) 2mm 1.7mm/3.1mm 2.6mm}
.ppsa-qcard--fadegrid .qc2-a{background:radial-gradient(circle,var(--qc-accent) 24%,transparent 25%) 0 0/2.3mm 2.3mm;-webkit-mask:linear-gradient(90deg,#000,transparent 60%);mask:linear-gradient(90deg,#000,transparent 60%);opacity:.85}
.ppsa-qcard--bubbles .qc2-a{background:repeating-radial-gradient(circle at 16% 82%,transparent 0 2.8mm,color-mix(in srgb,var(--qc-accent) 45%,transparent) 2.8mm 3mm)}
.ppsa-qcard--bubbles .qc2-b{background:repeating-radial-gradient(circle at 88% 20%,transparent 0 2mm,color-mix(in srgb,var(--qc-accent) 28%,transparent) 2mm 2.2mm)}
.ppsa-qcard--dotring .qc2-a{background:radial-gradient(circle,var(--qc-accent) 26%,transparent 27%) 0 0/2.4mm 2.4mm;-webkit-mask:radial-gradient(circle at 80% 50%,transparent 0 11mm,#000 11mm 16mm,transparent 16mm);mask:radial-gradient(circle at 80% 50%,transparent 0 11mm,#000 11mm 16mm,transparent 16mm)}
.ppsa-qcard--perforated .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 26%,transparent) 24%,transparent 25%) 0 0/2.9mm 2.9mm;box-shadow:inset 0 0 7mm rgba(0,0,0,.12)}
.ppsa-qcard--perforated .qc2-b{inset:0 0 auto;height:1.4mm;background:var(--qc-accent)}
.ppsa-qcard--dotwave .qc2-a{background:radial-gradient(circle,var(--qc-accent) 25%,transparent 26%) 0 0/2.4mm 2.4mm;-webkit-mask:radial-gradient(120% 40% at 50% 118%,#000 30%,transparent 72%);mask:radial-gradient(120% 40% at 50% 118%,#000 30%,transparent 72%)}
.ppsa-qcard--dotwave .qc2-b{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 20%,transparent) 15%,transparent 16%) 1.2mm 1.2mm/2.4mm 2.4mm;-webkit-mask:radial-gradient(120% 45% at 50% -18%,#000 20%,transparent 70%);mask:radial-gradient(120% 45% at 50% -18%,#000 20%,transparent 70%)}
.ppsa-qcard--pixelgrid .qc2-a{background:linear-gradient(color-mix(in srgb,var(--qc-ink) 12%,transparent) 0 .8mm,transparent .8mm) 0 0/2mm 2mm,linear-gradient(90deg,color-mix(in srgb,var(--qc-ink) 12%,transparent) 0 .8mm,transparent .8mm) 0 0/2mm 2mm}
.ppsa-qcard--pixelgrid .qc2-b{inset:auto auto 5mm 5mm;width:2mm;height:2mm;background:var(--qc-accent);box-shadow:2.4mm 0 0 var(--qc-accent),4.8mm -2.4mm 0 var(--qc-accent),0 -2.4mm 0 color-mix(in srgb,var(--qc-accent) 45%,transparent)}

/* ── LINES & WAVES ───────────────────────────────────────── */
.ppsa-qcard--topo .qc2-a{background:repeating-radial-gradient(ellipse 22mm 15mm at 24% 30%,transparent 0 1.5mm,color-mix(in srgb,var(--qc-accent) 42%,transparent) 1.5mm 1.65mm)}
.ppsa-qcard--topo .qc2-b{background:repeating-radial-gradient(ellipse 18mm 12mm at 82% 78%,transparent 0 1.9mm,color-mix(in srgb,var(--qc-accent) 26%,transparent) 1.9mm 2.05mm)}
.ppsa-qcard--sine .qc2-a{background:repeating-radial-gradient(circle at 50% 150%,transparent 0 2.4mm,color-mix(in srgb,var(--qc-accent) 40%,transparent) 2.4mm 2.6mm);-webkit-mask:linear-gradient(#000,transparent 80%);mask:linear-gradient(#000,transparent 80%)}
.ppsa-qcard--moire .qc2-a{background:repeating-linear-gradient(8deg,color-mix(in srgb,var(--qc-accent) 55%,transparent) 0 .3mm,transparent .3mm 1.5mm)}
.ppsa-qcard--moire .qc2-b{background:repeating-linear-gradient(-8deg,color-mix(in srgb,var(--qc-ink) 25%,transparent) 0 .3mm,transparent .3mm 1.5mm)}
.ppsa-qcard--hatchcorner .qc2-a{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--qc-accent) 60%,transparent) 0 .35mm,transparent .35mm 2mm);-webkit-mask:linear-gradient(225deg,#000 12%,transparent 52%);mask:linear-gradient(225deg,#000 12%,transparent 52%)}
.ppsa-qcard--contourmap .qc2-a{background:repeating-radial-gradient(ellipse 30mm 20mm at 10% 96%,transparent 0 2.2mm,color-mix(in srgb,var(--qc-accent) 34%,transparent) 2.2mm 2.4mm),repeating-radial-gradient(ellipse 24mm 18mm at 95% 6%,transparent 0 2.6mm,color-mix(in srgb,var(--qc-ink) 16%,transparent) 2.6mm 2.8mm)}
.ppsa-qcard--ripple .qc2-a{background:repeating-radial-gradient(circle at 8% 92%,transparent 0 2.6mm,color-mix(in srgb,var(--qc-accent) 45%,transparent) 2.6mm 2.85mm)}
.ppsa-qcard--ripple .qc2-b{background:radial-gradient(50% 60% at 8% 92%,color-mix(in srgb,var(--qc-accent) 28%,transparent),transparent 72%)}
.ppsa-qcard--pinstripe .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 34%,transparent) 0 .22mm,transparent .22mm 1.6mm)}
.ppsa-qcard--pinstripe .qc2-b{inset:auto 0 6mm;height:.4mm;background:var(--qc-accent)}
.ppsa-qcard--barlines .qc2-a{inset:auto 0 0 0;height:9mm;background:repeating-linear-gradient(90deg,var(--qc-ink) 0 .35mm,transparent .35mm .8mm,var(--qc-ink) .8mm 1.3mm,transparent 1.3mm 2.4mm,var(--qc-ink) 2.4mm 2.7mm,transparent 2.7mm 3.6mm);opacity:.8}
.ppsa-qcard--barlines .qc2-b{inset:auto 0 9.8mm;height:.5mm;background:var(--qc-accent)}
.ppsa-qcard--fold .qc2-a{background:repeating-linear-gradient(115deg,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 3mm,transparent 3mm 6mm,color-mix(in srgb,var(--qc-ink) 12%,transparent) 6mm 9mm,transparent 9mm 12mm)}
.ppsa-qcard--equalizer .qc2-a{inset:auto 0 0 0;height:14mm;background:linear-gradient(var(--qc-accent),var(--qc-accent)) 3mm 100%/1.4mm 5mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 5.4mm 100%/1.4mm 9mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 7.8mm 100%/1.4mm 3mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 10.2mm 100%/1.4mm 12mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 12.6mm 100%/1.4mm 6mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 15mm 100%/1.4mm 10mm no-repeat;opacity:.9}

/* ── GRIDS & MESH ────────────────────────────────────────── */
.ppsa-qcard--graphpaper .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-ink) 12%,transparent) 0 .18mm,transparent .18mm 3mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-ink) 12%,transparent) 0 .18mm,transparent .18mm 3mm)}
.ppsa-qcard--graphpaper .qc2-b{inset:auto auto 6mm 6mm;width:3mm;height:3mm;background:var(--qc-accent)}
.ppsa-qcard--isogrid .qc2-a{background:repeating-linear-gradient(60deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .2mm,transparent .2mm 3.4mm),repeating-linear-gradient(-60deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .2mm,transparent .2mm 3.4mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 18%,transparent) 0 .2mm,transparent .2mm 3mm)}
.ppsa-qcard--perspective .qc2-a{background:repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 45%,transparent) 0 .22mm,transparent .22mm 2.4mm),repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .22mm,transparent .22mm 4mm);-webkit-mask:linear-gradient(transparent 42%,#000);mask:linear-gradient(transparent 42%,#000);transform:perspective(50mm) rotateX(62deg);transform-origin:50% 100%}
.ppsa-qcard--perspective .qc2-b{background:radial-gradient(70% 46% at 50% 74%,color-mix(in srgb,var(--qc-accent) 24%,transparent),transparent 72%)}
.ppsa-qcard--plaid .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 2.4mm,transparent 2.4mm 8mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 2.4mm,transparent 2.4mm 8mm)}
.ppsa-qcard--plaid .qc2-b{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-ink) 18%,transparent) 0 .3mm,transparent .3mm 8mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-ink) 18%,transparent) 0 .3mm,transparent .3mm 8mm)}
.ppsa-qcard--blocks .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-ink) 10%,transparent) 0 .2mm,transparent .2mm 2.6mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-ink) 10%,transparent) 0 .2mm,transparent .2mm 2.6mm)}
.ppsa-qcard--blocks .qc2-b{inset:auto auto 4.4mm 4.4mm;width:2.4mm;height:2.4mm;background:var(--qc-accent);box-shadow:2.6mm 0 0 var(--qc-accent),5.2mm -2.6mm 0 color-mix(in srgb,var(--qc-accent) 50%,transparent)}
.ppsa-qcard--wireframe .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 .2mm,transparent .2mm 4mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 .2mm,transparent .2mm 4mm)}
.ppsa-qcard--wireframe .qc2-b{inset:3mm;border:.4mm solid var(--qc-accent);border-radius:1mm;-webkit-mask:linear-gradient(#000 0 0) 0 0/7mm 7mm no-repeat,linear-gradient(#000 0 0) 100% 0/7mm 7mm no-repeat,linear-gradient(#000 0 0) 0 100%/7mm 7mm no-repeat,linear-gradient(#000 0 0) 100% 100%/7mm 7mm no-repeat;mask:linear-gradient(#000 0 0) 0 0/7mm 7mm no-repeat,linear-gradient(#000 0 0) 100% 0/7mm 7mm no-repeat,linear-gradient(#000 0 0) 0 100%/7mm 7mm no-repeat,linear-gradient(#000 0 0) 100% 100%/7mm 7mm no-repeat}
.ppsa-qcard--dotgrid .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 30%,transparent) 12%,transparent 13%) 0 0/3.4mm 3.4mm}
.ppsa-qcard--dotgrid .qc2-b{inset:auto 0 0 0;height:2mm;background:var(--qc-accent)}
.ppsa-qcard--modular .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 28%,transparent) 0 .25mm,transparent .25mm 6mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 28%,transparent) 0 .25mm,transparent .25mm 6mm)}
.ppsa-qcard--modular .qc2-b{inset:6mm;border:.25mm solid color-mix(in srgb,var(--qc-accent) 60%,transparent)}
.ppsa-qcard--tintcolumns .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 13%,transparent) 0 7mm,transparent 7mm 14mm)}
.ppsa-qcard--tintcolumns .qc2-b{inset:0 0 auto;height:.6mm;background:var(--qc-accent)}
.ppsa-qcard--crosshair .qc2-a{background:linear-gradient(color-mix(in srgb,var(--qc-accent) 55%,transparent) 0 0) center/2.4mm .22mm no-repeat,linear-gradient(color-mix(in srgb,var(--qc-accent) 55%,transparent) 0 0) center/.22mm 2.4mm no-repeat;background-size:2.4mm .22mm,.22mm 2.4mm;background-position:center,center;background-repeat:round,round}
.ppsa-qcard--crosshair .qc2-b{inset:auto 0 0 0;height:.5mm;background:var(--qc-accent)}

/* ── GEOMETRIC TILES ─────────────────────────────────────── */
.ppsa-qcard--hex .qc2-a{background:repeating-linear-gradient(60deg,color-mix(in srgb,var(--qc-accent) 32%,transparent) 0 .22mm,transparent .22mm 3.6mm),repeating-linear-gradient(-60deg,color-mix(in srgb,var(--qc-accent) 32%,transparent) 0 .22mm,transparent .22mm 3.6mm),repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 32%,transparent) 0 .22mm,transparent .22mm 6.24mm)}
.ppsa-qcard--triangles .qc2-a{background:conic-gradient(from 45deg at 50% 50%,color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 25%,transparent 0 50%,color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 75%,transparent 0) 0 0/4.4mm 4.4mm}
.ppsa-qcard--scallop .qc2-a{inset:auto 0 0 0;height:16mm;background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--qc-accent) 30%,transparent) 2.4mm,transparent 2.5mm) 0 0/5mm 5mm}
.ppsa-qcard--scallop .qc2-b{inset:0 0 auto 0;height:12mm;background:radial-gradient(circle at 50% 100%,color-mix(in srgb,var(--qc-accent) 18%,transparent) 2.4mm,transparent 2.5mm) 0 100%/5mm 5mm}
.ppsa-qcard--diamond .qc2-a{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .22mm,transparent .22mm 4mm),repeating-linear-gradient(-45deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .22mm,transparent .22mm 4mm)}
.ppsa-qcard--diamond .qc2-b{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--qc-accent) 9%,transparent) 0 2mm,transparent 2mm 8mm)}
.ppsa-qcard--herringbone .qc2-a{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .8mm,transparent .8mm 2.4mm);-webkit-mask:repeating-linear-gradient(90deg,#000 0 4mm,transparent 4mm 8mm);mask:repeating-linear-gradient(90deg,#000 0 4mm,transparent 4mm 8mm)}
.ppsa-qcard--herringbone .qc2-b{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .8mm,transparent .8mm 2.4mm);-webkit-mask:repeating-linear-gradient(90deg,transparent 0 4mm,#000 4mm 8mm);mask:repeating-linear-gradient(90deg,transparent 0 4mm,#000 4mm 8mm)}
.ppsa-qcard--chevrontile .qc2-a{background:repeating-linear-gradient(60deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 1mm,transparent 1mm 3.4mm);-webkit-mask:repeating-linear-gradient(transparent 0 3mm,#000 3mm 6mm);mask:repeating-linear-gradient(transparent 0 3mm,#000 3mm 6mm)}
.ppsa-qcard--chevrontile .qc2-b{background:repeating-linear-gradient(-60deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 1mm,transparent 1mm 3.4mm);-webkit-mask:repeating-linear-gradient(#000 0 3mm,transparent 3mm 6mm);mask:repeating-linear-gradient(#000 0 3mm,transparent 3mm 6mm)}
.ppsa-qcard--basketweave .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 24%,transparent) 0 1.6mm,transparent 1.6mm 3.2mm);-webkit-mask:repeating-linear-gradient(#000 0 3.2mm,transparent 3.2mm 6.4mm);mask:repeating-linear-gradient(#000 0 3.2mm,transparent 3.2mm 6.4mm)}
.ppsa-qcard--basketweave .qc2-b{background:repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 24%,transparent) 0 1.6mm,transparent 1.6mm 3.2mm);-webkit-mask:repeating-linear-gradient(90deg,transparent 0 3.2mm,#000 3.2mm 6.4mm);mask:repeating-linear-gradient(90deg,transparent 0 3.2mm,#000 3.2mm 6.4mm)}
.ppsa-qcard--zigzag .qc2-a{inset:auto 0 0 0;height:8mm;background:repeating-linear-gradient(135deg,var(--qc-accent) 0 .8mm,transparent .8mm 2.6mm);-webkit-mask:repeating-linear-gradient(90deg,#000 0 3mm,transparent 3mm 6mm);mask:repeating-linear-gradient(90deg,#000 0 3mm,transparent 3mm 6mm)}
.ppsa-qcard--zigzag .qc2-b{inset:auto 0 0 0;height:8mm;background:repeating-linear-gradient(45deg,var(--qc-accent) 0 .8mm,transparent .8mm 2.6mm);-webkit-mask:repeating-linear-gradient(90deg,transparent 0 3mm,#000 3mm 6mm);mask:repeating-linear-gradient(90deg,transparent 0 3mm,#000 3mm 6mm)}
.ppsa-qcard--terrazzo .qc2-a{background:radial-gradient(circle,var(--qc-accent) 9%,transparent 10%) 0 0/6.2mm 5.1mm,radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 30%,transparent) 6%,transparent 7%) 3mm 2.4mm/5.1mm 4.3mm}
.ppsa-qcard--terrazzo .qc2-b{background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 45%,#e0b0a0) 7%,transparent 8%) 1.6mm 3.4mm/4.4mm 6.1mm,radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 16%,transparent) 5%,transparent 6%) 4.2mm 1mm/3.7mm 3.3mm}
.ppsa-qcard--arches .qc2-a{inset:auto 0 0 0;height:18mm;background:radial-gradient(circle at 50% 100%,color-mix(in srgb,var(--qc-accent) 28%,transparent) 0 3.6mm,transparent 3.7mm) 0 100%/8mm 8mm repeat-x}
.ppsa-qcard--arches .qc2-b{inset:auto 0 0 0;height:1mm;background:var(--qc-accent)}

/* ── GRADIENT & LIGHT ────────────────────────────────────── */
.ppsa-qcard--mesh .qc2-a{background:radial-gradient(38% 52% at 14% 20%,color-mix(in srgb,var(--qc-accent) 75%,transparent),transparent 70%),radial-gradient(42% 56% at 86% 78%,color-mix(in srgb,var(--qc-accent) 45%,#22d3ee),transparent 72%)}
.ppsa-qcard--mesh .qc2-b{background:radial-gradient(34% 44% at 62% 8%,color-mix(in srgb,var(--qc-accent) 35%,#f472b6),transparent 72%)}
.ppsa-qcard--auroraband .qc2-a{background:radial-gradient(120% 40% at 20% 12%,color-mix(in srgb,var(--qc-accent) 60%,transparent),transparent 68%)}
.ppsa-qcard--auroraband .qc2-b{background:radial-gradient(110% 34% at 84% 92%,color-mix(in srgb,var(--qc-accent) 40%,#60a5fa),transparent 70%)}
.ppsa-qcard--sunsetgrad .qc2-a{background:linear-gradient(180deg,transparent 22%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 62%,color-mix(in srgb,var(--qc-accent) 70%,transparent) 100%)}
.ppsa-qcard--sunsetgrad .qc2-b{inset:auto 0 -12mm 0;height:30mm;background:radial-gradient(circle at 50% 100%,var(--qc-accent) 0 9mm,transparent 9.2mm)}
.ppsa-qcard--duofade .qc2-a{background:linear-gradient(128deg,var(--qc-accent) 0%,color-mix(in srgb,var(--qc-accent) 35%,transparent) 34%,transparent 62%)}
.ppsa-qcard--glowedge .qc2-a{box-shadow:inset 0 0 8mm color-mix(in srgb,var(--qc-accent) 40%,transparent),inset 0 0 1.2mm color-mix(in srgb,var(--qc-accent) 80%,transparent)}
.ppsa-qcard--glowedge .qc2-b{inset:2.4mm;border:.25mm solid color-mix(in srgb,var(--qc-accent) 55%,transparent);border-radius:2mm}
.ppsa-qcard--iridescent .qc2-a{background:conic-gradient(from 200deg at 30% 110%,color-mix(in srgb,var(--qc-accent) 70%,transparent),#22d3ee,color-mix(in srgb,var(--qc-accent) 60%,#f472b6),#fbbf24,color-mix(in srgb,var(--qc-accent) 70%,transparent));opacity:.42}
.ppsa-qcard--spotlight .qc2-a{background:radial-gradient(70% 90% at 50% -12%,color-mix(in srgb,var(--qc-accent) 55%,transparent),transparent 66%)}
.ppsa-qcard--spotlight .qc2-b{background:conic-gradient(from 250deg at 50% -10%,transparent 0 12%,color-mix(in srgb,var(--qc-accent) 18%,transparent) 14%,transparent 16%,transparent 30%,color-mix(in srgb,var(--qc-accent) 14%,transparent) 32%,transparent 34%)}
.ppsa-qcard--washband .qc2-a{background:linear-gradient(180deg,transparent 44%,color-mix(in srgb,var(--qc-accent) 26%,transparent) 100%)}
.ppsa-qcard--washband .qc2-b{inset:auto 0 0 0;height:.5mm;background:var(--qc-accent)}
.ppsa-qcard--vapor .qc2-a{background:conic-gradient(from 40deg at 12% 90%,transparent,color-mix(in srgb,var(--qc-accent) 60%,transparent),transparent 55%)}
.ppsa-qcard--vapor .qc2-b{background:conic-gradient(from 200deg at 92% 10%,transparent,color-mix(in srgb,var(--qc-accent) 40%,#7c3aed),transparent 50%)}
.ppsa-qcard--dawnmesh .qc2-a{background:radial-gradient(40% 60% at 10% 90%,color-mix(in srgb,var(--qc-accent) 55%,transparent),transparent 70%),radial-gradient(46% 52% at 92% 14%,color-mix(in srgb,var(--qc-accent) 32%,#fbbf24),transparent 72%)}
.ppsa-qcard--dawnmesh .qc2-b{background:radial-gradient(30% 40% at 58% 96%,color-mix(in srgb,var(--qc-accent) 30%,#f472b6),transparent 74%)}

/* ── MEMPHIS & PLAY ──────────────────────────────────────── */
.ppsa-qcard--squiggle .qc2-a{inset:auto 0 5mm 0;height:6mm;background:repeating-radial-gradient(circle at 50% 0,transparent 0 2.4mm,var(--qc-accent) 2.4mm 2.9mm,transparent 2.9mm) 0 0/6mm 3mm;opacity:.85}
.ppsa-qcard--squiggle .qc2-b{inset:5mm 5mm auto auto;width:3.2mm;height:3.2mm;border-radius:50%;background:var(--qc-accent)}
.ppsa-qcard--confetti .qc2-a{background:linear-gradient(35deg,var(--qc-accent) 0 0) 6mm 8mm/2.6mm .9mm no-repeat,linear-gradient(-25deg,var(--qc-accent) 0 0) 70mm 12mm/2.4mm .9mm no-repeat,linear-gradient(70deg,var(--qc-accent) 0 0) 20mm 44mm/2.8mm .9mm no-repeat}
.ppsa-qcard--confetti .qc2-b{background:radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 55%,transparent) 50%,transparent 51%) 78mm 40mm/1.8mm 1.8mm no-repeat,radial-gradient(circle,var(--qc-accent) 50%,transparent 51%) 12mm 20mm/1.4mm 1.4mm no-repeat,radial-gradient(circle,color-mix(in srgb,var(--qc-ink) 40%,transparent) 50%,transparent 51%) 62mm 6mm/1.6mm 1.6mm no-repeat}
.ppsa-qcard--blobs .qc2-a{inset:auto auto -8mm -8mm;width:30mm;height:26mm;border-radius:58% 42% 38% 62%/48% 62% 38% 52%;background:color-mix(in srgb,var(--qc-accent) 26%,transparent)}
.ppsa-qcard--blobs .qc2-b{inset:-9mm -9mm auto auto;width:24mm;height:22mm;border-radius:42% 58% 62% 38%/58% 38% 62% 42%;background:color-mix(in srgb,var(--qc-accent) 16%,transparent)}
.ppsa-qcard--primitives .qc2-a{inset:auto auto 4mm 4mm;width:6mm;height:6mm;border-radius:50%;background:var(--qc-accent)}
.ppsa-qcard--primitives .qc2-b{inset:4mm 4mm auto auto;width:6mm;height:6mm;background:color-mix(in srgb,var(--qc-ink) 85%,transparent)}
.ppsa-qcard--primitives .qc2-c{inset:auto 5mm 4mm auto;width:0;height:0;border-left:3.4mm solid transparent;border-right:3.4mm solid transparent;border-bottom:6mm solid color-mix(in srgb,var(--qc-accent) 70%,transparent)}
.ppsa-qcard--arcpair .qc2-a{inset:auto auto -10mm -10mm;width:26mm;height:26mm;border-radius:50%;border:1.6mm solid var(--qc-accent)}
.ppsa-qcard--arcpair .qc2-b{inset:-10mm -10mm auto auto;width:22mm;height:22mm;border-radius:50%;border:.8mm solid color-mix(in srgb,var(--qc-accent) 50%,transparent)}
.ppsa-qcard--checker .qc2-a{inset:auto 0 0 0;height:6mm;background:conic-gradient(var(--qc-accent) 0 25%,transparent 0 50%,var(--qc-accent) 0 75%,transparent 0) 0 0/3mm 3mm}
.ppsa-qcard--checker .qc2-b{inset:0 0 auto 0;height:1.2mm;background:var(--qc-accent)}
.ppsa-qcard--starburst .qc2-a{background:conic-gradient(from 0deg at 50% 118%,transparent 0 3%,color-mix(in srgb,var(--qc-accent) 40%,transparent) 3% 6%,transparent 6% 9%);-webkit-mask:linear-gradient(transparent 20%,#000);mask:linear-gradient(transparent 20%,#000)}
.ppsa-qcard--bounce .qc2-a{inset:auto 0 4mm 0;height:10mm;background:radial-gradient(circle,var(--qc-accent) 48%,transparent 50%) 5mm 5mm/5mm 5mm no-repeat,radial-gradient(circle,var(--qc-accent) 48%,transparent 50%) 12mm 3mm/4mm 4mm no-repeat,radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 60%,transparent) 48%,transparent 50%) 18mm 1.5mm/3mm 3mm no-repeat,radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 40%,transparent) 48%,transparent 50%) 23mm .5mm/2mm 2mm no-repeat}
.ppsa-qcard--sticker .qc2-a{inset:2.4mm;border:1.4mm solid var(--qc-accent);border-radius:4mm}
.ppsa-qcard--sticker .qc2-b{inset:4.4mm;border:.3mm solid color-mix(in srgb,var(--qc-ink) 25%,transparent);border-radius:3mm}
.ppsa-qcard--grain .qc2-a{background:repeating-conic-gradient(color-mix(in srgb,var(--qc-ink) 8%,transparent) 0 25%,transparent 0 50%) 0 0/.5mm .5mm;opacity:.7}
.ppsa-qcard--grain .qc2-b{inset:auto 0 0 0;height:4mm;background:var(--qc-accent)}

/* ── EDITORIAL MODERN ────────────────────────────────────── */
.ppsa-qcard--bigrule .qc2-a{inset:0 0 auto 0;height:5mm;background:var(--qc-accent)}
.ppsa-qcard--bigrule .qc2-b{inset:auto 0 0 0;height:1mm;background:color-mix(in srgb,var(--qc-ink) 80%,transparent)}
.ppsa-qcard--asymblock .qc2-a{inset:0 auto 0 0;width:16mm;background:color-mix(in srgb,var(--qc-accent) 16%,transparent)}
.ppsa-qcard--asymblock .qc2-b{inset:0 auto 0 16mm;width:.5mm;background:var(--qc-accent)}
.ppsa-qcard--asymblock .ppsa-qcard__inner{padding-left:21mm}
.ppsa-qcard--masthead .qc2-a{inset:5mm 5mm auto 5mm;height:1.4mm;background:var(--qc-accent);box-shadow:0 2.2mm 0 color-mix(in srgb,var(--qc-ink) 70%,transparent)}
.ppsa-qcard--masthead .qc2-b{inset:auto 5mm 5mm 5mm;height:.3mm;background:color-mix(in srgb,var(--qc-ink) 45%,transparent)}
.ppsa-qcard--captionbar .qc2-a{inset:auto 0 0 0;height:8mm;background:color-mix(in srgb,var(--qc-ink) 10%,transparent)}
.ppsa-qcard--captionbar .qc2-b{inset:auto auto 3.4mm 5mm;width:6mm;height:1.2mm;background:var(--qc-accent)}
.ppsa-qcard--captionbar .ppsa-qcard__inner{padding-bottom:12mm}
.ppsa-qcard--numeral .qc2-a{inset:auto -3mm -6mm auto;width:34mm;height:34mm;background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 18%,transparent) 46%,transparent 47%)}
.ppsa-qcard--numeral .qc2-b{inset:auto 5mm 5mm auto;width:9mm;height:9mm;border:.5mm solid var(--qc-accent);border-radius:50%}
.ppsa-qcard--rulestack .qc2-a{inset:auto 6mm 6mm 6mm;height:4mm;background:linear-gradient(var(--qc-accent),var(--qc-accent)) 0 0/100% 1.2mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 0 2mm/60% .6mm no-repeat,linear-gradient(var(--qc-accent),var(--qc-accent)) 0 3.4mm/30% .3mm no-repeat}
.ppsa-qcard--rulestack .ppsa-qcard__inner{padding-bottom:13mm}
.ppsa-qcard--inksidebar .qc2-a{inset:0 0 0 auto;width:14mm;background:color-mix(in srgb,var(--qc-ink) 92%,transparent)}
.ppsa-qcard--inksidebar .qc2-b{inset:auto 4mm 5mm auto;width:6mm;height:.8mm;background:var(--qc-accent)}
.ppsa-qcard--inksidebar .ppsa-qcard__inner{padding-right:19mm}
.ppsa-qcard--pullquote .qc2-a{inset:2mm auto auto 3mm;width:16mm;height:16mm;background:radial-gradient(circle at 30% 40%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 2.6mm,transparent 2.7mm),radial-gradient(circle at 70% 40%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 2.6mm,transparent 2.7mm)}
.ppsa-qcard--dateline .qc2-a{inset:auto 0 8mm 0;height:.35mm;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--qc-ink) 45%,transparent) 12%,color-mix(in srgb,var(--qc-ink) 45%,transparent) 40%,transparent 44%,transparent 56%,color-mix(in srgb,var(--qc-ink) 45%,transparent) 60%,color-mix(in srgb,var(--qc-ink) 45%,transparent) 88%,transparent)}
.ppsa-qcard--dateline .qc2-b{inset:auto auto 7.2mm 50%;margin-left:-.9mm;width:1.8mm;height:1.8mm;transform:rotate(45deg);background:var(--qc-accent)}
.ppsa-qcard--tabloid .qc2-a{inset:0 0 auto 0;height:4mm;background:color-mix(in srgb,var(--qc-ink) 92%,transparent)}
.ppsa-qcard--tabloid .qc2-b{inset:auto 0 0 0;height:4mm;background:color-mix(in srgb,var(--qc-ink) 92%,transparent)}

/* ── TECH & DATA ─────────────────────────────────────────── */
.ppsa-qcard--circuitry .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .22mm,transparent .22mm 5mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 .22mm,transparent .22mm 5mm);-webkit-mask:linear-gradient(215deg,#000 6%,transparent 62%);mask:linear-gradient(215deg,#000 6%,transparent 62%)}
.ppsa-qcard--circuitry .qc2-b{background:radial-gradient(circle,var(--qc-accent) 32%,transparent 33%) 0 0/5mm 5mm;-webkit-mask:linear-gradient(215deg,#000 2%,transparent 48%);mask:linear-gradient(215deg,#000 2%,transparent 48%)}
.ppsa-qcard--waveform .qc2-a{inset:auto 0 0 0;height:12mm;background:repeating-linear-gradient(90deg,var(--qc-accent) 0 .5mm,transparent .5mm 1.4mm);-webkit-mask:radial-gradient(60% 100% at 50% 100%,#000 20%,transparent 76%);mask:radial-gradient(60% 100% at 50% 100%,#000 20%,transparent 76%)}
.ppsa-qcard--waveform .qc2-b{inset:auto 0 5.8mm 0;height:.3mm;background:color-mix(in srgb,var(--qc-accent) 60%,transparent)}
.ppsa-qcard--rain .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 45%,transparent) 0 .35mm,transparent .35mm 2.2mm);-webkit-mask:linear-gradient(#000,transparent 82%);mask:linear-gradient(#000,transparent 82%)}
.ppsa-qcard--rain .qc2-b{background:repeating-linear-gradient(90deg,transparent 0 1.1mm,color-mix(in srgb,var(--qc-accent) 22%,transparent) 1.1mm 1.45mm,transparent 1.45mm 2.2mm);-webkit-mask:linear-gradient(transparent 30%,#000);mask:linear-gradient(transparent 30%,#000)}
.ppsa-qcard--qrmotif .qc2-a{inset:auto 4mm 4mm auto;width:16mm;height:16mm;background:repeating-conic-gradient(color-mix(in srgb,var(--qc-ink) 82%,transparent) 0 25%,transparent 0 50%) 0 0/2mm 2mm;opacity:.26}
.ppsa-qcard--qrmotif .qc2-b{inset:auto 4mm 4mm auto;width:5mm;height:5mm;border:1mm solid var(--qc-accent)}
.ppsa-qcard--scanline .qc2-a{background:repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 14%,transparent) 0 .3mm,transparent .3mm 1.2mm)}
.ppsa-qcard--scanline .qc2-b{inset:auto 0 14mm 0;height:1.2mm;background:linear-gradient(90deg,transparent,var(--qc-accent),transparent);opacity:.85}
.ppsa-qcard--prompt .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 12%,transparent) 0 .2mm,transparent .2mm 2.4mm),repeating-linear-gradient(color-mix(in srgb,var(--qc-accent) 12%,transparent) 0 .2mm,transparent .2mm 2.4mm)}
.ppsa-qcard--prompt .qc2-b{inset:4.4mm auto auto 4.4mm;width:2.2mm;height:3.2mm;background:var(--qc-accent);box-shadow:3.4mm 0 0 color-mix(in srgb,var(--qc-accent) 45%,transparent),6.2mm 0 0 color-mix(in srgb,var(--qc-accent) 25%,transparent)}
.ppsa-qcard--prompt .ppsa-qcard__inner{padding-top:11mm;justify-content:flex-start}
.ppsa-qcard--prompt.ppsa-qcard--back .ppsa-qcard__inner{padding-top:4mm;justify-content:center}
.ppsa-qcard--network .qc2-a{background:radial-gradient(circle,var(--qc-accent) 16%,transparent 17%) 0 0/7mm 6mm}
.ppsa-qcard--network .qc2-b{background:repeating-linear-gradient(35deg,color-mix(in srgb,var(--qc-accent) 22%,transparent) 0 .2mm,transparent .2mm 6.6mm),repeating-linear-gradient(-35deg,color-mix(in srgb,var(--qc-accent) 16%,transparent) 0 .2mm,transparent .2mm 6.6mm)}
.ppsa-qcard--binary .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .9mm,transparent .9mm 1.6mm,color-mix(in srgb,var(--qc-accent) 30%,transparent) 1.6mm 1.9mm,transparent 1.9mm 3.2mm);-webkit-mask:repeating-linear-gradient(#000 0 1.2mm,transparent 1.2mm 2.4mm);mask:repeating-linear-gradient(#000 0 1.2mm,transparent 1.2mm 2.4mm);opacity:.5}
.ppsa-qcard--radar .qc2-a{background:repeating-radial-gradient(circle at 50% 50%,transparent 0 3.4mm,color-mix(in srgb,var(--qc-accent) 35%,transparent) 3.4mm 3.6mm)}
.ppsa-qcard--radar .qc2-b{background:conic-gradient(from 210deg at 50% 50%,color-mix(in srgb,var(--qc-accent) 40%,transparent),transparent 26%)}
.ppsa-qcard--silicon .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 22%,transparent) 0 .3mm,transparent .3mm 1.8mm);-webkit-mask:repeating-linear-gradient(#000 0 3.6mm,transparent 3.6mm 7.2mm);mask:repeating-linear-gradient(#000 0 3.6mm,transparent 3.6mm 7.2mm)}
.ppsa-qcard--silicon .qc2-b{inset:5mm;border:.4mm solid color-mix(in srgb,var(--qc-accent) 55%,transparent);border-radius:.8mm;box-shadow:inset 0 0 0 1.6mm color-mix(in srgb,var(--qc-bg) 70%,transparent)}

/* ── NATURE & ORGANIC ────────────────────────────────────── */
.ppsa-qcard--ridge .qc2-a{inset:auto 0 0 0;height:20mm;background:conic-gradient(from 135deg at 22% 100%,transparent 0 25%,color-mix(in srgb,var(--qc-accent) 32%,transparent) 0 50%,transparent 0)}
.ppsa-qcard--ridge .qc2-b{inset:auto 0 0 0;height:14mm;background:conic-gradient(from 135deg at 66% 100%,transparent 0 25%,color-mix(in srgb,var(--qc-accent) 55%,transparent) 0 50%,transparent 0)}
.ppsa-qcard--tide .qc2-a{inset:auto 0 0 0;height:16mm;background:radial-gradient(circle at 50% 100%,color-mix(in srgb,var(--qc-accent) 28%,transparent) 0 8mm,transparent 8.2mm) 0 100%/16mm 16mm repeat-x}
.ppsa-qcard--tide .qc2-b{inset:auto 0 0 0;height:9mm;background:radial-gradient(circle at 50% 100%,color-mix(in srgb,var(--qc-accent) 50%,transparent) 0 6mm,transparent 6.2mm) 4mm 100%/12mm 12mm repeat-x}
.ppsa-qcard--rays .qc2-a{background:conic-gradient(from 190deg at 50% 116%,transparent 0 2%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 2% 5%,transparent 5% 7%);-webkit-mask:linear-gradient(transparent 8%,#000 70%);mask:linear-gradient(transparent 8%,#000 70%)}
.ppsa-qcard--rays .qc2-b{inset:auto 0 -9mm 0;height:22mm;background:radial-gradient(circle at 50% 100%,var(--qc-accent) 0 7mm,transparent 7.2mm);opacity:.5}
.ppsa-qcard--growthrings .qc2-a{background:repeating-radial-gradient(ellipse 26mm 22mm at 88% 14%,transparent 0 1.1mm,color-mix(in srgb,var(--qc-accent) 30%,transparent) 1.1mm 1.35mm)}
.ppsa-qcard--foliage .qc2-a{inset:auto -6mm -6mm auto;width:30mm;height:30mm;border-radius:0 100% 0 100%;border:.6mm solid color-mix(in srgb,var(--qc-accent) 55%,transparent)}
.ppsa-qcard--foliage .qc2-b{inset:auto -2mm -2mm auto;width:20mm;height:20mm;border-radius:0 100% 0 100%;background:color-mix(in srgb,var(--qc-accent) 14%,transparent)}
.ppsa-qcard--marbleveins .qc2-a{background:repeating-linear-gradient(72deg,transparent 0 5mm,color-mix(in srgb,var(--qc-accent) 26%,transparent) 5mm 5.3mm,transparent 5.3mm 9mm),repeating-linear-gradient(58deg,transparent 0 8mm,color-mix(in srgb,var(--qc-ink) 12%,transparent) 8mm 8.2mm,transparent 8.2mm 14mm)}
.ppsa-qcard--marbleveins .qc2-b{background:radial-gradient(60% 70% at 20% 20%,color-mix(in srgb,var(--qc-ink) 6%,transparent),transparent 70%)}
.ppsa-qcard--dunes .qc2-a{inset:auto 0 0 0;height:22mm;background:radial-gradient(ellipse 60% 100% at 20% 100%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 60%,transparent 62%)}
.ppsa-qcard--dunes .qc2-b{inset:auto 0 0 0;height:14mm;background:radial-gradient(ellipse 70% 100% at 78% 100%,color-mix(in srgb,var(--qc-accent) 50%,transparent) 60%,transparent 62%)}
.ppsa-qcard--starfield .qc2-a{background:radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 90%,transparent) 40%,transparent 41%) 0 0/4.3mm 3.7mm,radial-gradient(circle,color-mix(in srgb,var(--qc-accent) 50%,transparent) 30%,transparent 31%) 2mm 1.8mm/3.1mm 2.9mm;opacity:.5}
.ppsa-qcard--starfield .qc2-b{background:radial-gradient(46% 56% at 78% 22%,color-mix(in srgb,var(--qc-accent) 26%,transparent),transparent 72%)}
.ppsa-qcard--canopy .qc2-a{inset:-10mm 0 auto 0;height:26mm;background:radial-gradient(circle at 20% 100%,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 8mm,transparent 8.2mm),radial-gradient(circle at 55% 100%,color-mix(in srgb,var(--qc-accent) 20%,transparent) 0 10mm,transparent 10.2mm),radial-gradient(circle at 88% 100%,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 7mm,transparent 7.2mm)}
.ppsa-qcard--meander .qc2-a{inset:auto 0 0 0;height:18mm;background:repeating-radial-gradient(circle at 50% 0,transparent 0 6mm,color-mix(in srgb,var(--qc-accent) 34%,transparent) 6mm 7.6mm,transparent 7.6mm) 0 0/16mm 16mm}
.ppsa-qcard--meander .qc2-b{inset:auto 0 0 0;height:.5mm;background:color-mix(in srgb,var(--qc-accent) 70%,transparent)}

/* ── LUXE MODERN ─────────────────────────────────────────── */
.ppsa-qcard--foilmesh .qc2-a{background:radial-gradient(40% 60% at 18% 22%,color-mix(in srgb,var(--qc-accent) 45%,transparent),transparent 70%),radial-gradient(46% 54% at 84% 82%,color-mix(in srgb,var(--qc-accent) 28%,transparent),transparent 72%)}
.ppsa-qcard--foilmesh .qc2-b{inset:3mm;border:.3mm solid color-mix(in srgb,var(--qc-accent) 65%,transparent);border-radius:2mm}
.ppsa-qcard--guillocherose .qc2-a{background:repeating-radial-gradient(circle at 50% 50%,transparent 0 1.4mm,color-mix(in srgb,var(--qc-accent) 34%,transparent) 1.4mm 1.55mm)}
.ppsa-qcard--guillocherose .qc2-b{background:repeating-radial-gradient(circle at 22% 76%,transparent 0 1.8mm,color-mix(in srgb,var(--qc-accent) 22%,transparent) 1.8mm 1.95mm),repeating-radial-gradient(circle at 80% 22%,transparent 0 1.6mm,color-mix(in srgb,var(--qc-accent) 18%,transparent) 1.6mm 1.75mm)}
.ppsa-qcard--onyx .qc2-a{background:repeating-linear-gradient(76deg,transparent 0 6mm,color-mix(in srgb,var(--qc-accent) 40%,transparent) 6mm 6.25mm,transparent 6.25mm 11mm),repeating-linear-gradient(62deg,transparent 0 9mm,color-mix(in srgb,var(--qc-accent) 18%,transparent) 9mm 9.2mm,transparent 9.2mm 16mm)}
.ppsa-qcard--onyx .qc2-b{inset:2.6mm;border:.25mm solid color-mix(in srgb,var(--qc-accent) 45%,transparent);border-radius:2mm}
.ppsa-qcard--savile .qc2-a{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 30%,transparent) 0 .2mm,transparent .2mm 2mm)}
.ppsa-qcard--savile .qc2-b{inset:auto 6mm 6mm 6mm;height:.6mm;background:linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 60%,#000),var(--qc-accent) 40%,color-mix(in srgb,var(--qc-accent) 40%,#fff) 55%,var(--qc-accent) 70%,color-mix(in srgb,var(--qc-accent) 60%,#000))}
.ppsa-qcard--damask .qc2-a{background:radial-gradient(circle at 50% 0,transparent 0 2.2mm,color-mix(in srgb,var(--qc-accent) 26%,transparent) 2.2mm 2.5mm,transparent 2.5mm) 0 0/6mm 6mm,radial-gradient(circle at 50% 100%,transparent 0 2.2mm,color-mix(in srgb,var(--qc-accent) 26%,transparent) 2.2mm 2.5mm,transparent 2.5mm) 3mm 3mm/6mm 6mm}
.ppsa-qcard--artdeco .qc2-a{inset:auto 0 0 0;height:12mm;background:conic-gradient(from 180deg at 50% 100%,transparent 0 2%,var(--qc-accent) 2% 4%,transparent 4% 8%);opacity:.7}
.ppsa-qcard--artdeco .qc2-b{inset:auto 0 12.4mm 0;height:.5mm;background:var(--qc-accent);box-shadow:0 -1.2mm 0 color-mix(in srgb,var(--qc-accent) 45%,transparent)}
.ppsa-qcard--artdeco .ppsa-qcard__inner{padding-bottom:16mm}
.ppsa-qcard--crest .qc2-a{inset:3mm auto auto 50%;margin-left:-7mm;width:14mm;height:16mm;border:.5mm solid var(--qc-accent);border-radius:0 0 7mm 7mm;opacity:.5}
.ppsa-qcard--crest .qc2-b{inset:auto 8mm 5mm 8mm;height:.35mm;background:var(--qc-accent)}
.ppsa-qcard--velvet .qc2-a{background:radial-gradient(75% 90% at 50% 0,color-mix(in srgb,var(--qc-accent) 30%,transparent),transparent 72%),repeating-linear-gradient(90deg,color-mix(in srgb,var(--qc-ink) 5%,transparent) 0 .3mm,transparent .3mm 1.1mm)}
.ppsa-qcard--velvet .qc2-b{inset:0 0 auto 0;height:.8mm;background:linear-gradient(90deg,transparent,var(--qc-accent),transparent)}
.ppsa-qcard--platinum .qc2-a{background:repeating-linear-gradient(92deg,color-mix(in srgb,var(--qc-ink) 8%,transparent) 0 .2mm,transparent .2mm .9mm),linear-gradient(105deg,color-mix(in srgb,var(--qc-accent) 25%,transparent),transparent 40%,color-mix(in srgb,var(--qc-accent) 18%,transparent) 62%,transparent)}
.ppsa-qcard--platinum .qc2-b{inset:auto 0 0 0;height:2.4mm;background:linear-gradient(90deg,color-mix(in srgb,var(--qc-accent) 70%,#000),var(--qc-accent) 35%,color-mix(in srgb,var(--qc-accent) 35%,#fff) 52%,var(--qc-accent) 68%,color-mix(in srgb,var(--qc-accent) 70%,#000))}
.ppsa-qcard--obsidian .qc2-a{background:conic-gradient(from 140deg at 30% 20%,color-mix(in srgb,var(--qc-accent) 26%,transparent) 0 12%,transparent 12% 30%,color-mix(in srgb,var(--qc-accent) 16%,transparent) 30% 42%,transparent 42% 68%,color-mix(in srgb,var(--qc-accent) 22%,transparent) 68% 80%,transparent 80%)}
.ppsa-qcard--obsidian .qc2-b{inset:auto 0 0 0;height:.5mm;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--qc-accent) 90%,#fff),transparent)}

/* ============================================================
   0.99.790 — la tarjeta manda sobre el tema que la rodea
   ------------------------------------------------------------
   El estudio vive dentro del panel y la tarjeta es HTML normal:
   un `h1{color}` o un `font-family` del tema le ganaba por
   especificidad y el nombre salía negro o en otra letra. Estas
   reglas atan tipografía y color a las variables de la tarjeta.
   ============================================================ */
.ppsa-qcard,
.ppsa-qcard .ppsa-qcard__inner,
.ppsa-qcard .ppsa-qcard__name,
.ppsa-qcard .ppsa-qcard__sub,
.ppsa-qcard .ppsa-qcard__contacts,
.ppsa-qcard .ppsa-qcard__contacts li,
.ppsa-qcard .ppsa-qcard__url,
.ppsa-qcard .ppsa-qcard__mono {
	font-family: var(--qc-font, system-ui, -apple-system, "Segoe UI", sans-serif);
}
.ppsa-qcard .ppsa-qcard__sub,
.ppsa-qcard .ppsa-qcard__contacts,
.ppsa-qcard .ppsa-qcard__contacts li,
.ppsa-qcard .ppsa-qcard__url {
	color: var(--qc-ink);
}
.ppsa-qcard .ppsa-qcard__name {
	color: var(--qc-name, var(--qc-ink));
}
/* Elegir color de nombre apaga el foil del diseño: si no, el degradado
   recortado sobre el texto seguiría tapando el color elegido. */
.ppsa-qcard.ppsa-qcard--nameflat .ppsa-qcard__name {
	background-image: none !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	color: var(--qc-name, var(--qc-ink)) !important;
	-webkit-text-fill-color: var(--qc-name, var(--qc-ink));
}
.ppsa-qcard .ppsa-qcard__agency,
.ppsa-qcard .ppsa-qcard__hint {
	color: var(--qc-accent);
}
/* Los diseños que pintan el nombre con foil o con el acento siguen mandando
   sobre la regla de arriba: se declaran después y con la misma raíz. */
.ppsa-qcard.ppsa-qcard--circuit .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--geo .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--matrix .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--matrix .ppsa-qcard__agency {
	color: var(--qc-accent);
}
.ppsa-qcard.ppsa-qcard--classic .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--bold .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--ribbon .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--editorial .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--luxe .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--aurora .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--mono .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--stamp .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--folio .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--hairline .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--grid .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--minimal .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--noir .ppsa-qcard__name,
.ppsa-qcard.ppsa-qcard--split .ppsa-qcard__name {
	color: transparent;
}

/* ============================================================
   Impresión: los fondos son el diseño, no decoración
   ------------------------------------------------------------
   Chrome descarta fondos e imágenes de fondo salvo que marques
   «Gráficos de fondo». Sin esto el PDF salía en blanco: se perdía
   el color de la tarjeta, los patrones y el foil del nombre — que
   al ser `background-clip:text` dejaba el nombre invisible.
   ============================================================ */
.ppsa-qcard,
.ppsa-qcard * {
	-webkit-print-color-adjust: exact !important;
	print-color-adjust: exact !important;
}
