#qr-game {
text-align: center;
margin: 20px 0;
}
.qr-center {
text-align: center;
} .qr-welcome-title {
font-size: 24px;
font-weight: bold;
margin-bottom: 15px;
text-align: center;
} .qr-flip-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 35px;
width: 400px;
margin: 20px auto;
} .qr-flip-grid[data-columns="4"] {
grid-template-columns: repeat(4, 1fr);
width: 520px;
gap: 25px;
}
.qr-card {
aspect-ratio: 1/1;
border: 1px solid rgba(0, 0, 0, 0.3);
border-radius: 4px;
cursor: pointer;
background: #f5f5f5;
position: relative;
overflow: hidden;
box-shadow: 
0 4px 8px rgba(0, 0, 0, 0.2),
0 2px 4px rgba(0, 0, 0, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
} .qr-card.clicked {
filter: brightness(1.3);
} .qr-card:nth-child(1) { transform: rotate(-2deg); }
.qr-card:nth-child(2) { transform: rotate(1.5deg); }
.qr-card:nth-child(3) { transform: rotate(-1deg); }
.qr-card:nth-child(4) { transform: rotate(2deg); }
.qr-card:nth-child(5) { transform: rotate(-1.5deg); }
.qr-card:nth-child(6) { transform: rotate(1deg); }
.qr-card:nth-child(7) { transform: rotate(-2.5deg); }
.qr-card:nth-child(8) { transform: rotate(1.8deg); }
.qr-card:nth-child(9) { transform: rotate(-1.2deg); }
.qr-card:nth-child(10) { transform: rotate(2.2deg); }
.qr-card:nth-child(11) { transform: rotate(-1.7deg); }
.qr-card:nth-child(12) { transform: rotate(1.3deg); }
.qr-card:nth-child(13) { transform: rotate(-2.3deg); }
.qr-card:nth-child(14) { transform: rotate(1.6deg); }
.qr-card:nth-child(15) { transform: rotate(-1.4deg); }
.qr-card:nth-child(16) { transform: rotate(2.1deg); }
.qr-card:nth-child(17) { transform: rotate(-1.9deg); }
.qr-card:nth-child(18) { transform: rotate(1.4deg); }
.qr-card:nth-child(19) { transform: rotate(-2.4deg); }
.qr-card:nth-child(20) { transform: rotate(1.7deg); } .qr-card:hover {
transform: translateY(-8px) scale(1.05) rotate(var(--card-rotation, 0deg));
box-shadow: 
0 12px 24px rgba(0, 0, 0, 0.3),
0 6px 12px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
} .qr-card:nth-child(1):hover { transform: translateY(-8px) scale(1.05) rotate(-2deg); }
.qr-card:nth-child(2):hover { transform: translateY(-8px) scale(1.05) rotate(1.5deg); }
.qr-card:nth-child(3):hover { transform: translateY(-8px) scale(1.05) rotate(-1deg); }
.qr-card:nth-child(4):hover { transform: translateY(-8px) scale(1.05) rotate(2deg); }
.qr-card:nth-child(5):hover { transform: translateY(-8px) scale(1.05) rotate(-1.5deg); }
.qr-card:nth-child(6):hover { transform: translateY(-8px) scale(1.05) rotate(1deg); }
.qr-card:nth-child(7):hover { transform: translateY(-8px) scale(1.05) rotate(-2.5deg); }
.qr-card:nth-child(8):hover { transform: translateY(-8px) scale(1.05) rotate(1.8deg); }
.qr-card:nth-child(9):hover { transform: translateY(-8px) scale(1.05) rotate(-1.2deg); }
.qr-card:nth-child(10):hover { transform: translateY(-8px) scale(1.05) rotate(2.2deg); }
.qr-card:nth-child(11):hover { transform: translateY(-8px) scale(1.05) rotate(-1.7deg); }
.qr-card:nth-child(12):hover { transform: translateY(-8px) scale(1.05) rotate(1.3deg); }
.qr-card:nth-child(13):hover { transform: translateY(-8px) scale(1.05) rotate(-2.3deg); }
.qr-card:nth-child(14):hover { transform: translateY(-8px) scale(1.05) rotate(1.6deg); }
.qr-card:nth-child(15):hover { transform: translateY(-8px) scale(1.05) rotate(-1.4deg); }
.qr-card:nth-child(16):hover { transform: translateY(-8px) scale(1.05) rotate(2.1deg); }
.qr-card:nth-child(17):hover { transform: translateY(-8px) scale(1.05) rotate(-1.9deg); }
.qr-card:nth-child(18):hover { transform: translateY(-8px) scale(1.05) rotate(1.4deg); }
.qr-card:nth-child(19):hover { transform: translateY(-8px) scale(1.05) rotate(-2.4deg); }
.qr-card:nth-child(20):hover { transform: translateY(-8px) scale(1.05) rotate(1.7deg); }
.qr-card-inner {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s ease-in-out;
transform-style: preserve-3d;
}
.qr-face {
position: absolute;
inset: 0;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
font-weight: bold;
font-size: 0.9rem;
box-sizing: border-box;
padding: 8%;
width: 100%;
height: 100%;
transition: opacity 0.3s ease-in-out;
}
.qr-front {
background-color: #009881;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
border-radius: 4px;
z-index: 2;
opacity: 1;
}
.qr-back {
border-radius: 4px;
z-index: 1;
background: #f5f5f5;
background-image: none !important;
opacity: 0;
pointer-events: none;
transform: rotateY(180deg);
}
.qr-card.flipped .qr-card-inner {
transform: rotateY(180deg);
}
.qr-card.flipped .qr-front {
opacity: 0;
pointer-events: none;
}
.qr-card.flipped .qr-back {
opacity: 1;
pointer-events: auto;
}
.qr-back.win {
background: #fff !important;
background-image: none !important;
}
.qr-back.lost {
background: #d60000 !important;
background-image: none !important;
color: #fff !important;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}
.qr-back.lost * {
color: #fff !important;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}
.qr-back img {
max-width: 80%;
height: auto;
} .qr-win-title {
font-size: 26px;
font-weight: bold;
margin-bottom: 15px;
}
.qr-win-text {
font-size: 18px;
line-height: 1.5;
margin-top: 20px;
margin-bottom: 20px;
}
.qr-win-time {
font-size: 13px;
color: #666;
margin-top: 3px;
}
.qr-win-id {
font-size: 14px;
margin-top: 3px;
margin-bottom: 0;
font-weight: bold;
}
.qr-win-id-large {
font-size: 26px;
font-weight: bold;
color: #000;
display: block;
margin-top: 0;
margin-bottom: 0;
}
.qr-win-validity {
margin-top: 3px;
font-size: 14px;
}
.qr-screenshot-hint {
margin-top: 3px;
font-size: 14px;
color: #444;
}
.qr-info-title,
p.qr-info-title {
font-size: 20px;
font-weight: bold;
margin-bottom: 15px !important;
}
.qr-info-sub,
p.qr-info-sub {
font-size: 20px;
font-weight: bold;
margin-bottom: 15px !important;
} .qr-opening-hours {
list-style: none !important;
padding: 0 !important;
margin: 10px 0 20px 0 !important;
text-align: center;
font-size: 15px;
}
.qr-opening-hours li {
margin-bottom: 4px;
list-style: none !important;
list-style-type: none !important;
}
.qr-opening-hours li::before {
content: none !important;
} .qr-action-container {
display: flex;
flex-direction: column;
align-items: center;
} .qr-action-container a,
.qr-action-container button {
text-decoration: none;
} .qr-dynamic-btn {
display: inline-flex;
align-items: center;
gap: 8px;
margin-bottom: 20px;
padding: 12px 18px;
border-radius: 12px;
font-weight: 600;
cursor: pointer;
text-align: center;
transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
transform: translateY(0);
}
.qr-dynamic-btn:hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
filter: brightness(1.1);
}
.qr-dynamic-btn:active {
transform: translateY(0) scale(0.98);
} .qr-dynamic-btn i {
color: inherit;
transition: transform 0.3s ease;
}
.qr-dynamic-btn:hover i {
transform: scale(1.1);
} .qr-loading {
font-size: 16px;
font-weight: 600;
opacity: 0.8;
} .confetti-container {
position: fixed;
inset: 0;
pointer-events: none;
overflow: hidden;
z-index: 9999;
}
.confetti {
position: absolute;
top: -10px;
width: 10px;
height: 14px;
opacity: 0.9;
animation: confetti-fall 5s linear infinite;
}
@keyframes confetti-fall {
0% {
transform: translateY(0) rotate(0deg);
}
100% {
transform: translateY(110vh) rotate(360deg);
}
} .qr-fade-in {
opacity: 0;
transform: translateY(10px);
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.qr-fade-in-active {
opacity: 1;
transform: translateY(0);
} @media (max-width: 480px) {
.qr-flip-grid {
gap: 15px;
width: 300px;
}
.qr-flip-grid[data-columns="4"] {
width: 320px;
gap: 12px;
}
.qr-win-title {
font-size: 22px;
}
.qr-win-text {
font-size: 16px;
}
.qr-info-title {
font-size: 18px;
}
.qr-info-sub {
font-size: 18px;
}
.qr-face {
font-size: 0.75rem;
}
}