.datumvale-site-main,
.datumvale-home-puzzles {
	box-sizing: border-box;
	width: min(1180px, calc(100% - 32px));
	margin: 48px auto;
	color: #172033;
}

.datumvale-site-main *,
.datumvale-home-puzzles * {
	box-sizing: border-box;
}

.datumvale-archive-header {
	max-width: 720px;
	margin-bottom: 32px;
}

.datumvale-category-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 30px;
}

.datumvale-category-nav a {
	padding: 9px 13px;
	border: 1px solid #d9deea;
	border-radius: 999px;
	background: #fff;
	color: #3159c9;
	font-size: 0.88rem;
	font-weight: 750;
	text-decoration: none;
}

.datumvale-category-nav a:hover,
.datumvale-category-nav a.is-current {
	border-color: #3159c9;
	background: #3159c9;
	color: #fff;
}

.datumvale-archive-header h1,
.datumvale-puzzle-header h1 {
	margin: 0 0 12px;
	font-size: clamp(2rem, 5vw, 3.5rem);
	line-height: 1.08;
}

.datumvale-archive-header p {
	margin: 0;
	color: #5d6678;
	font-size: 1.08rem;
}

.datumvale-section-heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 24px;
}

.datumvale-section-heading h2 {
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
}

.datumvale-section-heading a,
.datumvale-back a {
	color: #3159c9;
	font-weight: 700;
	text-decoration: none;
}

.datumvale-puzzle-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.datumvale-puzzle-grid--count-1 {
	grid-template-columns: minmax(0, 380px);
	justify-content: center;
}

.datumvale-puzzle-grid--count-2 {
	grid-template-columns: repeat(2, minmax(0, 380px));
	justify-content: center;
}

.datumvale-home-grid {
	width: 100%;
	margin-top: 28px;
}

.datumvale-home-grid-link {
	margin: 22px 0 0;
	text-align: center;
}

.datumvale-home-grid-link a {
	color: #3159c9;
	font-weight: 700;
	text-decoration: none;
}

.datumvale-puzzle-card {
	overflow: hidden;
	margin: 0;
	border: 1px solid #e3e6ed;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(27, 39, 70, 0.07);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.datumvale-puzzle-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 36px rgba(27, 39, 70, 0.12);
}

.datumvale-card-image {
	display: flex;
	aspect-ratio: 1 / 1;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 12px;
	background: #f2f4f8;
}

.datumvale-card-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.datumvale-card-placeholder {
	font-size: 5rem;
	font-weight: 800;
	color: #96a0b4;
}

.datumvale-card-body {
	padding: 20px;
}

.datumvale-category,
.datumvale-difficulty,
.datumvale-puzzle-meta span,
.datumvale-puzzle-meta a {
	display: inline-flex;
	padding: 6px 10px;
	border-radius: 999px;
	background: #eef2ff;
	color: #3159c9;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.datumvale-category,
.datumvale-puzzle-meta a {
	text-decoration: none;
}

.datumvale-card-body .datumvale-category + .datumvale-difficulty {
	margin-left: 5px;
}

.datumvale-card-title {
	margin: 12px 0 18px;
	font-size: 1.35rem;
	line-height: 1.25;
}

.datumvale-card-title a {
	color: inherit;
	text-decoration: none;
}

.datumvale-card-action,
.datumvale-reveal-button,
.datumvale-secondary-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 0;
	border-radius: 10px;
	background: #3159c9;
	color: #fff;
	font: inherit;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
}

.datumvale-secondary-button {
	border: 1px solid #cbd3e5;
	background: #fff;
	color: #3159c9;
}

.datumvale-card-action:hover,
.datumvale-reveal-button:hover {
	background: #284cad;
	color: #fff;
}

.datumvale-secondary-button:hover {
	border-color: #3159c9;
	background: #f5f7ff;
}

.datumvale-single-puzzle {
	max-width: 960px;
	margin: 0 auto;
}

.datumvale-back {
	margin-bottom: 28px;
}

.datumvale-puzzle-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}

.datumvale-prompt {
	margin: 24px 0;
	padding: 22px 24px;
	border-left: 5px solid #3159c9;
	border-radius: 12px;
	background: #f6f8ff;
	font-size: clamp(1.08rem, 2.5vw, 1.3rem);
	font-weight: 650;
	line-height: 1.6;
}

.datumvale-main-image,
.datumvale-solution-image {
	margin: 28px 0;
}

.datumvale-main-image img,
.datumvale-solution-image img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	border-radius: 16px;
}

.datumvale-interactive-puzzle {
	margin: 28px 0 18px;
	padding: clamp(14px, 3vw, 24px);
	border: 1px solid #e0e5ef;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 16px 45px rgba(27, 39, 70, 0.09);
}

