/* Captcha-Minispiel */
.cg { --cg-bg: var(--cg-bg-theme, #050805); --cg-fg: var(--cg-fg-theme, #39ff6a); --cg-dim: var(--cg-dim-theme, #1c6b33); --cg-bad: #ff3b5c;
  background: var(--cg-bg); color: var(--cg-fg); border: 1px solid var(--cg-dim); padding: 12px; font-family: 'JetBrains Mono', 'Share Tech Mono', ui-monospace, monospace; font-size: 13px; display: grid; gap: 8px; position: relative; overflow: hidden; }
.cg::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(transparent 0 2px, rgba(0,0,0,.25) 2px 3px); }
.cg-head { display: flex; justify-content: space-between; align-items: center; font-weight: 700; letter-spacing: .08em; }
.cg-reload { background: none; border: 1px solid var(--cg-dim); color: var(--cg-fg); width: 28px; height: 28px; cursor: pointer; font: inherit; }
.cg-hint { margin: 0; opacity: .75; font-size: 12px; }
.cg-img { width: 100%; max-width: 320px; height: auto; justify-self: center; border: 1px solid var(--cg-dim); user-select: none; }
.cg-slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cg-slots span { border: 1px dashed var(--cg-dim); height: 30px; display: grid; place-items: center; font-weight: 700; font-size: 15px; }
.cg-slots span:not(:empty) { border-style: solid; border-color: var(--cg-fg); box-shadow: 0 0 8px var(--cg-fg) inset; }
.cg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cg-grid button { background: transparent; color: var(--cg-fg); border: 1px solid var(--cg-dim); height: 38px; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; animation: cg-flicker 2.4s infinite var(--d); }
.cg-grid button:hover { background: var(--cg-fg); color: var(--cg-bg); animation: none; }
.cg-grid button.on { background: var(--cg-dim); color: var(--cg-bg); animation: none; cursor: default; }
.cg-timer { height: 4px; background: var(--cg-dim); }
.cg-timer span { display: block; height: 100%; width: 100%; background: var(--cg-fg); box-shadow: 0 0 8px var(--cg-fg); transition: width .1s linear; }
.cg-status { min-height: 1.2em; font-weight: 700; }
.cg-status.bad { color: var(--cg-bad); }
.cg-granted { text-align: center; font-weight: 800; letter-spacing: .12em; padding: 6px; text-shadow: 0 0 10px var(--cg-fg); }
.cg-ok { border-color: var(--cg-fg); }
.cg-shake { animation: cg-shake .35s; border-color: var(--cg-bad); }
@keyframes cg-flicker { 0%, 92%, 100% { opacity: 1; } 94% { opacity: .3; } 96% { opacity: .9; } 97% { opacity: .2; } }
@keyframes cg-shake { 25% { transform: translateX(-6px); } 50% { transform: translateX(6px); } 75% { transform: translateX(-3px); } }
@media (prefers-reduced-motion: reduce) { .cg-grid button { animation: none; } }
