Splashui Captcha?ap=1 May 2026

/* SPLASH OVERLAY CARD (SplashUI style) */ .splash-captcha { max-width: 520px; width: 100%; background: rgba(20, 28, 40, 0.85); backdrop-filter: blur(20px); border-radius: 3rem; box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.08); padding: 2rem 1.8rem 2rem 1.8rem; transition: all 0.2s ease; border: 1px solid rgba(255, 255, 255, 0.1); }

<div id="dynamicContent"> <!-- content will be injected based on ap=1 or interactive mode --> </div> <div class="footer-note">splash captcha · integrity check</div> </div>

// ----- API MODE (ap=1) -> simulate silent validation, return JSON-like response ----- function buildApiModeUI() { // In ap=1 mode, we don't show interactive challenge. // Instead we directly simulate an API resolution (like a backend token) dynamicContainer.innerHTML = ` <div class="challenge-text" style="background: #0f172f; text-align:center;"> ⚡ <strong>API Mode (ap=1)</strong><br> Silent validation in progress... </div> <div style="display:flex; justify-content:center; margin: 1.2rem 0;"> <div style="background:#121a2c; border-radius: 60px; padding:0.6rem 1.2rem; font-family:monospace; font-size:0.85rem; word-break:break-all;"> 🔐 captcha_mode = "headless" </div> </div> <div class="status-msg" id="apiStatusMsg" style="background:#0c1122;"> 🤖 Auto-verifying for API request... </div> `; splashui captcha?ap=1

.checkbox-wrapper input { width: 1.2rem; height: 1.2rem; accent-color: #4c7aff; cursor: pointer; }

<script> (function() { // Detect ap=1 flag from URL const urlParams = new URLSearchParams(window.location.search); const isApiMode = urlParams.get('ap') === '1'; /* SPLASH OVERLAY CARD (SplashUI style) */

.grid-item.selected { border-color: #4c7aff; background: #2d3f60; transform: scale(0.97); box-shadow: 0 0 0 2px rgba(76, 122, 255, 0.4); }

function verifyCaptcha() { // check if user selected all target items (buses) and only target items const expectedTargetIndices = []; items.forEach((item, idx) => { if (item.isTarget) expectedTargetIndices.push(idx); }); &lt;/div&gt; `;

// Set mode badge and render proper UI if (isApiMode) { modeBadgeSpan.textContent = 'API_MODE (ap=1)'; modeBadgeSpan.style.background = '#2b3b5c'; buildApiModeUI(); } else { modeBadgeSpan.textContent = 'INTERACTIVE'; modeBadgeSpan.style.background = '#3a2c4a'; buildInteractiveUI(); }