.datumvale-difference-progress,
.datumvale-hidden-object-progress,
.datumvale-question-set-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: fit-content;
	margin: 0 auto 12px;
	padding: 9px 15px;
	border-radius: 999px;
	background: #eef2ff;
	color: #3159c9;
}

.datumvale-question-set-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0 auto 12px;
}

.datumvale-question-set-status .datumvale-question-set-progress {
	margin: 0;
}

.datumvale-question-set-timer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 142px;
	padding: 9px 15px;
	border: 1px solid #d8deec;
	border-radius: 999px;
	background: #fff;
	color: #263147;
	font-variant-numeric: tabular-nums;
}

.datumvale-question-set-timer-label {
	font-size: 0.88rem;
	font-weight: 750;
}

.datumvale-question-set-timer-value {
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	transition: color 160ms ease;
}

.datumvale-question-set-timer.is-running .datumvale-question-set-timer-value {
	color: #198754;
}

.datumvale-question-set-timer.is-urgent {
	border-color: #dc3545;
	background: #fff1f2;
	color: #a9212f;
}

.datumvale-question-set-timer.is-urgent .datumvale-question-set-timer-value {
	color: #dc3545;
}

.datumvale-question-set-timer.is-expired {
	animation: datumvale-timer-expired 360ms ease-out;
}

.datumvale-difference-progress-label,
.datumvale-hidden-object-progress-label,
.datumvale-question-set-progress-label {
	font-size: 0.88rem;
	font-weight: 750;
}

.datumvale-difference-progress strong,
.datumvale-hidden-object-progress strong,
.datumvale-question-set-progress strong {
	font-size: 1rem;
}

.datumvale-hidden-object-list-wrap {
	margin: 0 auto 16px;
	padding: 14px 16px;
	border: 1px solid #e0e5ef;
	border-radius: 14px;
	background: #f8f9fc;
}

.datumvale-hidden-object-list-label {
	margin: 0 0 10px;
	color: #4f5b70;
	font-size: 0.86rem;
	font-weight: 800;
	text-align: center;
	text-transform: uppercase;
}

.datumvale-hidden-object-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.datumvale-hidden-object-list li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 11px;
	border: 1px solid #d9deea;
	border-radius: 999px;
	background: #fff;
	color: #263147;
	font-size: 0.9rem;
	font-weight: 750;
	line-height: 1.2;
	transition: opacity 180ms ease, background 180ms ease, color 180ms ease;
}

.datumvale-hidden-object-list li > span {
	width: 9px;
	height: 9px;
	border: 2px solid #96a0b4;
	border-radius: 50%;
}

.datumvale-hidden-object-list li.is-found {
	border-color: #b8e3ca;
	background: #eaf8f0;
	color: #137942;
	opacity: 0.72;
	text-decoration: line-through;
}

.datumvale-hidden-object-list li.is-found > span {
	border-color: #19a55a;
	background: #19a55a;
}

.datumvale-play-instruction {
	margin: 0 0 14px;
	color: #4f5b70;
	font-size: 0.96rem;
	font-weight: 700;
	text-align: center;
}

.datumvale-choice-image {
	margin: 0 auto 18px;
	overflow: hidden;
	border-radius: 16px;
	background: #f2f4f8;
}

.datumvale-choice-image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}

.datumvale-choice-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	max-width: 760px;
	margin: 0 auto;
}

.datumvale-choice-option {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 12px 16px;
	border: 2px solid #d9deea;
	border-radius: 13px;
	background: #fff;
	color: #263147;
	font: inherit;
	font-weight: 750;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
}

.datumvale-choice-option:hover:not(:disabled),
.datumvale-choice-option:focus-visible {
	border-color: #3159c9;
	background: #f5f7ff;
	transform: translateY(-1px);
}

.datumvale-choice-option:focus-visible {
	outline: 3px solid rgba(49, 89, 201, 0.24);
	outline-offset: 2px;
}

.datumvale-choice-option.is-correct {
	border-color: #19a55a;
	background: #eaf8f0;
	color: #137942;
}

.datumvale-choice-option.is-incorrect {
	border-color: #dc3545;
	background: #fff1f2;
	color: #a9212f;
	animation: datumvale-choice-shake 260ms ease-out;
}

.datumvale-choice-option:disabled {
	cursor: default;
	opacity: 0.72;
}

.datumvale-choice-option.is-correct:disabled {
	opacity: 1;
}

.datumvale-choice-explanation-button:disabled {
	cursor: not-allowed;
	opacity: 0.5;
}

.datumvale-choice-letter {
	display: inline-flex;
	flex: 0 0 34px;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #eef2ff;
	color: #3159c9;
	font-size: 0.9rem;
	font-weight: 850;
}

.datumvale-choice-option.is-correct .datumvale-choice-letter {
	background: #19a55a;
	color: #fff;
}

