#log{margin:0;padding-left:20px;overflow:auto;font-size:.82rem;font-family:ui-monospace,monospace}
.sq.fog{background:#2f2d2a !important}.sq.fog.l{background:#3a3835 !important}
.sq.caught{background-image:radial-gradient(#ff3b3b99,transparent 70%)}
.pc.hid{opacity:.95}
.row{display:flex;gap:8px}.row>*{flex:1}
.btn2{background:#3c3a37;border:1px solid #4b4845}
.sq.tgt.cheat::after{border:3px dashed #d0303099;width:70%;height:70%}

/* ---- animation layer (ockit.js + anim.js) ---- */
.ock-d{position:absolute;inset:0;pointer-events:none;z-index:1}
.ock-board .sq .pc{position:relative;z-index:2}
@media (update:none){.ock-board .ock-d,.ock-board .ock-d *{animation:none!important;transition:none!important}}
/* flat "caught cheating" tint + dashed cheat targets */
.sq.caught{background-image:none;box-shadow:inset 0 0 0 4px #ff4b4b,inset 0 0 0 99px #ff4b4b33}
.sq.tgt.cheat::after{border:4px dashed #ff4b4b;border-radius:30%;width:70%;height:70%;background:#ff4b4b1a}
