:root {
	--d35-ai-icon-h: 40px;
	--d35-ai-icon-w: 126px;

	--d35-ai-icon-max: 40%;
	--d35-ai-scale: 1;

	--d35-ai-pad-t: 0px;
	--d35-ai-pad-r: 0px;
	--d35-ai-pad-b: 0px;
	--d35-ai-pad-l: 0px;
	--d35-ai-offset: 12px;
}

:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="generated"], img[data-d35-ai="modified"]) {
	position: relative;
}

:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="generated"], img[data-d35-ai="modified"]):not(.d35-has-ai)::after {
	content: "";

	position: absolute;
	z-index: 5;

	width: min( calc( var(--d35-ai-icon-w) * var(--d35-ai-scale) ), var(--d35-ai-icon-max) );
	aspect-ratio: 1789.84 / 566.93;

	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	pointer-events: none;
}

:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="generated"][data-d35-ai-variant="black"]):not(.d35-has-ai)::after { background-image: var(--d35-ai-icon-generated-black); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="generated"][data-d35-ai-variant="white"]):not(.d35-has-ai)::after { background-image: var(--d35-ai-icon-generated-white); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="modified"][data-d35-ai-variant="black"]):not(.d35-has-ai)::after  { background-image: var(--d35-ai-icon-modified-black); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="modified"][data-d35-ai-variant="white"]):not(.d35-has-ai)::after  { background-image: var(--d35-ai-icon-modified-white); }

.d35-ai-linked :is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai="generated"], img[data-d35-ai="modified"])::after {
	content: none;
}

:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-size="small"]) { --d35-ai-scale: 0.88; --d35-ai-icon-max: 36%; }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-size="large"]) { --d35-ai-scale: 1.5; --d35-ai-icon-max: 48%; }

.d35-ai-badge--size-small { --d35-ai-scale: 0.88; --d35-ai-icon-max: 36%; }
.d35-ai-badge--size-large { --d35-ai-scale: 1.5; --d35-ai-icon-max: 48%; }

:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="top-left"]):not(.d35-has-ai)::after,
.d35-ai-badge--top-left { top: calc(var(--d35-ai-offset) + var(--d35-ai-pad-t)); left: calc(var(--d35-ai-offset) + var(--d35-ai-pad-l)); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="top-center"]):not(.d35-has-ai)::after,
.d35-ai-badge--top-center { top: calc(var(--d35-ai-offset) + var(--d35-ai-pad-t)); left: 50%; transform: translateX(-50%); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="top-right"]):not(.d35-has-ai)::after,
.d35-ai-badge--top-right { top: calc(var(--d35-ai-offset) + var(--d35-ai-pad-t)); right: calc(var(--d35-ai-offset) + var(--d35-ai-pad-r)); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="middle-left"]):not(.d35-has-ai)::after,
.d35-ai-badge--middle-left { top: 50%; left: calc(var(--d35-ai-offset) + var(--d35-ai-pad-l)); transform: translateY(-50%); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="middle-right"]):not(.d35-has-ai)::after,
.d35-ai-badge--middle-right { top: 50%; right: calc(var(--d35-ai-offset) + var(--d35-ai-pad-r)); transform: translateY(-50%); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="bottom-left"]):not(.d35-has-ai)::after,
.d35-ai-badge--bottom-left { bottom: calc(var(--d35-ai-offset) + var(--d35-ai-pad-b)); left: calc(var(--d35-ai-offset) + var(--d35-ai-pad-l)); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="bottom-center"]):not(.d35-has-ai)::after,
.d35-ai-badge--bottom-center { bottom: calc(var(--d35-ai-offset) + var(--d35-ai-pad-b)); left: 50%; transform: translateX(-50%); }
:is(figure, picture, .wp-block-image, .wp-caption, .brxe-image):has(img[data-d35-ai-pos="bottom-right"]):not(.d35-has-ai)::after,
.d35-ai-badge--bottom-right { bottom: calc(var(--d35-ai-offset) + var(--d35-ai-pad-b)); right: calc(var(--d35-ai-offset) + var(--d35-ai-pad-r)); }

.d35-has-ai {
	position: relative;
}

.d35-ai-badge {
	position: absolute;
	z-index: 5;

	display: block;
	width: min( calc( var(--d35-ai-icon-w) * var(--d35-ai-scale) ), var(--d35-ai-icon-max) );
	aspect-ratio: 1789.84 / 566.93;

	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	text-indent: -9999px;
	overflow: hidden;
	pointer-events: none;
}

a.d35-ai-badge {
	pointer-events: auto;
}

a.d35-ai-badge:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.d35-ai-badge--generated { background-image: var(--d35-ai-icon-generated-black); }
.d35-ai-badge--modified  { background-image: var(--d35-ai-icon-modified-black); }
.d35-ai-badge--generated.d35-ai-badge--v-white { background-image: var(--d35-ai-icon-generated-white); }
.d35-ai-badge--modified.d35-ai-badge--v-white  { background-image: var(--d35-ai-icon-modified-white); }
.d35-ai-badge--bottom-left  { bottom: var(--d35-ai-offset); left: var(--d35-ai-offset); }
.d35-ai-badge--top-left     { top: var(--d35-ai-offset); left: var(--d35-ai-offset); }
.d35-ai-badge--top-right    { top: var(--d35-ai-offset); right: var(--d35-ai-offset); }

.d35-ai-notice {
	display: flex;
	align-items: center;
	gap: 10px;

	margin: 1.5em 0;
	padding: 10px 14px;

	border-left: 3px solid currentColor;
	border-radius: 3px;
	background: rgba(124, 58, 237, 0.06);
	color: #4c1d95;

	font-size: 0.875em;
	line-height: 1.5;
}

.d35-ai-notice--assisted {
	background: rgba(153, 104, 0, 0.07);
	color: #7a4f00;
}

.d35-ai-notice svg {
	flex: 0 0 auto;
}

.d35-ai-notice a {
	color: inherit;
}

@media print {
	.d35-ai-badge,
	:is(figure, picture, .wp-block-image, .brxe-image):has(img[data-d35-ai="generated"], img[data-d35-ai="modified"])::after {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
}