.datumvale-choice-option.is-incorrect .datumvale-choice-letter {
	background: #dc3545;
	color: #fff;
}

.datumvale-question-set-progress-track {
	overflow: hidden;
	height: 8px;
	margin: 0 auto 24px;
	border-radius: 999px;
	background: #e6eaf3;
}

.datumvale-question-set-progress-track span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: #3159c9;
	transition: width 240ms ease;
}

.datumvale-question-set-question {
	margin: 0;
}

.datumvale-question-set-prompt {
	max-width: 780px;
	margin: 0 auto 18px;
	font-size: clamp(1.35rem, 3vw, 2rem);
	line-height: 1.25;
	text-align: center;
}

.datumvale-question-set-prompt:focus,
.datumvale-question-set-result:focus {
	outline: none;
}

.datumvale-question-set-image {
	max-width: 820px;
	margin: 0 auto 20px;
	overflow: hidden;
	border-radius: 16px;
	background: #f2f4f8;
}

.datumvale-question-set-image img {
	display: block;
	width: 100%;
	height: auto;
}

.datumvale-question-set-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	max-width: 760px;
	margin: 0 auto;
}

.datumvale-question-set-option {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 58px;
	padding: 12px 16px;
	border: 2px solid #d9deea;
	border-radius: 13px;
	background: #fff;
	color: #263147;
	font: inherit;
	font-weight: 750;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
}

.datumvale-question-set-option:hover:not(:disabled),
.datumvale-question-set-option:focus-visible {
	border-color: #3159c9;
	background: #f5f7ff;
	transform: translateY(-1px);
}

.datumvale-question-set-option:focus-visible {
	outline: 3px solid rgba(49, 89, 201, 0.24);
	outline-offset: 2px;
}

.datumvale-question-set-option.is-correct {
	border-color: #19a55a;
	background: #eaf8f0;
	color: #137942;
}

.datumvale-question-set-option.is-incorrect {
	border-color: #dc3545;
	background: #fff1f2;
	color: #a9212f;
	animation: datumvale-choice-shake 260ms ease-out;
}

.datumvale-question-set-option:disabled {
	cursor: default;
	opacity: 0.72;
}

.datumvale-question-set-option.is-correct:disabled,
.datumvale-question-set-option.is-incorrect:disabled {
	opacity: 1;
}

.datumvale-question-set-option.is-correct .datumvale-choice-letter {
	background: #19a55a;
	color: #fff;
}

.datumvale-question-set-option.is-incorrect .datumvale-choice-letter {
	background: #dc3545;
	color: #fff;
}

.datumvale-question-set-explanation {
	max-width: 760px;
	margin: 16px auto 0;
	padding: 16px 18px;
	border-radius: 13px;
	background: #f6f8ff;
	color: #39455b;
	line-height: 1.55;
}

.datumvale-question-set-explanation p {
	margin: 6px 0 0;
}

.datumvale-question-set-actions {
	margin-top: 16px;
	text-align: center;
}

.datumvale-question-set-result {
	padding: clamp(28px, 6vw, 56px) 20px;
	text-align: center;
}

.datumvale-question-set-result h2 {
	margin: 0 0 12px;
	font-size: clamp(1.8rem, 4vw, 2.8rem);
}

.datumvale-question-set-score-line {
	margin: 0 0 12px;
	font-size: 1.25rem;
}

.datumvale-question-set-score {
	color: #3159c9;
	font-size: 2.2rem;
}

.datumvale-question-set-result-message {
	max-width: 620px;
	margin: 0 auto 22px;
	color: #4f5b70;
	font-size: 1.05rem;
}

.datumvale-difference-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.datumvale-difference-panel {
	min-width: 0;
}

.datumvale-difference-label {
	margin: 0 0 8px;
	color: #4f5b70;
	font-size: 0.85rem;
	font-weight: 800;
	text-align: center;
	text-transform: uppercase;
}

.datumvale-interactive-stage {
	position: relative;
	overflow: hidden;
	width: 100%;
	border-radius: 16px;
	background: #f2f4f8;
	line-height: 0;
}

.datumvale-interactive-stage > img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}

.datumvale-image-target {
	position: absolute;
	z-index: 2;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: crosshair;
}

.datumvale-image-target:focus-visible {
	outline: 4px solid #3159c9;
	outline-offset: -4px;
}

.datumvale-image-target:disabled {
	cursor: default;
}

.datumvale-correct-marker {
	position: absolute;
	z-index: 3;
	box-sizing: border-box;
	border: clamp(3px, 0.55vw, 6px) solid #19a55a;
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.9), 0 6px 20px rgba(11, 111, 57, 0.3);
	pointer-events: none;
	animation: datumvale-correct-pop 280ms ease-out;
}

