.essv-scratch-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; }

.essv-scratch-card {
	position: relative; width: 100%; max-width: 380px; aspect-ratio: 8 / 5; margin: 0 auto;
	border-radius: 14px; overflow: hidden; touch-action: none; user-select: none;
	border: 1px solid var(--essv-gold-dark); box-shadow: 0 20px 55px rgba(0, 33, 71, .18);
}
.essv-scratch-prize {
	position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column;
	align-items: center; justify-content: center; gap: 2px;
	background: radial-gradient(circle at 50% 30%, var(--essv-navy-3), var(--essv-navy) 75%); color: #fff;
}
.essv-scratch-prize span { font: 800 11px/1.2 "JetBrains Mono", monospace; letter-spacing: .16em; text-transform: uppercase; color: var(--essv-gold-soft); }
.essv-scratch-prize strong { font-size: clamp(52px, 15vw, 82px); font-weight: 800; line-height: 1; color: var(--essv-gold); }
.essv-scratch-prize em { font: 700 15px/1 "JetBrains Mono", monospace; letter-spacing: .28em; text-transform: uppercase; font-style: normal; color: #fff; }
.essv-scratch-prize code { margin-top: 8px; font: 700 13px/1 "JetBrains Mono", monospace; letter-spacing: .08em; color: var(--essv-gold-soft); }

.essv-scratch-canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; cursor: grab; display: block; transition: opacity .5s ease; }
.essv-scratch-canvas:active { cursor: grabbing; }
.essv-scratch-card.is-revealed .essv-scratch-canvas { opacity: 0; pointer-events: none; }
.essv-scratch-card.is-revealed .essv-scratch-prize { animation: essv-scratch-pop .45s ease; }
.essv-scratch-card.is-empty .essv-scratch-prize { background: radial-gradient(circle at 50% 30%, #4a5568, #2d3748 75%); }
.essv-scratch-card.is-empty .essv-scratch-prize strong { color: #cbd5e0; }

@keyframes essv-scratch-pop { 0% { transform: scale(.9); } 60% { transform: scale(1.04); } 100% { transform: scale(1); } }

.essv-scratch-hint { margin: 18px 0 4px; color: var(--essv-navy-2); font-size: 13px; font-weight: 600; }
.essv-scratch-hint span { color: var(--essv-gold); }
.essv-scratch-fallback { margin-top: 14px; }

@media (prefers-reduced-motion: reduce) {
	.essv-scratch-canvas { transition: none; }
	.essv-scratch-card.is-revealed .essv-scratch-prize { animation: none; }
}