.datumvale-difference-marker.is-solution,
.datumvale-hidden-object-marker.is-solution {
	border-color: #f09228;
	border-style: dashed;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.92), 0 6px 20px rgba(176, 94, 4, 0.28);
}

.datumvale-hidden-object-marker.is-hint {
	z-index: 4;
	border-color: #e8b21e;
	border-style: dashed;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.9), 0 0 24px rgba(232, 178, 30, 0.72);
	animation: datumvale-hint-pulse 850ms ease-in-out infinite alternate;
}

.datumvale-miss-marker {
	position: absolute;
	z-index: 3;
	width: 24px;
	height: 24px;
	border: 4px solid #dc3545;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	animation: datumvale-miss 650ms ease-out forwards;
}

.datumvale-interaction-feedback {
	min-height: 28px;
	margin: 14px 0 0;
	font-weight: 800;
	text-align: center;
}

.datumvale-interaction-feedback.is-correct {
	color: #138a49;
}

.datumvale-interaction-feedback.is-incorrect {
	color: #c6323f;
}

.datumvale-interaction-feedback.is-hint {
	color: #856404;
}

.datumvale-interaction-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 12px;
}

.datumvale-hint {
	margin: 16px auto 0;
	padding: 14px 16px;
	border-radius: 12px;
	background: #fff8df;
	color: #5d4a04;
	line-height: 1.55;
	text-align: center;
}

.datumvale-hint strong {
	margin-right: 4px;
}

.datumvale-solution {
	margin-top: 32px;
	padding-top: 30px;
	border-top: 1px solid #e3e6ed;
}

.datumvale-answer {
	margin-top: 22px;
	padding: 24px;
	border-radius: 16px;
	background: #f1f8f4;
}

.datumvale-answer h2 {
	margin-top: 0;
}

.datumvale-answer-text {
	font-size: 1.18rem;
	font-weight: 800;
}

.datumvale-pagination {
	margin-top: 38px;
}

.datumvale-pagination .navigation.pagination {
	margin: 0;
}

.datumvale-pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
}

.datumvale-pagination .page-numbers {
	display: inline-flex !important;
	min-width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 0 13px !important;
	border: 1px solid #37426f !important;
	border-radius: 12px !important;
	background: #151d41 !important;
	color: #eef1ff !important;
	font-size: .94rem;
	font-weight: 850;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: 0 7px 18px rgba(4, 8, 28, .16);
	transition: transform .15s ease, border-color .15s ease, background .15s ease;
}

.datumvale-pagination a.page-numbers:hover,
.datumvale-pagination a.page-numbers:focus-visible {
	transform: translateY(-1px);
	border-color: #6675d8 !important;
	background: #1c2758 !important;
	outline: none;
}

.datumvale-pagination .page-numbers.current {
	border-color: #806dff !important;
	background: #6e58f7 !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(110, 88, 247, .28);
}

.datumvale-pagination .page-numbers.dots {
	min-width: 24px;
	padding: 0 2px !important;
	border-color: transparent !important;
	background: transparent !important;
	color: #929abd !important;
	box-shadow: none;
}

.datumvale-pagination .page-numbers.prev,
.datumvale-pagination .page-numbers.next {
	min-width: 112px;
}

@media (max-width: 620px) {
	.datumvale-pagination {
		margin-top: 30px;
	}

	.datumvale-pagination .nav-links {
		gap: 6px;
	}

	.datumvale-pagination .page-numbers {
		min-width: 38px;
		height: 40px;
		padding: 0 9px !important;
		border-radius: 10px !important;
		font-size: .86rem;
	}

	.datumvale-pagination .page-numbers.prev,
	.datumvale-pagination .page-numbers.next {
		min-width: 86px;
	}
}

@keyframes datumvale-correct-pop {
	0% {
		opacity: 0;
		transform: scale(0.72);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes datumvale-miss {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0.6);
	}

	35% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
	}

	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1.25);
	}
}

@keyframes datumvale-hint-pulse {
	0% {
		opacity: 0.65;
		transform: scale(0.94);
	}

	100% {
		opacity: 1;
		transform: scale(1.06);
	}
}

@keyframes datumvale-choice-shake {
	0%,
	100% {
		transform: translateX(0);
	}

	35% {
		transform: translateX(-5px);
	}

	70% {
		transform: translateX(5px);
	}
}

@keyframes datumvale-timer-expired {
	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.04);
	}
}

@media (max-width: 800px) {
	.datumvale-puzzle-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.datumvale-difference-grid {
		grid-template-columns: 1fr;
	}

	.datumvale-choice-options {
		grid-template-columns: 1fr;
	}

	.datumvale-question-set-options {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 540px) {
	.datumvale-site-main,
	.datumvale-home-puzzles {
		width: min(100% - 20px, 1180px);
		margin-top: 28px;
		margin-bottom: 28px;
	}

	.datumvale-puzzle-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.datumvale-section-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.datumvale-card-body,
	.datumvale-answer {
		padding: 18px;
	}

	.datumvale-interaction-actions > button {
		flex: 1 1 150px;
	}

	.datumvale-difference-progress,
	.datumvale-hidden-object-progress {
		width: 100%;
	}
}


/* DatumVale Core 1.4.2: six-section homepage navigation reuses archive pill styling. */
.datumvale-home-category-nav {
	margin: 0 auto 30px;
	width: min(1180px, calc(100% - 32px));
	align-items: center;
}



/* DatumVale Core 1.5.0
 * Hidden Objects desktop UX:
 * keep the object list visible while the player scans the image,
 * and keep the game inside a comfortable Full-HD viewport.
 */
@media (min-width: 901px) {
	.datumvale-hidden-object-puzzle {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(220px, 270px);
		grid-template-areas:
			"progress progress"
			"instruction objects"
			"stage objects"
			"feedback objects"
			"actions objects";
		column-gap: 20px;
		align-items: start;
	}

	.datumvale-hidden-object-puzzle .datumvale-hidden-object-progress {
		grid-area: progress;
	}

	.datumvale-hidden-object-puzzle .datumvale-hidden-object-list-wrap {
		grid-area: objects;
		position: sticky;
		top: 18px;
		max-height: calc(100vh - 36px);
		margin: 0;
		overflow: auto;
	}

	.datumvale-hidden-object-puzzle .datumvale-play-instruction {
		grid-area: instruction;
	}

	.datumvale-hidden-object-puzzle .datumvale-interactive-stage {
		grid-area: stage;
		width: 100%;
		max-width: 900px;
		margin: 0 auto;
	}

	.datumvale-hidden-object-puzzle .datumvale-interactive-stage img {
		display: block;
		width: 100%;
		max-height: calc(100vh - 245px);
		object-fit: contain;
		object-position: center;
	}

	.datumvale-hidden-object-puzzle .datumvale-interaction-feedback {
		grid-area: feedback;
	}

	.datumvale-hidden-object-puzzle .datumvale-interaction-actions {
		grid-area: actions;
	}

	.datumvale-hidden-object-puzzle .datumvale-hidden-object-list {
		display: grid;
		grid-template-columns: 1fr;
		gap: 7px;
	}

	.datumvale-hidden-object-puzzle .datumvale-hidden-object-list li {
		width: 100%;
		justify-content: flex-start;
		border-radius: 12px;
	}
}

/* On smaller screens the list returns above the image and everything stacks. */
@media (max-width: 900px) {
	.datumvale-hidden-object-puzzle {
		display: block;
	}

	.datumvale-hidden-object-puzzle .datumvale-hidden-object-list-wrap {
		position: static;
		max-height: none;
		overflow: visible;
	}
}


/* DatumVale Core 1.6.0 — multi-round Odd One Out */
.datumvale-odd-one-out-set {
	max-width: 980px;
	margin-inline: auto;
}

.datumvale-odd-set-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 18px;
	padding: 12px 16px;
	border-radius: 16px;
	background: #eef3ff;
}

.datumvale-odd-set-progress {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #2454cf;
	font-weight: 700;
}

.datumvale-odd-set-dots {
	display: flex;
	gap: 8px;
}

.datumvale-odd-set-dots span {
	width: 12px;
	height: 12px;
	border-radius: 999px;
	background: #d4dced;
	transition: transform .2s ease, background .2s ease;
}

.datumvale-odd-set-dots span.is-active {
	background: #315fd5;
	transform: scale(1.22);
}

.datumvale-odd-set-dots span.is-complete {
	background: #32a866;
}

.datumvale-odd-set-prompt {
	margin: 0 0 12px;
	text-align: center;
	font-size: clamp(20px, 2vw, 28px);
}

.datumvale-odd-set-stage {
	max-width: 900px;
	margin-inline: auto;
	border-radius: 22px;
	overflow: hidden;
	background: #f7fbff;
}

.datumvale-odd-set-stage img {
	display: block;
	width: 100%;
	height: auto;
	max-height: calc(100vh - 270px);
	object-fit: contain;
}

.datumvale-odd-set-feedback {
	min-height: 32px;
	margin-top: 10px;
	text-align: center;
	font-weight: 800;
}

.datumvale-wrong-shake {
	animation: datumvale-wrong-shake .28s ease;
}

@keyframes datumvale-wrong-shake {
	0%,100% { transform: translateX(0); }
	25% { transform: translateX(-5px); }
	75% { transform: translateX(5px); }
}

.datumvale-celebration {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	pointer-events: none;
	opacity: 0;
	z-index: 6;
}

.datumvale-celebration.is-active {
	opacity: 1;
}

.datumvale-celebration-star {
	position: absolute;
	font-size: 64px;
	line-height: 1;
	color: #ffc928;
	text-shadow: 0 4px 18px rgba(255, 177, 0, .35);
	animation: datumvale-star-pop .8s ease both;
}

.datumvale-celebration i {
	position: absolute;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #ffbe21;
	transform: rotate(var(--angle)) translateY(0);
	animation: datumvale-spark .75s ease-out both;
}

.datumvale-celebration i:nth-of-type(3n) { background: #38b66b; }
.datumvale-celebration i:nth-of-type(3n+1) { background: #e45f72; }
.datumvale-celebration i:nth-of-type(3n+2) { background: #4976e8; }

@keyframes datumvale-star-pop {
	0% { transform: scale(.25) rotate(-18deg); opacity: 0; }
	35% { transform: scale(1.3) rotate(8deg); opacity: 1; }
	100% { transform: scale(.9); opacity: 0; }
}

@keyframes datumvale-spark {
	0% { transform: rotate(var(--angle)) translateY(0) scale(.5); opacity: 1; }
	100% { transform: rotate(var(--angle)) translateY(calc(-1 * var(--distance))) scale(1); opacity: 0; }
}

.datumvale-odd-set-result {
	text-align: center;
	padding: 34px 20px;
	border-radius: 22px;
	background: #f8fbff;
}

.datumvale-odd-set-final-star {
	font-size: 72px;
	color: #ffc928;
	line-height: 1;
	margin-bottom: 8px;
}

@media (max-width: 700px) {
	.datumvale-odd-set-topbar {
		align-items: flex-start;
		flex-direction: column;
	}
}



/* DatumVale Core 1.6.8 — completion flow, progress, page-audio guard and navigation */

.datumvale-puzzle-quick-actions {
	display: flex;
	justify-content: flex-end;
	margin: -10px 0 12px;
}

.datumvale-puzzle-quick-actions.is-below-reset {
	justify-content: stretch;
	margin: 14px 0 0;
}

.datumvale-quick-next-game {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 0 16px;
	border: 1px solid #f0b326;
	border-radius: 14px;
	background: linear-gradient(135deg, #ffd447, #ffb321);
	color: #201506 !important;
	font-size: .92rem;
	font-weight: 950;
	line-height: 1;
	text-decoration: none !important;
	box-shadow: 0 10px 22px rgba(255, 179, 33, .24);
	transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}

.datumvale-puzzle-quick-actions.is-below-reset .datumvale-quick-next-game {
	width: 100%;
	min-height: 48px;
	border-radius: 16px;
	font-size: 1rem;
	box-shadow: 0 12px 24px rgba(255, 179, 33, .22);
}

.datumvale-quick-next-game:hover,
.datumvale-quick-next-game:focus-visible {
	transform: translateY(-1px);
	filter: brightness(1.04);
	box-shadow: 0 12px 24px rgba(255, 179, 33, .28);
	outline: none;
}

.datumvale-quick-next-arrow {
	font-size: 1.1rem;
	line-height: .8;
}

.datumvale-card-image,
.dv-seo-related-image {
	position: relative;
}

.datumvale-completed-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 7px 10px;
	border: 1px solid rgba(255, 255, 255, .32);
	border-radius: 999px;
	background: #16875f;
	color: #fff;
	font-size: .72rem;
	font-weight: 900;
	letter-spacing: .025em;
	line-height: 1;
	text-transform: uppercase;
	box-shadow: 0 5px 16px rgba(0, 70, 48, .28);
}

.datumvale-completed-badge[hidden] {
	display: none !important;
}

.datumvale-puzzle-card.is-completed,
.dv-seo-related-card.is-completed {
	box-shadow: 0 0 0 2px rgba(22, 135, 95, .14), 0 10px 30px rgba(27, 39, 70, .07);
}

.datumvale-player-progress {
	margin: 0 0 24px;
	padding: 14px 16px 15px;
	border: 1px solid #2f3967;
	border-radius: 14px;
	background: linear-gradient(180deg, #141a37, #10152d);
	color: #f4f6ff;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}

.datumvale-player-progress-copy {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.datumvale-player-progress-copy > div {
	display: grid;
	gap: 2px;
}

.datumvale-player-progress-kicker {
	color: #8f9ac7;
	font-size: .7rem;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.datumvale-player-progress-copy strong {
	color: #f8f9ff;
	font-size: .98rem;
}

.datumvale-player-progress-count {
	color: #c5ccef;
	font-size: .84rem;
	font-weight: 700;
	white-space: nowrap;
}

.datumvale-player-progress-count b {
	color: #fff;
	font-size: 1rem;
}

.datumvale-player-progress-track {
	height: 7px;
	margin-top: 11px;
	overflow: hidden;
	border-radius: 999px;
	background: #252d55;
}

.datumvale-player-progress-track span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #7657ff, #4f9cff, #42d7ac);
	transition: width .35s ease;
}

.datumvale-player-progress.is-complete .datumvale-player-progress-track span {
	background: linear-gradient(90deg, #2cb77e, #65e4b7);
}

.datumvale-share-panel {
	margin-top: 28px;
	padding: 22px;
	border: 2px solid #4e5fd4;
	border-radius: 18px;
	background: radial-gradient(circle at top right, rgba(85, 104, 255, .22), transparent 34%), linear-gradient(180deg, #171e42, #10152f);
	color: #f4f6ff;
	box-shadow: 0 12px 30px rgba(4, 8, 28, .24), inset 0 1px 0 rgba(255, 255, 255, .04);
}

.datumvale-share-kicker {
	display: block;
	margin-bottom: 4px;
	color: #9ea9e0;
	font-size: .72rem;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.datumvale-share-copy h2 {
	margin: 0 0 4px;
	color: #fff;
	font-size: clamp(1.3rem, 2vw, 1.65rem);
	line-height: 1.18;
}

.datumvale-share-copy p {
	margin: 0;
	color: #c1c8e9;
	font-size: .94rem;
}

.datumvale-share-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 17px;
}

.datumvale-share-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 14px;
	border: 0;
	border-radius: 12px;
	color: #fff !important;
	font: inherit;
	font-size: .84rem;
	font-weight: 900;
	line-height: 1;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: 0 6px 15px rgba(0, 0, 0, .18);
	transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
}

.datumvale-share-button:hover,
.datumvale-share-button:focus-visible {
	transform: translateY(-2px) scale(1.015);
	filter: brightness(1.06);
	box-shadow: 0 9px 20px rgba(0, 0, 0, .24);
	outline: none;
}

.datumvale-share-icon {
	display: inline-flex;
	width: 25px;
	height: 25px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
}

.datumvale-share-icon svg {
	width: 17px;
	height: 17px;
	fill: currentColor;
}

.datumvale-share-button.is-telegram { background: #229ed9; }
.datumvale-share-button.is-facebook { background: #1877f2; }
.datumvale-share-button.is-whatsapp { background: #20b95a; }
.datumvale-share-button.is-x { background: #050505; border: 1px solid #3b3b3b; }
.datumvale-share-button.is-pinterest { background: #e60023; }
.datumvale-share-button.is-tiktok {
	background: #070707;
	border: 1px solid #343434;
	box-shadow: 3px 0 0 rgba(37, 244, 238, .35), -3px 0 0 rgba(254, 44, 85, .28), 0 6px 15px rgba(0, 0, 0, .2);
}
.datumvale-share-button.is-copy { background: #6654d9; }
.datumvale-share-button.is-more { background: #44506f; }

.datumvale-share-copy-button.is-copied {
	background: #16875f;
}

.datumvale-share-native-button[hidden] {
	display: none !important;
}

.datumvale-share-feedback {
	min-height: 1.25em;
	margin: 10px 0 0;
	color: #b5bee4;
	font-size: .8rem;
	font-weight: 700;
}

html.datumvale-completion-open,
html.datumvale-completion-open body {
	overflow: hidden;
}

.datumvale-completion-overlay {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	background: rgba(4, 7, 20, .78);
	backdrop-filter: blur(8px);
	opacity: 0;
	transition: opacity .2s ease;
}

.datumvale-completion-overlay[hidden] {
	display: none !important;
}

.datumvale-completion-overlay.is-visible {
	opacity: 1;
}

.datumvale-completion-dialog {
	position: relative;
	width: min(620px, 100%);
	max-height: calc(100vh - 36px);
	overflow: auto;
	padding: 30px 28px 26px;
	border: 2px solid #5366ee;
	border-radius: 24px;
	background: radial-gradient(circle at 50% 0, rgba(100, 90, 255, .25), transparent 38%), linear-gradient(180deg, #171e43, #0f142d);
	color: #f7f8ff;
	text-align: center;
	box-shadow: 0 28px 80px rgba(0, 0, 0, .48);
	transform: translateY(14px) scale(.98);
	transition: transform .22s ease;
}

.datumvale-completion-overlay.is-visible .datumvale-completion-dialog {
	transform: translateY(0) scale(1);
}

.datumvale-completion-close {
	position: absolute;
	top: 12px;
	right: 13px;
	width: 36px;
	height: 36px;
	border: 1px solid #39436f;
	border-radius: 50%;
	background: #10162f;
	color: #cbd2f2;
	font-size: 1.45rem;
	line-height: 1;
	cursor: pointer;
}

.datumvale-completion-check {
	display: grid;
	width: 66px;
	height: 66px;
	margin: 0 auto 12px;
	place-items: center;
	border-radius: 50%;
	background: linear-gradient(135deg, #2ecf8d, #55e5bc);
	color: #07251b;
	font-size: 2rem;
	font-weight: 1000;
	box-shadow: 0 8px 25px rgba(46, 207, 141, .3);
}

.datumvale-completion-kicker {
	margin: 0 0 2px;
	color: #7ce6bd;
	font-size: .8rem;
	font-weight: 1000;
	letter-spacing: .11em;
	text-transform: uppercase;
}

.datumvale-completion-dialog h2 {
	margin: 0;
	color: #fff;
	font-size: clamp(1.8rem, 5vw, 2.45rem);
}

.datumvale-completion-lead {
	margin: 7px 0 19px;
	color: #c4cae8;
}

.datumvale-next-game-button {
	display: flex;
	width: 100%;
	min-height: 58px;
	align-items: center;
	justify-content: center;
	border-radius: 15px;
	background: linear-gradient(135deg, #ffd447, #ff9f22);
	color: #201506 !important;
	font-size: 1.08rem;
	font-weight: 1000;
	letter-spacing: .025em;
	text-decoration: none !important;
	box-shadow: 0 13px 28px rgba(255, 165, 35, .28);
	transition: transform .16s ease, filter .16s ease;
}

.datumvale-next-game-button:hover,
.datumvale-next-game-button:focus-visible {
	transform: translateY(-2px);
	filter: brightness(1.04);
	outline: none;
}

.datumvale-completion-secondary {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9px;
	margin-top: 10px;
}

.datumvale-completion-secondary button,
.datumvale-completion-secondary a {
	display: flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid #3c4779;
	border-radius: 12px;
	background: #111735;
	color: #e9edff !important;
	font: inherit;
	font-size: .86rem;
	font-weight: 800;
	text-decoration: none !important;
	cursor: pointer;
}

.datumvale-completion-share {
	margin-top: 21px;
	padding-top: 18px;
	border-top: 1px solid #30395f;
	text-align: left;
}

.datumvale-completion-share > strong {
	display: block;
	margin-bottom: 10px;
	color: #fff;
	font-size: .88rem;
}

.datumvale-share-panel--completion {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.datumvale-share-panel--completion .datumvale-share-copy {
	display: none;
}

.datumvale-share-panel--completion .datumvale-share-actions {
	margin-top: 0;
	gap: 7px;
}

.datumvale-share-panel--completion .datumvale-share-button {
	min-height: 40px;
	padding: 0 10px;
	font-size: .76rem;
}

.datumvale-share-panel--completion .datumvale-share-icon {
	width: 22px;
	height: 22px;
}

@media (max-width: 700px) {
	.datumvale-puzzle-quick-actions {
		margin: -8px 0 10px;
	}

	.datumvale-puzzle-quick-actions.is-below-reset {
		margin: 12px 0 0;
	}

	.datumvale-quick-next-game {
		min-height: 40px;
		padding-inline: 13px;
		font-size: .84rem;
	}

	.datumvale-puzzle-quick-actions.is-below-reset .datumvale-quick-next-game {
		min-height: 46px;
		font-size: .92rem;
	}

	.datumvale-player-progress-copy {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}

	.datumvale-player-progress-count {
		white-space: normal;
	}

	.datumvale-share-panel {
		margin-top: 22px;
		padding: 18px 16px;
	}

	.datumvale-share-actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.datumvale-share-button {
		width: 100%;
		min-width: 0;
		padding-inline: 9px;
	}

	.datumvale-completion-overlay {
		align-items: flex-end;
		padding: 10px;
	}

	.datumvale-completion-dialog {
		width: 80%;
		max-width: 496px;
		max-height: calc(80vh - 16px);
		padding: 22px 13px 14px;
		border-radius: 18px;
	}

	.datumvale-completion-check {
		width: 53px;
		height: 53px;
		margin-bottom: 10px;
		font-size: 1.6rem;
	}

	.datumvale-completion-dialog h2 {
		font-size: clamp(1.45rem, 4vw, 1.95rem);
	}

	.datumvale-completion-lead {
		margin: 6px 0 15px;
		font-size: .9rem;
	}

	.datumvale-next-game-button {
		min-height: 46px;
		border-radius: 12px;
		font-size: .92rem;
	}

	.datumvale-completion-secondary {
		grid-template-columns: 1fr 1fr;
	}

	.datumvale-share-panel--completion .datumvale-share-actions {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.datumvale-share-panel--completion .datumvale-share-button {
		min-height: 48px;
		padding: 0;
	}

	.datumvale-share-panel--completion .datumvale-share-button > span:last-child {
		display: none;
	}

	.datumvale-share-panel--completion .datumvale-share-icon {
		width: 28px;
		height: 28px;
		background: transparent;
	}

	.datumvale-share-panel--completion .datumvale-share-icon svg {
		width: 20px;
		height: 20px;
	}
}
